Puzzle Games Development

Use this forum to share and discuss Uzebox games and demos.
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Puzzle Games Development

Post by D3thAdd3r »

I dropped a game that was pretty far along(Dig Dug) and can't find the interest to go back at it; oh well. The last few games I have mostly just dumped the finished product out there, but there was never much development history on the forum. I am going to try my old ways, where I release incremental demos with all the bugs and missing features out there, because it is kind of cool to look back on things later in the future. Partially just ranting about crap makes my thought process clearer, and there is an added small sense that I should back up what I say I will do!

Last game I did(Block Boy) was sort of a freak occurrence and I just slammed it out to get it done, since it was not something I really meant to take on. I have mostly lost interest in developing anything that is not aimed at networked play because I am not even sure all my efforts would be enough to have some compelling library of networked games. I have thought of the cheapest way to do this in the past, and I guess at this point trying to get something like this out there, I am not above it anymore. I may focus on puzzle games a lot in the near future, because there are nice similarities between them and they are easier to network adequately over other genres where reflex and prediction are the most important thing. I spent a bunch of time looking at "weird" puzzle games and found probably 10 different puzzle games no one has heard of that I would like to do;obviously not all can happen, but in particular I realized the code base between some of them would be very similar.
Screenshot 2017-05-06 17.50.28.png
Screenshot 2017-05-06 17.50.28.png (113.25 KiB) Viewed 6564 times
I am working on what I consider the "least weird" of the arcane puzzle games out there. A long time ago I made some Puyo Puyo clone graphics from scratch, and I found those a while back which got me interested again. Researching a whole bunch of puzzle games(what would be quickest to complete basically) I found that Puyo Puyo is quite different feeling from Kirby's Star Stacker(who knows this one, almost no one?!), but the code itself would share many similarities. And so I have developed some sort of puzzle engine which is better than Columns engine, and which is based upon the concept that everything is a network game even when you are just playing locally with 2 controllers in 1 Uzebox without an ESP8266. The idea is to have no direct coupling between player states, but at the same time make guaranteed replication of a logic tick based on a seed and pad input, and always on re-synchronization. I have designed this and taken into account what parts are the same(most) and different, so that I will be able to rapidly drop a Puyo Puyo face lift and changed scoring, chain, garbage, etc. and release that as well. Like I said there might be more amazing goals I could aim at and fail to hit, but this is an effort towards getting some games out there to make Uzenet a thing.

No sense in talking further until I have more to show. For now I have a demo, all graphics, code are original and it is not a direct rip off of Kirby's Star Stacker necessarily(well..). Rotation is a little broken and I don't need bug reports just yet because there are several I already see. It should give a good idea of how this game works. Basically you have "key blocks" which are red, green, or blue. When there are stars or other non-key blocks between them, they will disappear and make a score. Scores don't matter, chains do. The only purpose of eliminating lots of stars is to clear the field and make combos, to attack the other player with garbage. The game really promotes chains, where if a chain ends, a number of stars fall from the top to possibly continue the chain. I will probably have to develop some AI for it at some point which shouldn't be too bad. It is a bit of a "combo spam" game which is probably not as deep as Puyo Puyo, but likely has a lower skill barrier to be competent. Anyway that is it for now, I am working on fixing the remaining core issues and then decorating the states with better animation and effects. Have to decide on PCM or not, but I think I am going that route.
Attachments
ASTROSTACK.UZE
(42.98 KiB) Downloaded 394 times
User avatar
Jubatian
Posts: 1569
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Puzzle Games Development

Post by Jubatian »

The game idea feels quite functional! I played it for a while, it is easy to figure out, and it seems to work fairly well.

Some luck factor is involved though in an 1v1 play. On the side columns, if from the bottom you get only stars for a while, you are in trouble: until some piece pops up which you could pair, it is not posible to clear those. So you could get quite high columns there no matter how well you play simply by ill luck (stars piling up from the bottom). You should possibly adjust the garbage generation to make this unlikely (giving pairable pieces more often to the side columns, preventing a long sequence of starts).
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Puzzle Games Development

Post by D3thAdd3r »

Actually I had not thought of that in particular but it is a good idea that needs implementing. In general I do feel like there are just too many stars, and probably will end up spawning much less stars for the pieces you actually control. I am working on the CPU opponent so that I have a good way to do testing and balance out the mechanics. It seems for me at least, that I can't quickly enough calculate what will be a 4x chain or a 10x chain and yet will or will not receive large rewards "randomly"(not that I believe in *any* true randomness, but as a phrase for things that were not feasible to calculate..or hidden variables). I think Puyo Puyo is more immune from such noise, as there are concrete building patterns and one simply does not get huge combos usually, unless you are thinking it all through and had a plan.

On a side note these more casual games do have some appeal to some probably. I always wonder if I could somehow make something my niece would like, and get her into video games. The best I have been able to figure out so far, and not mattering as much on the content or mechanics, is to just plaster "Hello Kitty" all over something interactive. For some reason all things with that icon are considered good and fun, these marketing guys really figured it out :roll:
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Puzzle Games Development

Post by D3thAdd3r »

Small update. I have most of the framework for the AI done, and it sort of plays the game. It is not good at all, and I can clearly see it is not evaluating scores that it ought to. Anyway since I said I was going to show things other than a finished version, here is some snapshot of the current progress. The speed should remain about the same when it is finalized as I don't think there are more calculations to do, just to see which ones are wrong at this point.
Attachments
ASTROSTACK.UZE
(43.98 KiB) Downloaded 323 times
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Puzzle Games Development

Post by nicksen782 »

I love the graphics! For that title background are you setting the same ramtile to vram and then modifying the data for the ram tile? It looks slick!

Game is playable too! How long have you been working on this?
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Puzzle Games Development

Post by D3thAdd3r »

Thanks! I am really enjoying graphics lately and am sort of figuring out my own style as I go. I will always love programming, but it is nice to also have another fun dimension to development to do when programming isn't going well and I feel like something else creative. Yes so far it is a quick experiment at a 1 ram tile star field. I am not really sure what I want to do so far, but I do have larger animated stars that finish out the lettering on the title screen. I spent 5 hours one night just on the title graphics, and it works out to be ~40 unique tiles and 12(yet to be shown) sprite tiles. Have to think on it a bit.

Coding started a couple weeks ago and there is around 2500 lines of code so far; a very rough guess is around 30 hours for what is there. The development so far has been smooth because I have done this basic design before(Columns, though no shared code) and this really is a small game unless I go nuts with features. But I am at the point where all the instant gratification stuff is done, and all the little details to make it a finished game are left to do. The lines of code to time ratio goes way down at this point, but it's all for fun so however it plays out and when is all good, unlike work! It really depends so much if I spend the free time as actual programming hours, or those hours I wander around on wikipedia and end up with 56 tabs open or get sucked back into Quake/Doom :roll:
User avatar
nicksen782
Posts: 714
Joined: Wed Feb 01, 2012 8:23 pm
Location: Detroit, United States
Contact:

Re: Puzzle Games Development

Post by nicksen782 »

The screens from SD technique could be helpful here (or are you not using SD?) For my SD screens I store the tileset and then the tilemaps. I just need the offsets, do some math (simple subtraction) and there is a screen. You can have ram tile screens that also use flash tiles but you have to plan that out a bit. For example, all my intro and config screens are 100% ramtile/ram-map except the cursor (heart) which is a sprite tile. The trick is to figure out how many unique tiles are required by your map/tileset and then setUserRamtiles to that value. That way the blitter doesn't mess up your sprite.

Of course, the sprites and the tileset share the same memory so you would have to keep that in mind too.

About your game pieces. Are they sprites? They all look to be square and always aligned on a boundry. If you aren't using sprites then you have lots of ram available (since no ram tiles.) You could load flash tiles into ram tiles and then edit those tiles to your heart's content. I'm thinking simple things like color changes/flashing.
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Puzzle Games Development

Post by D3thAdd3r »

I forget but I am somewhere around 50K with most code, gfx, music in place. I will throw a new version up as I have some little improvements I feel make a good difference. There is no plans for color flashing or I would just do it with flash tiles as everything else is (besides the little combo counters and yet to be shown particles). I really like all those tricks, but I like this game because it so easily fits without those time consuming parts(Block Boy I burned 15k on big graphics just because I could and didnt take time to compress). Larger games that stuff is necessary instead of all flash non-compressedstuff, Columns for instance had a whole ram tile state machine and everything was ram tiles (because curses would be able to change colors, magic jewels, etc..that code takes much space too). I don't plan to use the SD on this because I should have enough space to do about the right amount of content without. A pretty small quick game to do...or at least it should be! Bigger projects to come will definitely leverage the SD again.
User avatar
Jubatian
Posts: 1569
Joined: Thu Oct 01, 2015 9:44 pm
Location: Hungary
Contact:

Re: Puzzle Games Development

Post by Jubatian »

What happened to the music in the last version?

That AI "sort of" playing the game is demolishing me... Well, I guess there is some reason in why one of my most preferred genres is turn-based strategy :p
User avatar
D3thAdd3r
Posts: 3293
Joined: Wed Apr 29, 2009 10:00 am
Location: Minneapolis, United States

Re: Puzzle Games Development

Post by D3thAdd3r »

I have been using different tones to know what is going on inside the cpu brain (as well as a slowed down visual snapshots) thus the music off for now. A few more song perhaps for next release, maybe sound effects (thinking Puyo Puyo ones).

The CPU is somehow not seeing easy scores it can make which will help to hopefully, keep the AI alive indefinitely if garbage isn't coming in very fast. Currently it misses so many of the small scores that clear stuff (not chains necessarily) that it can only play a bit before losing even if it might beat you quickly sometimes randomly finding good chains (there is no planning at all). It can easily see some big chains, which is where the garbage comes from...basically, somehow, it only sees half the possibilities right now. Seeing the smaller stuff should give some defence for garbage clearing at the cost perhaps of lesser "lucky desperation" chains. I don't plan much other analysis, basically I want the CPU to be a good challenge at max, and lower difficulty settings would work just by slowing down the speed. Wont even take the next piece into account or anything, just something to say it has single player and local 2 player, but the main point will be network. CUzebox with the hsync ESP8266 core should be good enough to make a few matches happen.
Post Reply