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!
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 fuck it this is fun!
$ cd content && tree
.
|____2022
| |____November
| | |____home_lab_6
| | |____proxmox_route_single_interface_through_vpn
| | |____proxmox_route_single_interface_through_vpn
| | |____proxmox_update_networking
| | |____blue_team_2
| | |____blue_team_1
| | |____hackthebox_redpanda
| | |____tryhackme_neighbour
| | |____post_exploitation_journey_2
| | |____post_exploitation_journey_1
| | |____try_hack_me_vulnnetendgame
| | |____try_hack_me_corridor
| | |____try_hack_me_surfer
| | |____try_hack_me_epoch
| | |____try_hack_me_template
| | |____modern_image_format_conversion
| |____October
| |____September
| |____February
| | |____perfect_opsec_anon_accounts
| | |____perfect_opsec_pgp
| | |____perfect_opsec_anon_payment
| | |____perfect_opsec_disk_encryption
| | |____perfect_opsec_hardware_spoofing
| | |____perfect_opsec_vpn_vps_and_tor
| | |____perfect_opsec_tor_browser
| | |____perfect_opsec_source_network
| | |____perfect_opsec_os_install
| | |____perfect_opsec_mitigate_author_profiling
| | |____perfect_opsec_hardware
| | |____perfect_opsec_clearnet_browser
| | |____perfect_opsec_basic_os_config
|____2021
| |____May
| |____April
| |____February
|____2020
| |____December
| |____January
| |____August
| |____July
| | |____playbook
| | |____kioptrix_level_5
| | |____kioptrix_level_4
| | |____kioptrix_level_3
| | |____kioptrix_level_2
| | |____kioptrix_level_1
| | |____ringzer0team_sysadmin_linux_8
| | |____ringzer0team_sysadmin_linux_7
| | |____ringzer0team_sysadmin_linux_6
| | |____ringzer0team_sysadmin_linux_5
| | |____ringzer0team_sysadmin_linux_4
| | |____ringzer0team_sysadmin_linux_3
| | |____ringzer0team_sysadmin_linux_2
| | |____ringzer0team_sysadmin_linux_1
| | |____planning_phase_0
| | |____blog_creation