Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

[Devblog] Turret-based wave game I'm working on

A topic by Rxanadu created Jul 12, 2016 Views: 612 Replies: 7
Viewing posts 1 to 8
(+1)

It's a bit late to be starting making a devblog for me, since I've been working on this since the start of the jam on 07/09/2016. However, I'm starting to write now to share what I'm dong with my game with everyone.


Premise, Mechanics, Why I'm Making This?

I'm actually working on a wave-based game where you can only lay down turrets to take down enemies. That just sounds like a turret-defense game, so let me elaborate.

When you're playing the game, you'll be able to run around the game area as an actual character while enemies chase you down to beat you up. However, you have to throw turrets out to take out the enemies. It's a simple enough mechanic which I hope to flesh out during the game jam, but that's about it for the overall mechanics.

When making up an idea for my game entry, I was thinking of things I could implement quickly and efficiently, while also testing out some new ideas I want to see in the games I play. I'm also using Unity3D, a game engine I'm a bit more familiar with than other engine, and I hope using it will speed up the process of making the game. The speed is important, since I have to balance making a game with work in my actual job.

What I've done so far...

Throughout the past three days since the game jam's start, I've been laying down the basic mechanics (running around, camera movement, laying down turrets). The process has been slower than anticipated for numerous personal reasons (finding out my laptop's LED screen cracked for some reason, work, doctor's appointments, severe headaches, work). Aside from those, I've also had some issues implementing simple player movement and rotation without using rigidbodies...

So, my solution was to go ahead and use rigidbodies for movement and rotation. It actually works better than the original movement.

As for the visuals, they're still in the prototyping phase. I've never been that much of a 3D artists, but I was able to add a player character into the game for future reference in terms of scaling things well.

What I hope to do today

For today, I hope to set up some enemies to beat up, as well get the enemy AI working. I'm aiming for a simple system which allows them to follow the player and attack when they get close to them. Maybe, I can get to animating the player character to implement an Animator object for the player model.

3D animation has always been a hurdle for me in games, since I've never gotten use to Blender's Animation interface. I've been following some tutorials online about animating in Blender for Unity3D, and I hope to use what I learned in this game as well.


Conclusion

For now, that's all I have planned for today, but I hope to have more things done within the week. This is the first devblog I've made for any game project I've worked on, so I hope to keep posting each day through the jam. Until tomorrow, thanks for everyone who took the time to follow the development of my game.

(+1)

Hello again, everyone! Time for another post for the development of this game, so let's get to it.


What's done so far

First off, I was able to get a simple enemy follow mechanic working, so right now the enemies just look like they're really clingy to the player right now. I'm still going through some ways to set up an Attacking state for each enemy, so that's not working at the moment.

As for the player's animations, however, they have yet to be implemented. As I stated in the last post, I'm not the greatest at 3D animation, and I'm still going through tutorials on how to animate properly in Blender. However, this requires me to search tutorials and other sources online, which brings me to my greatest challenge yesterday: for whatever reason, my Comcast service at home decided to have an outage about midday, rendering my Internet (and any other services) utterly useless. I tried using my phone to get online, but I wasn't able to connect online with that, either.

Surely, this all sounds bad. Luckily, I was able to spend the time in which my services were down to plan out where I want to take this game, as well as create a new model for the default turret players will be able to place in the game.

In terms of the design of the game, I'm thinking of setting up the game in an infinite survival mode for now, since it'll show me how long people will want to play the game on numerous sittings. Throughout playing the game, the enemies will get harder on their own like in most survival game modes. However, I want to let the player dictate how hard the game gets alongside improving their own skills. To make this happen, I'm hoping to set up a Mayhem system where players will be able to pick up items dropped from enemies. These items actually speed up how fast it takes to make the game get harder. The more Mayhem pick-ups you get however, the higher your score multiplayer gets. However, if you wish to have the game get harder at a slower pace, you'll have to *avoid* the pick-ups. The pick-ups would disappear over time, so you'll have to make a decision on whether to pick them up or leave them to the wayside.

This Mayhem mechanic is still going through the planning phases, so don't expect much news about it in later posts.

I've also been going back and forth on deciding whether the player's turrets should disappear on their own or have the player decide to deactivate the turrets with a button press. My main reason for thinking of this is, I need to keep players from constantly spawning in turrets to fight for them, possibly making the game's difficulty trivial. I also want players to think of where and how to use their turrets.

Again, I'm still running this through my own head to see how it could work out, so not much on that front.

What I hope to do today

Today, I hope to finally get the enemies to attack the player and have them get destroyed by the player's turrets. I'm also going to get some more turrets and enemy models worked on. It actually took some time to figure out what kind of look I wanted to have for this game. Currently, I'm liking the abstract look to some of the models I have set up so far; I hope the players do, as well.


Anyway, that's all for today. I hope to talk about this again tomorrow morning. Until then, thanks again for taking the time to follow the development of my game.

Take care, and have a wonderful rest of your day!

Host

hey friend! it looks like you have a really solid handle on your game's basis. 3d animation is a very time-consuming process that might be a bit trying for a game jam where your focus is on finishing a game--unless you're really set on learning it in the crunchy two weeks, i would try using mixamo's animations! best of luck! great work documenting your progress!

Hello again, everyone! I have another devblog post for you in regards to the game jam project. Here we go!


What's done so far

So, I was finally able to implement some enemy and player turret models into the actual game, and they look great! I was also able to get enemy death handled properly.

I even got the enemy to fire at the player, so all I need to get working for the enemy is actually damaging the player.

Unfortunately, I wasn't able to make as many enemy and turret models. The only one I was able to make for one of the enemies, which resembles the basic turret. I made this design choice to make sure the player knows which enemy will give which turret. I'm actually designing the game so the player will be able to pick up specific turrets based on the enemies they defeat, so I'm designing the enemies in a way which visibly shows which enemy provides which turret. For now, though, I'll be holding back on adding the new models to focus on adding to the basics of my game right now.

Before I stop talking about what's done so far, I was also able to make a model for a feature I'll get to in another update. Hopefully, you'll all like it!

What to to today

I hope to actually set up a fail state when the player is killed by the enemies. This will require the creation of a few things. First off, I'll be making a GameManager, which will decide which game state I'm in (i.e. whether the player is able to play in the game or is dead). Next, I'll be displaying a 'Game Over' screen which allows players to retry the game. Nothing fancy; just something which allows players to get back into the game when they lose.

As you can also see in the GIF above, I've had this odd issue where turrets are not appearing where I actually click on the ground. I'll also be working on this through the day, as well.


I think that's all for now. Once again, thanks for taking the time to follow the development of my game jam project.

Hello again, everyone! Time for another devblog post on the game I'm making. Let's get to it!


What Was Done Since Last Time

So, yesterday was a bit of a non-productive day. Long story short, I was only able to get the "Game Over" screen and player death working. Now, the player can die, and a "Game Over" screen shows up allowing the player to reset the game to play again. The main issues of implementing this were leraning how to use the Action system for C#. From what I was able to learn when using it for the "Game Over" screen were Actions are a type of delegate which allow you to run multiple functions with a single object.

Say, you wanted to have multiple things happen when the player gets to the end of the level. Specifically, you want to stop the player and any enemies from moving and show the "Mission Complete" screen. You can actually have an Action delegate run a function from the Player script, have the Enemy script find a reference to the Action delegate in the Player script and also run a function which stops each enemy from moving, and also have the "Mission Complete" script refer to the Player script's Action to display the "Mission Complete" screen. Long story short, Actions and other forms of delegates allow you to run multiple functions from other scripts at once without much headache.

Anyway, let's get to what I'm hoping to do for tomorrow...

What To Do Today

First off, I hope to get the basics of the game HUD (heads-up display: the stuff you see on the screen when you play most games) running in my game. This will consist of the following:

  • Player Health
  • Player Score
  • Time played

That's right! I'm also hoping to get some general player stats working, as well. Hopefully, this gives players a general goal to strive for when playing other than just messing with the mechanics. Tracking this information will require making another script just to track this information while the player is actually playing.

In terms of gameplay, though, I'll also be adding a small cursor to show players where their turrets will be placed before the actually place them. The cursor will also depict the actual radius in which their turrets will attack if any enemies do come close to them.


Well, that's all for today's post. No actual pictures, since I can imagine most people reading this can imagine how a "Game Over" screen would look like. As always, thank you to all who took the time to follow the development of my game.

Hello, again, everyone! This will be a pretty late post, but I still have some things to announce today.


What Was Done Since Last Post

Unfortunately, it'll be well past the morning on my end when I post this. However, I was still able to get what I wanted to do in the last post done. I now have stats being tracked during gameplay, and I now have an indicator showing how large the targeting radius is of the turret the player will deploy. I also got the tracked information onto both the player's HUD and the Game Over screen.

This was a pain, as I wasn't familiar with how to communicate everything to multiple areas without making the code a jumbled mess. It didn't work, but the game's not crashing yet. I call that a win!

What To Do For the Next Post

As for what I'll try to do for next time I post, I'll be hoping to make things a bit easier for the player when dealing with enemies. As you can probably seen in the GIF above, even 5 enemies can be a bit of a pain for the player to deal with if not careful. I do want the game to be challenging for players, but not as insurmountable as the game currently feels. I hope to get some proper spawner objects for the enemies to come out of, which should help with allowing players to anticipate the enemies easier. However, that update may be far off (i.e. not being handled today due to time constraints).

Right now, I'll be working on some more tweaks here and there to polish things up and prep myself for things to come in future updates. Hopefully, when you all get to play it near the end of the jam, it will feel great to just run around.


Well, that's all for now. Right now, I have to do my regular computer back up. Afterwards, I'll be back to it. Until then, thanks again for following the development of my game.

Long time, no chat! I have a lot to cover for this one since my last post. Let's get to it!


What's happened so far

For the past few days, I've been slowly adding more functions to the game to flesh it out. First off, I added an enemy spawner. This object not only actually creates more enemies to fight, but can actually be defeated itself for more points. However, the score increases each time it spawns an enemies, encouraging you to spend more time attacking smaller enemies for a greater reward.

Next off, I created a new enemy and a new player turret: both fire rockets!

I also spruced up the place in which players will be moving around. I set up an arena mesh which looks a lot better than the flat testing plane I had for most of the project.

Finally, I also added a pausing functionality, which comes with a Pause menu. I also set up a Main Menu so people will have a great impression of what they'll be playing.

However, I've been away for a few days. I want to take the time now to explain why.

Major issues through the project

Aside from some pressing personal issues I've had since the last post, I also have a ton of issues with the project itself. Most bizarrly is with the enemies themselves: for some reason, the enemies won't fire their weapons. At all.

I've tried almost everything to find out why this was happening, but I just don't know why it's not working. Worst case scenario, I'll have to rewrite the entire script for how enemies work, which could be obviously time comsuming.

I also have tried to show how many turrets the player has without having to scour the entire map to find them all, as well as see which turrets you have. The overall layout is set up, but it's still not up to my standards. The thing is, I've also restricted the amount of turrets a player can deploy to ensure the player is not overpowered with an army or unstoppable turrets. When it comes to showing the amount of turrets the player has, there's a but which doesn't allow for the icons to appear. However, the amount of turrets a player currently has out works just fine.

Aside from that, most other issues include not being able to add more features to the game due to time contstraints. So, I'll be spending the rest of the game jam time frame polishing what I have to a near-perfect sheen.

What to do now

In order to do so, I'll be fixing all of the bugs I have discussed so far, as wel as any that may appear in the process. Next, I'll be improving the visuals of the game. Right now, everything has no textures, and very few visual effects are in place right now. Speaking of effects, I'll be adding some sound effects into the game, as well. I'll want everything to feel great visually and audibly. Overall, right now, I'll be getting the game ready for testing some time late Saturday or early Sunday. I'll be spending Sunday making promotional content to display the game on itch.io.


Well, that was a lot to go over today, but I'll be working on the game diligently until the end of the game jam. I'll be making another post on Saturday at the latest to show you all how far I've gotten at this point. Until then, thank you all once again for following the development of my project.

Hello, everyone! Today, I'll be writing a post-mortem about my experience with creating my game jam project.


What went right

Well, first and foremost, I was able to actually make a game in general. It started as a simple mechanic, where the player can only lay down turrets to attack, and I was able to expand on it more. I was also able to get nearly everything I wanted to do into the game.

I also like how most of my models turned out when it came to creating all of them. From the turrets to the arena you use them in, I like how the game's models turned out.

What went wrong

Funny enough, I actually didn't get to submit my game because I didn't remember the game jam ended on Saturday, NOT Sunday. So, there's that...

Aside from that, I wasn't able to implement a few special features for the game which would make the game feel and play more actively. One was how the game would display creating a turret. I had the idea of having a small floating companion launch small pellets which would expand into the turrets you can use in the game. Unfortunately, I wasn't able to figure out showing the trajectory of the ball being launched from said companion. Another major feature not in the game right now is the ability to use another turret alongside the original Machine Gun turret the player is able to deploy right now.

I also wasn't able to implement another way to use the turrets, specifically in terms of aiming the turrets freely. It was a featured I thought of when playing the game. It felt a little odd to have to lead enemies into turrets for me, so I thought of the mechanic a while back. I'm not sure how it works with the idea of a game revolving around laying down turrets for enemies to run into, which leads me to my next point: I was sorely missing another voice to hear when it came to making the game.

Since I worked alone for this game jam, I was in charge of everything, including making up ideas for the game. The fact I was in controls of all of the ideas led to a natural feature creep and less spicing up the game. Basically, I spent a lot more time thinking up things to place in the game than I did adding those features and polishing the game as-is.

I also ran into some bugs that took much longer than intended to get working. One in particular was for the odd inability for my enemies to attack the main character. For about a day and a half, I spend time checking on what could be going on. Color me surprised when I finally found out I had not set up my enemies' guns to fire projectiles properly. I got that fixed in less than a minute, and everything was working fine from then on.

Given all of this trouble for this game jam, I want to look into what I did learn from this game jam.

What I learned

One of the most important things I learned from this game jam is how to properly implement enemy AI in games. It was something I had a general grasp of in terms of using Finite State Machines, but I was initially confused on when to have enemies go into different states. Another thing I learned about was using delegates properly in game code to allow for different scripts to talk to each other without a lot of code. Mainly, I learned how to use different coding structures to help do more in my scripts than before.

I also learned to use Mixamo, a service which allows for quickly animating and downloading 3D models for use in 3D projects, including in game development. I was able to get a game character running around and animating in a few minutes. It also turns out any model from Mixamo (especially the one I used in my game) is commercial-free and royalty-free, thus able to be use in any game without worry of paying for the model later. I'll be sure to at least use it for rigging up any humanoid characters I wish to use in my games from now on.

With all I've learned, I'd like to take the time to see what to do in the future.

What to do in the future

First and foremost, I want to try working with a team next time I get into a project or game jam. I'm not sure what role I'll be taking in that team, but I'd mainly like to be able to share ideas with other people and prototype ideas faster with more feedback on the game.

Another thing for me is to try and get better at animating and making music for games, as I don't want to always depend of commercial-free or Public Domain art and music for my games. I want to be able to have a consistent look-and-feel for my games, and I want to be able to have a personal say in the matter for those times when I may not be able to get another person on the project I'm working on.


Even though I didn't have a direct entry in the game, I have released the game on itch.io. Below is a link to the game if anyone wants to test it out. Until then, take care, and thanks for following the development of my game jam project.

Link: https://rxanadu.itch.io/against-all-odds