Purger Development Journey, Part 2




Date: 6/12/2024
Overview of the last 9 months (Build V0.3 to V0.7)
It’s been a while since my last entry, but a lot has changed about Purger. New systems have been added, some removed, and a lot of refactoring has taken place. Here is a general rundown of my progress:
- Removed orbital camera view: the player only has one camera view now (combat camera). Swapping between two different camera views was pointless for gameplay and disorienting for the player.
- Turn enemies ability: the player has a new ability which allows them to turn enemies into their allies to fight for them. This is a powerful ability that is limited by a set number of charges, a usage cooldown, and recharge effect.
- Command system: Changed the game controller to use a sequence of commands that affect the game world. This includes messages, spawning agents, damaging agents, game triggers, etc. It can be stopped, restarted, and delayed. The code base for it is also scaleable for more commands. It allows for customizable game behaviour with the editor and avoids requiring a sequence to be hard coded. I adapted the system from a previous capstone project I’d worked on back in 2022 called “Friend In Me”.
- Tutorial level: the game now has a tutorial that teaches the player all the basics. It was made using the Command system (it was the primary reason I implemented the command system).
- New and improved VFX: this includes bullet trails, muzzle flash, bullet impact and decal, smoke, fire, explosions, etc. Most of the effects were inspired/sourced from Youtube tutorials from the channel GabrielAguiarProd: https://www.youtube.com/@GabrielAguiarProd
- UI target tracking reticle: player UI now has a targeting reticle that shows what the player is targeting with the scan camera targeting system (found the solution here: https://discussions.unity.com/t/canvas-screen-space-camera-to-world-point-in-scene/856187/6).
- Shield system: agents can have a rechargeable shield now. It even has its own VFX.
- Basic models and textures: added some basic models (gunship vessels, turrets, world structures) I’d created using blender and textures I made with UV maps and Krita (free image editing software) or materials I’d sourced from the Unity asset store (including skybox artwork). These are more appealing than blocks and spheres, but are still very basic. I will need to define the art style before taking it any further.
- Basic options menu: allows the player to change their sound volume for Music, Ambience, and effects (also master volume), and change their mouse sensitivity from the start menu (I’ve yet to implement it into the pause menu).
- A LOT of system refactoring: reworked and rewrote a lot of features in the game which are mostly invisible to the player, but needed to be done for code quality, scalability, modularization, and performance. This involved:
- Input system (uses C# events now)
- Projectiles controller (simplified)
- Command system (made more scalable)
- Agent scripts (agent controller, player, and AI. Nearly all shared behaviour is in the agent controller)
- Possessor agent (controls, delayed possessions, VFX, etc)
- Transparent object system now works with materials that use custom shaders, URP shaders, and the Built-in standard shader
- Camera system (no longer uses cinemachine. Also it pans over to an agent when the player possesses them)
- Scene assets are referenced to load scenes instead of their string name or build index (Sourced from here: https://www.youtube.com/watch?v=4Dx4GjuDpmY)
- Audio system (removed redundancies and rewrote some of its code)
- Scriptable objects (allows for major modularization and easier customization for the game, even used it for the Input System)
- Shifted the render pipeline from Built-in to URP
- Outline script needed to be moved on the agent prefab object hierarchy. When it interacts with an object that has a VFX component on it (not a particle system) it crashes the editor. The Outline system is a third party package.
- Terrain: I’ve started looking into it, but haven’t implemented it into any builds. Need to investigate whether it would be better to do it using the Unity Terrain package or make it in Blender.
What’s Next?
There’s a lot that can be done with Purger, including backend systems work, gameplay balancing, usability improvements, and especially artwork and visuals. There are more gameplay features and improvements I want to make, including some control over agents you’ve turned into your allies. But at the moment, if I’m going to go any further with this project I’ll need to write a game design document and technical specifications. This will make it easier to come back to after long pauses in development, and create a more concrete idea of what the idea for the game is beyond “Gunship Action Possession” game (also some story/lore to help inspire the artwork). The game is very much still in a pre-alpha state and will need a solid plan to take it out of it.
If you’re interested, try out the latest build here: https://fiddury.itch.io/purger
And special mention to the following:
- GG Alsorunning, turret logic: https://www.youtube.com/watch?v=iz8Wzn3lHTE&t=26s
- Merkury, object pooling system (Channel doesn’t exist anymore): https://www.youtube.com/watch?v=TQgrifL9DK0
- World of Zero, detecting objects in camera view: https://www.youtube.com/watch?v=XrqesjfcitU
- Dhumil Dholiya, referencing scene assets in unity inspector: https://www.youtube.com/watch?v=4Dx4GjuDpmY
- GabrielAguiarProd, VFX graph and design: https://www.youtube.com/@GabrielAguiarProd
- FiveFans, poster on Unity discussion board for the UI targeting reticle on the player UI screen space (not world space UI): https://discussions.unity.com/t/canvas-screen-space-camera-to-world-point-in-scene/856187/3
Files
Get Purger
Purger
Death can't stop you
Status | Prototype |
Author | THEFID |
Genre | Action, Shooter |
Tags | Indie, possession, Singleplayer |
More posts
- Purger Development Journey, Part 1Mar 07, 2024
Leave a comment
Log in with itch.io to leave a comment.