23 Jul 2024
Overview
Since my last post, I have made 108 commits! Although I have been silent, there have been numerous changes that I am excited to announce.
Enemies & World Items
There are not too many changes in this regard. The changes primarily are focused on balance and fine tuning the visual appearance of their actions and projectiles. Additionally, sound is now localized at the point of the enemies, which allows for spatial sound, which is quite nice. I did add a new variation on the turret.
Wall Turret
These are turrets that are set on a timer that fire a projectile in a designated direction. I like these as a world hazard, as at times I feel there is an over emphasis on the hazards of enemies, and not on the world.
Doors
At long last, I have added doors! There are 3 colors of keycards that can be picked up now, which are red, green and blue. Upon having a card, the appropriate door will be unlocked, and will open and shut as the player gets near and far away from it.
Health Pack
Pretty much does what it says on the tin, it heals the player on pickup.
Damage Boost
When picked up, the damage output of the player is increased significantly, if only for a short amount of time.
Shield
As a limited time item, this will significantly lower the incoming damage that a player may receive.
User Interface
A basic user interface has been set up, which allows for tracking the health, stamina, and currently selected weapon that the player has equipped. It will also display any of the keys that have been picked up.
Recap
As I get further along with my vertical slice (which is my primary goal), I plan to provide more screenshots and first looks over the coming weeks. With that said, my two main points moving forward are to develop a complete starter level, and create music for said level. Once that is done, it is adding a boss to the level, and polish, polish, polish!
10 Jun 2024
Overview
The main goal for the past few weeks has been to get the core gameplay loop nailed down, even if only in its roughest forms. My objectives were as follows:
- Complete rough outlines of the basic enemy types.
- Update the user interface for the heads-up display.
- Set up core functionality to allow easy implementation of player abilities moving forward.
Enemies
There are four main enemiy types that were implemented this week.
Spikes
These are very simple in nature. If a player stands on the spikes for a few seconds, it activates the trap, and they get stabbed.
Corruption
Similar to the spikes, each second that a player stands on a square, it will deal a single point of damage to them.
Grunts
These are simple, mindless enemies that follow the player around the map. They have four main phases:
- Idle (stand in place, wait for a player to get within their line of sight.)
- Chase (follow the player.)
- Direct chase
- Attack
- Search.
What makes these enemies interesting, is that they do not directly follow the most direct path to the player. Instead, they head towards a point, usually within one tilesize of the player. This is to avoid bunching up around the player. As they are mindless enemies, it is quite fitting to not have them be the smartest. Once they are within two tiles of the player, they switch to their direct search, where they actively move to the closest point to the player. At this phase, they attack every second or so, dealing a small amount of damage. If the player is lost, then they simply search for a few seconds, before returning to their idling point. What could make these enemies more interesting in the future, is to potentially have them return to their starting square once the player is completely lost.
Turret
The turret is my personal favorite implementation that has been made. When a player is within range, it launches a volley of shots directly at them. A total of 5-6 shots are created in short succession, before it has to “reload” to send out another volley.
User Interface
At this point, the ability for up to four player cooperative play has been implemented. As such, local splitscreen has been tested, and works quite well for my needs. At this point, I do need to find a way for a designated player to be locked onto for being attacked. What I will most likely end up doing, is creating a helper class that can be used to determine the nearest instance of a player, which will then set a local variable for the “target,” so to speak. As I am using behavior trees via finite state machines, this is a simple implementation that can be knocked out in perhaps less than 15 minutes.
Player Abilities
This was my most recent task for the day, and was quite simple to do. At this point it is simply creating the scripts for the abilities, and assigning them when the player object is instantiated into the scene.
Recap
I have attached a GIF below of the simple pathfinding and basic state machines that are in place. Along with it, the system that I use to generate a grid for the pathfinding can be seen. (Green squares are safe to move on, red are not.)
All in, it has been quite the fun exercise this week. My goals for this week are as follows:
- Implement helper class for setting the current “target” to search for.
- Add two new enemies to the game.
- Add basic bloom/lighting fx to the game.
- Add additional abilities for players.
- Set up system for handeling enemy damage.
- Review bugs of current items to iron out.
With a few additions and a nice review via user testing, I should be able to make a nice amount of progress for the coming week.
09 May 2024
Step into the deep, one more time…
Dungeon Crawl is a local co-operative four player experience where plays work together to dive deeper into a prebuilt dungeon. The game is designed around team tactics and resource management.
Gameplay
Players take on their choice of one of four specialized classes, and must work together on their descent through the dungeons. Unlike most top down dungeon crawlers, the game is designed around forcing players to manage their resources, as help is not on the way. With limited resources, players are forced to think about each of their actions, with the smallest mistake being able to snowball into their demise.
A recurring mechanic, is that players do not know what is around the corner. Their vision is obfuscated by the obstacles in their way, forcing players to think and explore their surroundings to get a better hold on what they are up against. Additionally, there are a myriad of traps and puzzles for players to figure out on their own.
More is to follow soon. Ideally this is more for a journal/source of reflection for myself to keep myself moving forward on this project. I look forward to sharing more in the coming weeks!
01 May 2024
Hordz of Wrath
Hordz of Wrath is my entry to the Ludum Dare 55 Compo. The theme for LD55 was “Summoning.” Below are the controls and simple story, along with a link to view the project.
Hello, Brave Knight
I’m sorry to say, however tonight you will be reaching your demise. The evil necromancer has cornered you, and has unleashed his hordes of the undead in an all out attack on you. Fear not! For the divine beings of light have taken pity on you, and are sending in whatever you may need to survive longer through the onslaught.
From their power, you may summon any items at your disposal to help fight off the unending hordes. Equipped with your trusty bow and sword, survive for as long as you can! with each foe struck down, you are either rewarded with coins, or with sway to those above. Use their sway to resupply, and keep the fight going longer.
Controls:
Movement: WASD
Shoot: Arrow Keys
Num 1: Summon a health heart. (Costs 75 summoning)
Num 2: Summon armor. (Costs 50 summoning points)
Num 3: Summon a coin. (Costs 10 summoning points)
See how long you can survive, and what the highest score is that you can achieve!
Source code can be found here.