/* Godot projects I have made in the past. */
Apocalypse Approaches is a top-down 2D rogue-like where time is everything. Instead of having a traditional health-bar, your "health" is the amount of time remaining in a run. You are always losing time, and certain things (such as taking damage) can cause you to lose more time. You can gain time back by defeating enemies and performing certain other actions such as parrying with the sword. Everything plays heavily into Time being a resource, as your health, magic, and build.
The game is currently in development, but as of now includes a procedurally generated dungeon you can traverse, as well as items you can find to progress your build throughout your run.
Enemy Artificial Intelligence System ("Maneuver System")
Created custom editor interface for developing enemies generically in Godot inspector
Each enemy has a decision tree to pick a "Maneuver" to execute
Each enemy has a list of maneuvers that can be chosen by their decision tree
"Maneuvers" are sequential lists of atomic actions to be executed in order.
"Actions" can play desired animations, activate/deactivate hitboxes, specify damage, knockback, and other variables. They can be overridden for additional functionality
EG: "Approach" action pathfinds towards the enemy's target (usually player), "Fire Projectile" action fires a projectile towards the enemy's target
Graph-Based Procedural Dungeon Generation System
Created custom editor interface to set up graphs that represent valid dungeon layouts
Created system for interpreting graphs breadth-first and placing valid rooms connecting to each-other
Dungeon Room Representation
Enemy Encounter System
Wave-based encounters that can specify enemy types and spawn-points, and signal their completion
Level Management System
Cutscene System
Made use of Dialogic and Animation Players to create a cutscene management system
Pixel Art & VFX
Clock and Time Gauge UI on top, Logo, character dialogue portraits, dialogue assets, and various assets in the levels
Particle systems, Dither Shader
B0T.NET is a hacker-themed clicker / tower defense game, where you are fighting off a virus continuously diving deeper into your file system. Click on the viruses to gain RAM, and use the RAM to buy towers! After each wave, choose some abilities to upgrade to make future purchases stronger, and increase your RAM income. Be wary, as shop items become more expensive the more you use them, so do your best to keep up with the incoming viruses.
Concept Design & Creation
Core gameplay systems, such as the game board, virus behaviors, game wave management, shop, and terminal output systems.
System utilizing Godot SubViewports to render 2D scenes inside of a 3D environment.
Used for the screen itself, as well as the folder contents and game board to display 2D scenes inside of User Interface nodes.
User Interface Design & Creation
Pixel art for game world assets
CRT Shader for 3D Set
Junk-Punk is a competitive 1v1 turn-based tactics game which allows players to equip modifications to their move-set for a limited time to gain advantage.
Turns have three phases: Environment, Setup, and Action. During the environment phase, environmental effects take place, such as scrap falling from the sky and decaying in value. During the setup phase, players have access to a shop and can purchase modifications using scrap, which go into their inventory and can then be equipped. And finally, during the action phase, players can move and perform an "action", which is specified by the selected arm mod they intend to use.
Systems for Movement, Combat, Action Economy, Grid Representation
Movement can be defined with continuous paths as well as teleports to unoccupied tiles
Combat can be melee, ranged, or AOE, and AOEs can be rotated.
Game Manager that tracks different phases, UI updates for the active player and scoreboard, and manages player turns.
Systems for interpreting data defined for movement, and attacks.
Structures for Player & Scrap
Scrap spawns every 3 turns for balance, can be destroyed for bonus currency, value decays over time.
Players store information about mods, inventory, and signal controls to the game board.
System Designing and implementing unique mods.
Define paths, damage, range, aoe, passive effects & etc. using editor, and if necessary, inheritance.
Singleton Database to store mod data for players to copy and reference, and assist with integrating new mods into game.
Asset Integration (Audio, Sprites, UI)
Player sprites animate & limbs colors reflect equipped mod
Cordyception is a 2D top-down puzzle platformer game themed after the cordyceps fungus. The player is a fungal witch with the ability to possess bugs and use their abilities to manipulate & traverse through a puzzle environment. The player's objective is to enter a house at the end of each level.
Each of the bugs has 2 main abilities. 1 which can be used indefinitely, and one special ability which will kill the bug after it is finished, as the bug will have used the last of its energy doing so. In addition, the player cannot walk on stone, but all bugs can, so the player must be using a bug to avoid the stone loss condition. Beyond this, bugs carry momentum when unpossessed and the player gains height when leaving a bug.
Concept & Design
2D platforming characters:
Witch | Hopper | Roller
Gameplay Systems:
Game Manager Singleton
Possession/Unpossession
Level Editor
Level Tracking & Resetting
Interactible Level Objects: Poison | Rocks
Asset Integration:
Audio Manager Singleton
Sprites / Animations
VFX Particle Systems
UI Implementation and Flow