Unrest - How Unrest Was Made Update
Pyrodactyl Games latest kickstarter update describes how Unrest was developed from the beginning all the wat to it's completion. Here is the first part.
In 2008, there weren’t any pre-existing engines at the same level of popularity as Unity or Unreal today. I was familiar with Valve’s Source engine, having been part of the HL2 modding scene (I worked on Dystopia – play it now!) but source code access was limited and it was prohibitively expensive to license. All of these things made writing my own engine the only realistic choice.
After soaking up a lot of tutorials and advice, teenage Arvind realized that trying to write a general-purpose engine is a waste of effort. It's better to just try and make a game, then utilize the components and code you wrote in your next game. Now, teenage Arvind was the kind of person that makes a game about how much they hate everyone, how much college sucks and my god aren’t adults annoying?! Ahem.
So I started work on my first game, A.Typical RPG (look at these posts, I find them adorably humorous), a game about my college experience. It was literally my tutorial codebase gradually morphing into a game. By sheer luck, I managed to find a very talented artist to work with me due to both of us having been a part of the HL2 modding community.
- How I benefited from programming a game from scratch:
- I got to teach myself basic concepts like state machines, game loops, input handling.
- I learned how to manage a team, and how to set goals and deadlines for a project.
- I was learning general C++ concepts like templates, vectors, certain algorithms which I feel made me a better programmer overall.
- Due to the game being a mini-game driven RPG, I had to program lots of game systems--game event handlers, conversation mechanics, asset loading/unloading to optimize performance, saving/loading game state to/from file and so on.
- I was making something I wanted to play while doing all of the above.
Pretty much every point in that list can be taken as a negative point, and to an extent I agree--learning basic programming concepts while working on something you intend to sell is probably not a great idea. Maybe I would have ended up making all of my 3 games with Unity if I had been born a couple of years later.
Since this is a series of posts, there isn't really an "ending" here - I'm still making games, and I was incredibly lucky to meet the right people at the right time, and make the games I wanted to make. In part II, I'll discuss how I met my team and how I program my games.