As I experienced personally with an older (unfinished) project of mine, a complex game without a plan prepared beforehand is bound to have a terrible code architecture and a general lack of direction. To prevent this, I’m going to prepare a guideline for myself, in the form of this post.
Here are the main points that will be followed during development:
- Procedurally generated everything
Enemies, ships, items and planets, all generated randomly. I’m still not sure of actual results, so in development randomness might be cut a bit.
Here’s an example of a generated planet:
- Game gets as hard as you want it to get
If a game is too easy or too hard, it gets boring. However if its difficulty is just right, it’s a lot of fun. To achieve this dynamic difficulty, I think it’s for the best if you let player decide for himself/herself how hard they want their game to be. A game that utilizes this point is Mount & Blade: Warband, where you fight small criminals at first and can later progress to fighting lords, if you wish.
- Sense of ownership
With enough firepower, you’d be able to conquer planets or even galaxies for yourself, and set up various businesses on it for a passive income. This mechanic been done in a lot of games, and proved itself to be a fun part.
- Open world
A pretty self-explanatory point. An open world is to be created, with random NPCs in-between.