Search This Blog

Thursday, July 13, 2017

Let's Make A Roguelike with Construct 2 is coming along


Let's Make A Roguelike with Construct 2 is coming along...




I'm on page around 145 now and I'm thinking about taking some things out. I ran into some dead ends, did some things over and some parts just don't fit anywhere. I may have an appendix for these similar to "bonus content" deleted scenes you get on DVDs.

For example I started out using a dictionary data structure to store the player's stuff. This became cumbersome, however since a key/value pair can only easily hold so much information. What if the item was worn out but another identical item wasn't?

Since Construct 2's dictionary object can save itself to a JSON string, I thought hey why not have a dictionary OF dictionaries? The value of a particular Item you have could itself be a dictionary of key value pairs like "name: SwordBlade, worn out ness : 30, cost : 25, damage : 10, etc:etc" for the item "longsword1" or something.

But that got too complicated too fast and in my opinion introduced unneeded clutter and created more problems than it solved. It's not good to give yourself too many options. The data structure might as well be called "can of worms."

Instead I came up with a way where all the needed values are stored in the "items" sprite and those sprite instances can be stored right there on the HUD. So literally the sprite you pick up is the item in your slot. It's not a sprite that represents the item you are carrying, it IS the item you are carrying.
That way items can be used, have charges, or ammo or whatever and those values are stored for that individual instance with no complicated middle man data structures.

Anyhow page 145 and I still haven't got to the procedural parts yet. First I'm making the game play with a manually generated dungeon. The game should not care how the dungeon is made whether you draw it in construct, use a cave algorithm or lego style grammar based methods.

And thus far it doesn't

Moving right along...

No comments:

Post a Comment