Tower Apocalypse - Devlog 1 (TD/FPS)

Tower Apocalypse

Introduction:

Earlier last year, me and some friends decided to start working on a TD game. We really wanted to put a big twist on the whole TD gameplay loop. Here is the main gameplay loop that we decided we would make:
The player would be spawned into the map, in first person, and they would have a drone controller, and weapons. When the player used the drone controller, they would take control of a drone that would get spawned in with the player, and there they could place towers and also manage towers. They would be able to swap between the drone and themselves. The game would run like a standard TD game, but there would be another type of enemies, Raiders. These would run around the map, and attack players and towers, depending on how they were set up. Thats where the player’s weapons would come in. They can use the weapons to defend them selves from the raiders, and also later on, Bosses.

Tl;DR:

TD game with first person shooter elements, player vulnerable when in drone, player can defend themselves from enemies that run around the map and kill towers and players.

So, we got to work, and started to plan some towers out. First we made starter towers, Recruit and Grunt. Those are your standard towers with a pistol and a rifle respectively. Then, we planned out a bunch more towers, like a DPS tower, Support tower, blah blah blah. I am not going to describe any of these towers for now, as they are pretty generic.

Then, we started to work on the actual game. I started by making a enemy system. I wanted to optimize the hell out of this, and you can see the entire process here, in this devforum thread:

(Thanks to @Katrist for helping me with this one.)

Than, after that was done, we decided to start working on towers, and made a prototype placement system:
image


(thats a old version of recruit by the way)

Than, some basic ui, which consisted of a health bar and wave timer, which I do not have pictures of at the moment(i can dig it up at some point).

After doing this, I used a program called rblx to rojo so we switched to a rojo workflow with github, and have all the benefits of a rojo workflow.

At this point, we already have a basic TD game structure. So, what about the drone and weapons? We started by making a item system. We added equipping and unequipping, and using weapons.


And a tower gui:

Also, we made a really bad logo:
image

So now we have a item system, and a drone, we decided to start on a gun system. We made a pistol model, and also just made a sub class that inherits from the item class:

And a ribbon ui to show time and player health:


(note we are using canvas groups so they are low quality because of graphics quality stuff idk)

A upgraded tower bar:

We also made a loading screen, in which it makes sure that players have loaded in properly, and that also assets have loaded using ContentProvider:

Random Assortment of images:
image

image

We also made some VFX, for gun flashes and explosions:
https://cdn.discordapp.com/attachments/1179203560332857386/1265377895854112768/2024-07-23_14-39-02.mp4?ex=674372ff&is=6742217f&hm=88014eafb28034744fee302f36d46c43a95871f767cdeb6acd6ac842da9a6e54&
(Discord link because it’s too big)

Missile:

We also remade the tower gui, as the old one did not look the best:

That’s all for now. We will keep you updated!

Technical Details:

All our towers are rendered on the client, to reduce lag. For enemies, we do the same thing, but instead of having parts to render the towers, we use a table, and send it to the client every 0.1 seconds, which is ten times a second, to reduce bandwidth. We use ByteNet, to optimize the hell out of our enemies, and to reduce bandwidth as much as possible. This makes it be able to handle 1000 plus enemies, on 60 fps. We also use an OOP approach to running our game, so we can easily add more content within 30 minutes.

3 Likes