It’s Been a While, Mister Dragon
After learning how to upload games to the web, I’d like share something a little special (to me at least).
This dragon flying game is now available free on itch.io. It’s the same one I had briefly shown back when I started writing these articles.
This is a project I had worked on a few years ago, for about 4 months. I eventually stopped because going any further with this was far beyond the skills possessed at the time. Honestly though, I think getting even this far was beyond my skill as well, but I persisted because I just loved this idea so much.
So what took so long? Basically all the difficulty is due to things I imposed on myself. Despite what ended up happening, I didn’t intend for this to be a short throwaway project. I wanted to set up systems that would support this game as professionally as I possibly could. It was really important to me that I allow as much freedom as possible. I felt any game that came of this would be successful based on its immersion, and how convincing it could be that we were actually experiencing what being a dragon actually is like.
The dragon I had modeled and rigged myself. I also set up a system to animate it in Unity. I know now that there are tools already available that I could have used to do this, but I wanted to make something I knew could work as both a traditional animation system while also being able to transition to procedural animation, in case I wanted the dragon to have one of his legs resting on uneven terrain or something.
Basically, I’m using these targets as a way to move the bones using code. It’s probably inefficient in ways that I don’t yet understand, but It allows me control over how the bones react movement. For example, I was able to have the tail realistically lag behind like this:
As for the game itself, the dragon can run around, climb steep cliffs, jump, and fly. I spent a very long time playing around with raycasts and how to use the information they provided to properly keep my dragon angled properly on the ground, as well as when to switch from flying to landed.
Finally, the game features a semi-infinite terrain to explore. It’s randomly generated using Perlin noise, and is automatically created and destroyed as you move around.
I also figured out how to make and use a custom shader so that far away terrain fades into view, instead of abruptly appearing.
In the end, despite all these cool features, I ran into a problem. I didn’t know how to make an actual game out of this. To this day, I still am not exactly sure where I want to take this idea next. I have various ideas about combating various other creatures in a large sprawling world, but actually making all that will take more time than I currently have available.
Eventually I plan to use some of what I’ve created here to actually make a real polished game. I’ll need to add a lot of much-needed fixes and optimization, and the end result will probably be some completely different genre than just a pure exploration simulator. In fact, I might just end up using a lot of the same ideas in a different project entirely. One day I’ll have to really dive deep into what kind of game I want to make.
For now though, enjoy flying around, or check out the nitty-gritty code at my GitHub repository. As always, thanks for reading.