Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Elemental Gaurdian Defense is now Live!

Not the most practical way to post out Dev log, but we both forgot to start posting at the beginning !!!

Elemental Guardian Defense 

Dev log 1: 

Sayer - Started prototyping a tower for our elemental guardian defense game. I was able to create a turret that follows an enemy and has a variable shoot speed!  - things that need to be done after this. Enemy management, enemy health, Elemental towers.

Bowen – Started Brainstorming the game mechanics and core essence of a tower defense game with my teammate. Decided to go with a diablo-like, dark fantasy game style. Have to look for assets or build my own assets around a dark fantasy theme.

Dev log 2: 

Sayer - Prototyped enemy functions today, debated between using the AI NAV mesh but i decided on hard coding the movement as I encountered issues with the NAV mesh before. As well with the waypoints and enemies being separate it allows for enemies to change speed dynamically during runtime ( could become feature?). Now working on a wave management system. Partially through the wave management class, following brackeys(god send of a human) his video lays a fairly solid foundation that I hopefully can expand upon when creating our multiple enemies.

Bowen - Found a bunch of dark fantasy theme assets, play around with the assets for a bit and started world building. I need some time to test out what assets fit thematically and which assets don't. Also need to come up or find what feels “right” for the enemy pathway for a tower defense game so it doesn’t look out of place.

Dev Log 3: 

Sayer - Finishing the prototype of the Wave Manager. Was having some issues with this one, but apparently the only issue was that I needed to add a bool statement  in one of my methods to pass the values correctly (Thank you Isiaq). Also added a building manager so turrets can be placed, and even have a “notification if they can be placed”.

Bowen – More discussion on game mechanics with teammates, I suggested specific areas on the map that act as a “buff platform” where the towers you build get stat bonus or gain special effects. We decided that the towers are going to have different elementals for attacking the enemies, a possible feature is elemental combinations for a gameplay that’s more interesting.

Dev Log 4: 

Sayer - Added a “shop” and readjusted some code in the building manager to fix that. Added a currency to the game. Using TowerBluepring as a means to select the tower prefab and to set a cost. REMINDER! – If it is not converting type TowerBlueprint to game object/int use the .towerPrefab and .towerCost respectively. Also added a build effect and cleaned up some UI elements. Starting to really enjoy using the particle system!

Bowen – Decided on Enemy types, which consist of regular, fast, slow and more hp, and boss. Each element also has different effects, such as water being able to slow, fire with dot damage, earth being stun/cc and air/lightning being high burst damage. Now with most of the core game mechanics down, I can go build a world with all the game design in mind. This gives me a more focused scope of what needs to be done.

Dev Log 5: 

Sayer - Added a missile turret. After following brackeys video I'm starting to see how easy it would be to expand this game! As implementing new towers/shooting functions is rather simple. I have implemented a Missile turret, the idea behind this turret is that id does weaker damage but in a large AOE. so it will be great for taking out the small fast enemies but is just a damage booster.Added logic to have a Game Over scenario. Added a Game over screen with animations.

Bowen – Need to design some sounds and possibly compose an original score for the theme song. Since it is a tower defense game, I found sounds I can use for explosion, gunshot, and laser. I  used some sound packages and combined different sounds for a good result. As for the theme song, it needs to be dark and kind of epic. Theme song can be played in the main menu, and when the boss spawns for an epic feel. Finished the score for the main theme, had a lot of fun with it using FL studio. Teammate suggested that I add some bass into the song, which I did. Turned out to be pretty good. Didn’t add a beat to it because it wont sound like boss music anymore.

Dev Log 6: 

Sayer- Woke up today with a whole lot of issues. My teammate somehow had his branch overwritten and lost all of his work on the map :( not fun, angry noises and shaking a hand at github. However this gave me some time to take an extensive look  through the repository and find some issues. We kept having this weird bug where we could only push to the repository when unity was fully closed. Super easy fix, I keep doing this thing where I make 2 folders for the repository and end up having to “nest” it. This was the root of the issue, for some reason the .git folder and .gitIgnore files were outside the “nested” folder creating some permission issues. But it is now fixed and we can update the repository with unity open, as well not have 300 changes just for moving a block around.

Bowen – Keep getting errors when pushing to Github. Tried everything, and somehow it overwrote my saved files. I’ve lost hours of work just like that. This is not a good day. Finally found the solution. There was something wrong with the namespace of the files. Now, it's working properly and I successfully pushed the music/sound files into my branch. Thank God I still have the sound files. Now I need to redesign the map. My teammate suggested that we go for a more cartoony low poly style. Need to find and build new assets for this.

Dev Log 7:

Sayer - Today is a Hard day, Working on the Tower selection and UI process for that. I Imagine that a Raycast will be needed to select it. And after 10 minutes with Isiaq we had it up and running, He's been my savior for this game. Now the impossible challenge of making my drag and drop system that the game desperately needs. Ten Years later… I was finally able to get a somewhat working system, with a load of help from Haidar. For now, The gem system is using unity's IDraggable interface. You can buy random gems that get stored in the holder. You can drag this onto the tower using screenPointToWorld to detect the tower and set the draggable items parent to the tower. Once attached It passes through a couple of variables allowing the towers to activate their ability.

Bowen -  Finished the first version of the map, looks very gothic, graveyard feel. Took a lot of time to piece everything together, especially the base, added a lot of lighting effects, candle fires and glow. Almost made the base look like a shrine. Built 2 portals, one from each side of the map spawning enemies. Implemented the elevated platforms. Need to spend some time on the little details (cosmetics and “useless” decorations) tomorrow. Tried to push the project and Github, but keep getting errors. Kinda frustrated with this.

Dev Log 8: 

Sayer - Created the Laser tower. It was a fairly easy implementation, I think the hardest part is dealing with the Line renderer and having the particle system be in line with the gameobject it's hitting. After some vector calculation it was ship shape. The laser tower is meant to deal with the big slow enemies as it has a constant damage over time. 

Bowen – Took some time to see what is available in the asset store, and I need to repeat the same process I did for the first version of the map. Found a very nice dragon asset I could use for my boss. Played around with all the assets, nothing really meshed up well in the beginning. Teammate also suggested a brighter style this time, so instead of playing with too much lighting in the previous map, as it was designed as a night time level. This time, I went with a desert rocky style map in daylight. In the end, it turned out pretty well. Started to develop the map layout with bridges assets that I built. 

Dev log 9:

Sayer - spent some time making the Tower UI look pretty. My oh my how I don't like to make UI. after setting up an upgrade button and a sell button time to implement them. For upgrading the tower, I first check and see if the player has enough money, if they do I spawn an effect, delete the tower and spawn the upgraded tower from the tower blueprint script. For the sell function It was a simple delete this tower and up PlayerStats.money.  

Bowen – Built a base that looks like a cottage home in a rocky setting, sitting on top of a mountain with a huge gate in between the canyons. Looks appealing and I am happy with this result. Need to add details later for the home such as campfire and fences. Completed the map layout with an enemy base, buff platform (reused the shrine base in my previous version of the map), and added a new tower asset. Need some more details, like gateway, and lamppost etc.

Dev log 10:

Sayer - Today I worked on some quality of life changes. I added health bars to the enemy’s so the player has some sort of reference to an enemy's hp, plus who doesn't love more things happening on the screen. I also added a pause menu. I found out if you are running loops with Time.deltatime and changing the value to zero it essentially pauses the loop. I will be using this for later games. In the pause menu you can continue to retry and quit the menu, which funny enough that's what I made next. Using the world space canvas to give it some more pizzas I made a simple main menu. 

Bowen – Polished up the map, now I need to look into Boss design. Need to figure out what kind of attack pattern and what the boss does and how the animations are going to work. Decided that the boss, after spawning, is going to zerg the base ignoring the enemy pathway designed for normal enemies. Meaning, the boss, which is a dragon, is going to fly up and just fly straight to the base. Got the liftoff animation working but after liftoff, the dragon doesn’t really move after that. Need to fix this bug. Took a lot of time trying to figure out why the animation was not working properly. At first, I thought there was something wrong with my script, but it turns out it’s the number in the animator window that I needed to tweak. Finally got it working properly. The dragon now properly liftoff, fly, land, and attack. Our game is reaching the final stages. Need some polish.

Dev log 11:

Sayer - Polish day. First thing I got to work on was making the wave just more fun. I thought this was going to take forever but it was rather easy, making the Enemy variable an array allows you to store multiple enemies per wave. Then for each enemy in the wave it spawn randomly one of the 3 enemies. Lastly was adjusting enemy speed, health and gold value to provide a more challenging experience. But other than receiving feedback I believe that is it!!! What a journey it has been. I think the biggest take away for me is how important planning and communication is in all phases of the development process!   

Bowen – Finally, at the polishing state. Teammate was testing the game and told me that the game is quite laggy due to overdrawing. There was also an issue where the surface on the ground level was uneven due to the nature of the terrain, so this actually made my pathway uneven as well. Didn’t really think about this when designing the map layout in the beginning. So, I fixed the entire ground by redoing it with a new look (grassland which is flat instead of the uneven rocky desert) and repolished everything. As a learning experience, it is really important to think about the terrain of the map when designing a game from the beginning, as it is the foundation of everything. Or else going to end up spending a lot of time changing everything!

References:

UI Stars: https://www.freepik.com/free-vector/stamped-star-icons_786216.htm

Assets:

https://assetstore.unity.com/packages/2d/textures-materials/sky/customizable-skybox-174576

https://assetstore.unity.com/packages/3d/characters/creatures/dragon-for-boss-monster-pbr-78923

https://assetstore.unity.com/packages/3d/characters/creatures/golemmonster-33260

https://assetstore.unity.com/packages/3d/characters/minotaur1-196863

https://assetstore.unity.com/packages/3d/environments/low-poly-pack-94605

https://assetstore.unity.com/packages/3d/environments/fantasy/stylized-fantasy-armory-low-poly-3d-

art-249203

https://assetstore.unity.com/packages/3d/environments/fantasy/fantasy-tower-defence-turrets-188300

https://assetstore.unity.com/packages/3d/vegetation/environment-pack-free-forest-sample-168396

https://assetstore.unity.com/packages/3d/environments/low-poly-environment-park-242702

video tutorial:

https://www.youtube.com/watch?v=vApG8aYD5aI&ab_channel=iHeartGameDev

https://www.youtube.com/watch?v=OXCB-LKCK_Y&ab_channel=Unity

Brackeys - How to make a tower defense game. 

Ludorem Studios - Building System.

Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.