Learning Phase Result
I've learned a lot over the last little while about how to use Unity, and some of the software architecture patterns that are used in games.
Where I ended up in terms of functionality:
- Hexagonal, procedurally generated map
- First person controller
- Third person controller
- Unit spawning, path finding
- Save/Load Maps
Concepts I understand enough now to get by:
- Textures
- Unity Lifecycle handlers
- Camera objects and controllers
- General UI design elements provided out-of-box by Unity
- How randomness is used to create more pleasing graphics
- Why a custom rendering pipeline is important
- Ray casting works
Beyond this, I think I'll take my usual approach of learning how to do something when I decide I need to know how to do it!
Design
It's finally time for me to start writing down the concept and deciding on some base elements of the game... I've got a lot of ideas, and honestly I think it's all too much.
At the core, the mechanism I want to implement is the ability for the player to 'program' an AI that ends up playing the game on the players behalf. I want the game to PvP focused, allowing players to invade other player's bases in some way. This therefore means that there's a base-building component to the game. There should then be a way to gather resources, or macro manage the base. The micro-management I'd like to be less of a Starcraft experience and heavily relying on the programming aspect, where a group of AI's of some sort are configured to work together to concur the environment.
Element brain-dump:
- Open, procedurally generated, infinite world
- Crafting progression
- Backstory: You're an engineer in a wasteland. Program your robots to gather resources, fight enemies and advance your foothold, or be wiped out
- Rust inspired progression - kill or be killed sort of thing. Start from nothing and work your way to the end of the tech tree before being squashed
- Have an element of RPG skill progression that spans death, less punishing than Rust
- Character trees: Focus on robot programming, focus on gunplay or focus on static base elements
- FPS gameplay
- Base requires resource upkeep, all loot stored in base
- Environment has resources to be gather: Trees, Ores to mine, Oil and gases to extract (Each grants XP to personal gathering tree, or bot-gathering tree)
- Environment has enemies to fight and loot: monsters, NPC players/bases, bosses. Each will respawn at random around the map. (Killing yourself grants personal attack XP, bot kills grant bot-attack XP)
Implementation Plan:
- FPS Controller and UI starter
- Add a basic resource to map generation (Trees)
- Add ability to gather a resource to player controller
- Add crafting system base
- Add build system base
- Add enemy system base
- Add some basic enemies to map
- Add base robot crafting recipe
- Add base system for programming robots
I'm going to go ahead and assume that this plan is going to vastly change, so I'll leave it nice and brief first! For a project that wasn't personal I would put a lot more thought into this, but screw it this is fun!