Dungeon Crawler in Godot
Published: Tue, April 3rd, 2024Over past two weeks, I have been working on a game in a genre I have never played. Dungeon Crawlers are grid games with 3rd person view. Traditionally, they are themed around fantasy and often are some hybrid of turn based and real-time. Some classic titles include the Might and Magic Series and Wizardry Series.
The genre is still alive. There was a itch.io game jam running last week. It inspired me to do this.
I played some more modern dungeon crawlers from last year's jam to understand the genre. It has evolved somewhat since its 90s beginnings, while retaining the character. I love these games for how much creativity can still be applied within its rigid constraints.
What I've made
Getting into Godot was a cool experience. The gdscript language is very similar to Python and the GUI is quite intuitive. What drives its popularity is undoubtedly the quality of documentation and the community around it. They really make the engine quite easy to use and understand for beginners, with more powerful features being broken down well in documentation when you are ready to use them.
I have made a humble game, opting for some level of breath of experience in Godot itself. Some things I've achieved:
- 3D dungeon crawler style environment
- Smooth player control with raycasting to interact with environment
- Entity interaction with Player
- Rendering 2D sprites as 3D environment
- Game loop with a reset mechanism
- Rock, Paper, Scissors combat with interfact counting score, displaying outcomes
- Basic Dialogue Tree system with nice display
Assets
I've created a bunch of assets, really anticipating the game to be a bit more fleshed out by the time I stop with it.
I'm not an artist. I found capabilities of Stable Diffusion models quite suitable for making placeholder characters and textures. I managed to run some stable diffusion models on my M1 chip, but it was quite slow. Instead, a Hugging Face artificialguybr LoRA portfolio demo worked like a charm.
Lots missing
The progress on this has been slow, but that is not a good excuse for what state it is in. I could have developed more have I been more focused on the project and set finishing a demo as a priority. The Rock Paper Scissors combat is more complicated than it needed to be. The game is missing a lot of audio implementation. It is missing a proper system of progression, though a placeholder is present. Obviously it is missing level design and art assets needed for it. It has no story line, just an idea of one I'm keeing to myself.
Final thoughts
This project took an extra week because of general laziness and doing other things. I wanted to make some real progress into it before moving on and I think I have. It's not quite a game, but when I want to work on a game in the future, this provides a half finished base for one.