I’m going to start off this devblog series with some update notes on my past internal build releases, starting with my Alpha 1.0.0 build. This was my first functional (sort of?) game loop after several months of more focused system testing and just playing around in the Unity engine. While the current state of the game has progressed quite far beyond this, I’ve enjoyed reading very early devblog updates for various other games, and I think it could useful to do the same here. So let’s get it started with Devblog #1!
At this point, I’m obviously using some placeholder low-poly art, my own ugly programmer art, and some basic animations. I’ve created a basic 3rd-person camera controller, and the player character (orc), friendly defenders (footmen), and enemies (monsters and footmen) have character controllers for movement, health, and attack. Each of these has a handful of animations for attack, movement and death. I’ve also used to stock walls to build out a rough map with 3 lanes to defend. The only game mode at this point is Survival, where the objective is to simply survive 5 waves of enemies.
For Alpha 1.0.0, I’ve created shells of a few basic game systems:
The combat system is a basic autoattack system limited by range to target. If autoattack is toggled on and the target is in range, the player will attack every 3 seconds. The same goes for enemy and friendly units. At this point, aggro is based first on range, and then damage. So an enemy will attack the first target that comes within 8 meters if they are out of combat, and once in combat, they will build an aggro table and target whoever simply dealt them the most damage. Autoattacks have a chance to critical strike and deal increased damage, miss, or be dodged.
The inventory system consists of 4 backpack slots where a player can store non-equipped items, and a character panel where items can be equipped in their respective slots. For Alpha 1.0.0, there are about 300 items in the game, and the system accounts for varying levels of rarity, stats, and type, and slot. Certain enemies have a 50% chance to drop a random item, and items are segmented into loot tables based on level ranges, with better armor dropping at higher levels.
Speaking of stats, the stats system keeps track of key modifiers such as:
- Strength – attack damage modifier
- Constitution – hit point total and regen modifier
- Dexterity – chance to hit and get hit modifier
- Agility – critical strike and dodge chance
- Intellect – mana total and regen modifier
- Charisma – totally useless at this point
- Armor – damage mitigation modifier
- Level – affects chance to hit and get hit
- Income – gold to be spent on purchasing more friendly units
- Spell Points – used for purchasing spells
The initial spell system has some simple rules. Moving or getting hit during spellcasting will interrupt and stop the cast, and of course the player must have enough mana to cast a given spell. Alpha 1.0.0 has 4 spells available for purchase and use:
- Fireball – high direct damage, single target projectile with a long cast time
- Shock – instant cast direct damage to single target
- Nova – area of effect explosion damage
- Curse – damage over time to a single target
“Towers” at this point are basically just friendly footman units that can be purchased and placed by the player. They can also be evolved into more powerful melee footmen that grow and change colors on upgrade.
About Survival Mode
Ok, so what’s the actual point of this current game loop? This is basic tower defense. There are right, left, and center lanes that will all spawn enemies at the start of a round. These round spawns will start heading down their lanes toward the player’s keep until they’re engaged or spot a valid target for attack. There’s also a “jungle” area so the player can farm some extra experience and loot. The jungle mobs will not attack the keep and they will respawn every 30 seconds if killed.
If the keep is destroyed, the player loses. After all enemies in a wave are defeated, friendly units will be fully healed, any dead friendly units will revive and return to their starting location, and the countdown to the next round will begin. Enemies have a starting strength determined by the player level and they grow in difficulty each round.
Thanks for checking out what hopefully becomes the first of many devblog entries for Defend The Night. Like I mentioned in the intro, this update is a bit dated compared to where the game is today. I’ll continue backfilling updates for the internal builds all the way up to the current state of the game, and at that point I’ll hopefully be making weeking or bi-weekly devblog entries. Until then, thanks for reading and please feel free to comment or leave any questions below!