Follow

gamedev 

Had to shelve the platformer project because of poor planning and feature creep. I decided to work on an action dungeon crawler. Right now, you can only move your character and thrust your sword, but I plan on including randomly generated levels.

I'm more experienced with top-down games, so this might be easier.

· · Web · 1 · 3 · 8

gamedev 

Created solid tiles, a couple of enemies, knockback, and the sword. I also divided the screen. There will be a hud on top, but right now, it is blank.

gamedev 

I got a random dungeon generation algorithm implemented. It is the same one from this post (gameliberty.club/@xianc78/1117), but written in C++ instead of Java. It's pretty basic at the moment. I plan on having each room randomly pick a design from a template.

gamedev 

Here is a second dungeon, in case you don't believe me.

gamedev 

Tried to add random enemy placement to the dungeon, but they all appear in the same room. I realize that the common way to do RNG in C and C++, srand(time(NULL)) uses time (in seconds) as a seed, and since the loop obviously runs multiple times per second, I'm getting the same results.

I think my solution would be to use my own RNG algorithm with a seed that increments every time it is called.

gamedev 

Wrote my own RNG algorithm (just take the sine of a seed and increment the seed by one for the next time). I also made it so that enemies can't spawn in the first room.

gamedev 

Rooms in the dungeon now have different designs (randomly picked from a list of currently three templates).

gamedev 

Added coins. I plan to have them be used for in-dungeon shops.

gamedev 

Added hearts. There is a 25% chance that a heart will drop. HP does increase, but HP still has no effect right now.

gamedev 

Added an exit tile (actually an object on it's own and not a child of the "Tile" class) that is randomly placed on each floor. Though it does nothing yet.

gamedev 

Multiple levels have now been implemented.

The second level is indeed a new one. The procedural generation algorithm made the starting room look like the ending room of the previous one.

gamedev 

Added music and sound effects. Though, music was technically added previously, but I muted the previous recording.

Background music is "Dungeon 05" by Beau Buckley, released under the CC-BY-SA 4.0.

opengameart.org/content/dungeo

gamedev 

Added a white sword. It takes twice as much damage. I plan on including "rental shops" where you can buy temporary items like this white sword and they go away if the player dies.

gamedev 

Added a potion. It fully restores HP. I also plan on having this being one of the items sold in the shop.

gamedev 

Purchasable items have now been implemented.

gamedev 

Added blue coins. They are worth 5 coins each.

gamedev 

Decided to add more rooms in the procedurally generated dungeons to add more variety. Sand rooms can now appear but they are functionally no different than floor tiles.

Show newer

gamedev 

@xianc78 when are you gonna add the crypto mining

gamedev 

@beardalaxy That was a joke. Everyone's anti-virus will immediately delete it.

re: gamedev 

@xianc78 it’s really lookin neat!

re: gamedev 

@RehnSturm256 Thanks, though the sprites are all placeholders (they're from BS Zelda).

This game was great in 1985 when it was called "The Legend of Zelda."
Show newer
Show newer

@xianc78 why not just spawn the enemies on entering the room so they aren't using resources when you haven't reached them yet? Truly random distributions suck and are never good - and weirdly this is the one overlap I found true between business programming and game dev.

You could also use the approach of old games like Soul Blazer and Gauntlet where you have enemy spawners so the room can have enemies spawned in over time.

Monster nests like in Soul Blazer are a rare enough mechanic that there is a lot of room to make it your own if you wanted to.

@brigrammer I could have made it like Soul Blazer, but I wanted this game to be more like Zelda 1. I think that game had no enemies in the first room in every dungeon.

@xianc78 sure, but if you want the enemies to be hand placed then hand place them - if you want them to be random because you want the game to be generative, then choose a fun randomization system

Zelda 1 already exists, if the goal is to make Zelda then make it - if it is to make something like it but with a twist, focus of finding your twist - say a zelda 1 style game with Soul Blazer style self altering levels from enemy nests, or add movement abilities to a NES zelda style game, or diablo style loot, or something else - there are tons of cool mechanics that when added to an old game could make it very fresh

however you do it, global random sucks because random is hyper spikey - what people think is random and what people think is random and feels good are miles apart - there is a reason more games use Nd6 than a d20+N

Sign in to participate in the conversation
Game Liberty Mastodon

Mainly gaming/nerd instance for people who value free speech. Everyone is welcome.