The game engine we’re developing on is Unity3d. It’s a great engine, but some things suck and can be done much better. The more I learn and grow in the game development industry, the more I learn how a little extra work early on can save a lot of time later on. Here are some things I’ve done to save time later on:
HTML/CSS User Interface
Html and CSS is a tried and tested technology for building beautiful user interfaces, it’s been refined for over 20 years and still used to this day. It’s not super commonly used in the game development industry, which is weird, but it’s definitely something people desire and try to implement.
The usual route is embedding a Chromium process… telling Chrome to render some html and CSS, receive the texture for the rendered page, and display it in-game. The problem there is Chromium is bloated, heavy, and slow, it was never made for games.
I’ve gone down that route, and it’s a love hate relationship with more hate than love. So, I spent some time trying to create a fast, lightweight solution for Project DIE and future projects going forward.
Live editing of game code
So, Unity kind of does this already… but it sucks so bad that nobody actually uses it. In Project DIE, any changes made to game code are compiled and hotloaded while the game is running in less than a second, it’s usually done by the time I tab back into the game.
Normally in Unity you’d have to stop playing the game – modify the script – wait for Unity to compile the scripts (slow) – load back into the game – get through the menus – get to the place in-game that you’re making edits to – finally, observe the changes you’ve made. Why do all that, when you don’t have to?
Any changes made to C# game logic and HTML/CSS user interface will be seen in real-time, and the amount of time this will save is massive. Another benefit is developing and designing features becomes fast, seamless, and enjoyable, resulting in better quality in less time.
Zombies & Missions
With the user-interface and scripting systems in place I’ve been able to start putting together some actual gameplay. The idea right now is a map that you run through, completing objectives along the way, and fighting off hungry zombies.
Player Visibility
It sucks when you’re standing under something and can’t see your player, so I’ve added a system to make sure you can always see your player under trees, ceilings, etc.
Celene Character Concept
A huge thanks to sαssүℓαssүғσx in our Discord channel for creating this. I find that mixing creative (art, design) and logical (code, systems) work is difficult – it’s hard to switch between the two, and I was really excited when sαssүℓαssүғσx sent me this. Celene is going to be our first character, and serve as a target for how the character ability & class systems will be put together.
Wrap-up
The past few months were spent mostly creating these things. It’s been a difficult process, but these are things that can be used to greatly enhance the game development workflow for years to come, notably for Project DIE.
They’re in a good enough state to start spending more time on the game itself, so hopefully the next blog is less technical, more showcasey.
Buy me a coffee
I’ve set up a buy me a coffee after a few kind people have asked how to support the project further. Seeing people offer their support out of the blue in that way really surprised me – in a good way – and sparked my passion and energy towards this project 😍
Leave comment