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.

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.

gamedev 

Replaced the copyrighted, placeholder tiles with my own.

gamedev 

Improved the wall tiles. It looks SO much better now. It's actually starting to look like a game.

gamedev 

Now, keys (using the coin sprite as a placeholder) are required to exit each floor.

gamedev 

Created a third enemy that shoots projectiles.

gamedev 

Added a shield item which reduces the damage the player takes by half.

gamedev 

Dungeon shops are fully functional. Though I will most likely move them to the center of their rooms and maybe add a merchant.

gamedev 

Rearranging the HUD.

(No video this time because I only need a screenshot to demonstrate)

gamedev 

Implemented pausing (something I have neglected for a while).

gamedev 

HUD now includes icons to indicated the items you have.

gamedev 

Added an alternate tileset. I plan on having the tilesets change, the deeper you go.

gamedev 

Dungeon now has alternate tracks for different floors.

gamedev 

Added an "ice level" tileset along with an accompanying track.

gamedev 

Added the fourth tileset. I have know idea what this is supposed to be.

gamedev 

Added a locked door that appears before each exit room.

gamedev 

Created a sand tileset. That appears in-between the snow tileset and purple tileset.

gamedev 

Added lives, including an extra life item that sometimes appears in the dungeon shops. I even plan on going so far as to delete your save file if you run out of lives.

gamedev 

Finally, the key is no longer using the coin sprite as a placeholder and now has it's own texture.

gamedev 

Created a texture for the extra life item. It looks kind of weird. I tried to make it look like a stick figure with a plus sign, indicating an "extra life", but it turned out kind of odd.

Follow

gamedev 

Finally added text on the game over screen. It's weird that I always neglect details like these.

· · Web · 1 · 0 · 1

gamedev 

Implemented saving and loading. Game saves automatically every time you enter a new floor, but you loose your save file if you run out of lives.

gamedev 

I'm thinking about what else to add. I could add more enemies, but I need to come up with enemy behaviors that don't require major reconstruction of the base Enemy class.

I don't know if I will add bosses because the player only equips a sword, which severely limits the potential for boss battles. Originally, I planned on having the player equip bombs for bomb-able walls, but placing such walls would've been difficult for the dungeon generation algorithm. Arrows and other projectiles seem kind of pointless. Either I limit the amount of arrows that can be shot/thrown, or I give the player unlimited arrows. The former would make it frustrating if the player was in the middle of a boss battle that required arrows and he/she ran out. The latter would effectively make the sword useless. That leaves only the boomerang as a possible second weapon.

Anyway, I don't plan on making this game grand or anything. This is really just a "practice game" for something I plan on making later on. That future game will have a much better dungeon generation algorithm.

gamedev 

Added a slime enemy that takes one hit to kill.

I plan on balancing the enemy placement, having the stronger enemies appear in later levels because right now there is no change in difficulty whatsoever.

gamedev 

Key and shield icons are now dark when they player doesn't have them, but light up when the player has them, instead of just appearing on the HUD when the player has them. The sword icon now indicates whether you have the wooden or white sword.

gamedev 

I got the credits implemented. Right now, it's literally the same as the credits in Distant Ruins because I used the same source files along with the credits.txt file from that game.

gamedev 

Adding the difficulty curve to the game by making it so that certain enemies only appear in certain levels. For example, for the first four levels, only the slimes and skeletons appear.

gamedev 

I'm now in the process of replacing the copyrighted assets with free-to-use assets or my own. So far, I only replaced the graphics for one enemy.

gamedev 

Replaced the BS Zelda skeleton sprite with one from Open Game Art, but it looks to small. I tried to look everywhere for 16x16 skeleton sprites and I can't draw my own, but this was the only one I could find.

gamedev 

I tried to make crudely drawn skeleton sprites based on this 16x16 character base sprite.

opengameart.org/content/base-c

It turns out that I can't draw a skull from the side so it ends up looking weird from the profile view. It still looks small compared to the player sprite, but I plan on using the same base sprite for the player.

gamedev 

Added the first and possible only boss, which will appear in the final floor. It's basically just like the Ghoma in the Zelda games except you attack it with the sword as it's the only weapon in the game.

Though given the limited window to attack and the fact that it takes more time to charge at the boss than it is to strike it with a projectile, I don't know how this boss battle will pan out, but I feel like without a proper final boss, the game would end anti-climatically. Also, due to the fact that levels are randomly generated, there is also an issue that the final boss room can be entered from the south, meaning that you will end up behind the boss when the battle starts. Maybe, the final floor can be just a single corridor that leads to the boss, instead of a randomly generated dungeon like the rest of the levels.

Anyway, I just want to get this over with and move on. After working on this project, I can clearly see why Nintendo never considered making a Zelda game with random dungeons. Not saying that it's impossible, but there are so many things you need to take into account (lock and key placement, metroidvania elements, etc) and they are much harder to implement in a randomly generated dungeon compared to a simple roguelike dungeon.

After this, I plan on creating a simple adventure game to practice things like event flags and dialogue trees.

gamedev 

Made it so that the final boss level is just two rooms. Though I haven't made it so that the store doesn't spawn in the boss room. I've also disabled the staircase for the boss fight until it's defeated.

gamedev 

The final boss now shoots projectiles at the player. I tried adjusting the timing of when the boss shoots the projectiles, but I either have the boss fight being to easy or it being borderline impossible. I should probably accept that the game will have an anti-climatic boss fight.

I thought about having the boss drop some McGuffin item that will end the game, instead of just opening the staircase, but I don't know what kind of item it should be.

Show newer

@d7094945513d0072aa9e2d300c65fba336be751ef60eecbbf0d7a4871561d41a I did. Maybe it's not viewable from your Nostr client, or the Nostr-Fedi bridge is being funky.

gamedev 

@xianc78 it is inadequately proportioned in relation to the hero sprite. head is way too small. i'd lend you my skeleton sprites but they're 24x24.

gamedev 

@xianc78 i will say though, for just a free indie game i don't think it matters too much. slightly conflicting art styles is a given for things like that. the closer you can get it the better obviously, but that'll happen.

gamedev 

@xianc78 snoblin.itch.io/top-down-skele

those look a lot closer to your proportions. it's $2.60 though and obviously not a totally open license. still pretty cheap though all things considered and it might look better.

gamedev 

@beardalaxy That sprite looks more suited for roguelikes anyway. The animation is also way too fluid, I could skip some frames in that animation, but the license is a huge deal-breaker. Codeberg requires me to put everything on an open-license.

The enemy doesn't have to be a skeleton. There is no mention of it being a skeleton in the source code and it doesn't throw bones or anything like that. I just used what made sense using BS Zelda's spritesheet as a placeholder. I also used BS Zelda sprites as placeholders because the size of the characters and tiles are the exact same.

Sign in to participate in the conversation
Game Liberty Mastodon

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