• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Gridlock TD in unreal engine 4

Status
Not open for further replies.
Level 4
Joined
Jul 31, 2009
Messages
89
logo420.png



Hello humans.

I am a programming robot/nerd who have made a game in UE4 based on the custom map Gridlock*. It's made as an MMO where everyone joins the main world, so think of it like a CO-OP 1000 player tower defense where everyone is trying to survive.

Here is a lame video showing off a little of it https://www.youtube.com/watch?v=Rfw_zY061Z0

I am at a stage where i need to decide if i should continue with the plan and finish the game as i intended it to be OR rework the whole thing.

Any ideas how i could use what i have done and make something better?

Features:
  • The game is driven from a database file (as much as possible) so balancing of *everything* in the game is easy and updates to the server live.**
  • Everything is stored in the account, so when you log on you are back where you left off.
  • Players logging in gets a base square where the towers are built. You can not build on other player's bases.
  • All players bases are spawned close to each other so nobody plays alone (actually in a circular pattern expanding from the center of the auto-increasing map)
  • Low replication tick-rates to allow lots of players at the same time. The trade-off is the game is limited to PvE and no competitive PvP is possible.
  • The currency of the game is stone-blocks which you need to collect from mines with your worker unit(s).
  • Monster/creeper waves do not go from point A to point B like a typical TD but rather they chase the closest unit.
  • Towers gain experience and level up. Currently the experience gain curve is capped to level 8.



*http://www.epicwar.com/maps/29229/ The inspiration.
**If you want to know how the database look like, i uploaded it here:http://locktd.com/hiverulez/gridlock.db
You will need SqliteBrowser program to read the database file.
 
Last edited:

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
•Monster/creeper waves do not go from point A to point B like a typical TD but rather they chase the closest unit.
Most TDs they follow a fixed path. It is hero defences which have them chase units.

The idea sounds interesting but what concerns me is how gameplay would work in these situations.
What if 750 people AFK/noobs in a 1000 people game?
What if everyone is good?
What if most players leave mid session?

In such situations it is quite likely that the game is going to go down hill very fast and end in a loss unless there are mechanics to prevent it.

It might be a good idea to give player account some sort of global level between sessions. This raises replay ability (people try to level up) and also can allow different difficulty levels as well as automatic match making etc. Levels could either unlock new content, or simply raise the base stats of all towers. They might even be cosmetic however in a PvE game with limited competitive nature there is no need to hold off gameplay advantages.

As players join and leave it is possibly a good idea to alter the life of existing waves so that during a massive drop in player activity (eg, if a major internet backbone was to fail) then the session is not instantly lost.

Tower, worker and other form of art assets are a possible area for micro-transaction based cosmetics. Different tower "races" are an area to allow for unlockable content and again possibly more micro transaction revenue.
 
Level 4
Joined
Jul 31, 2009
Messages
89
Thanks for a good quality post! Feed me more please! ツ

In such situations it is quite likely that the game is going to go down hill very fast and end in a loss unless there are mechanics to prevent it.

The player plays his own waves and the win/loose condition is: "If all your worker units die, you loose. Restart from wave 1."

However, I am in a catch 22 situation: I need a player base to test and see what happens if a player dies at level 99 and the wave hunts down everyone on the map. Maybe this is desirable and something fun that should happen from time to time.

It might be a good idea to give player account some sort of global level between sessions. This raises replay ability (people try to level up) and also can allow different difficulty levels as well as automatic match making etc.

The option to spawn close to friends or around players at the same wave level is something planned.

Levels could either unlock new content, or simply raise the base stats of all towers.

So you mean that if i die at wave 20 and die i still earn some kind of thing which boosts my towers (or whatever) when i restart? That's a great idea.

Tower, worker and other form of art assets are a possible area for micro-transaction based cosmetics. Different tower "races" are an area to allow for unlockable content and again possibly more micro transaction revenue.

Sure it is a good idea that most TD maps uses and i have had it in mind when making the game but slowly i have realized it would take too much time to make the assets for different race towers. I will probably make the difference races alter how the 'base square' looks and alter the towers in some scripted way, for example a night elf race could have cheaper arrow towers but more expensive cannon towers.

I am trying to figure out how to make the towers more dynamic. One idea i had is to make boss monsters drop random items which could be "socketed" in towers, like YouTD does. Even better would be some kind of simple block programming for towers where you place different programming blocks that defines how the tower behaves. If you ever played Secret(Legend?) of Mana there is a feature that allows you to program a robot companion like this.*

*
Fwsn8.jpg
 

Dr Super Good

Spell Reviewer
Level 63
Joined
Jan 18, 2005
Messages
27,188
So you mean that if i die at wave 20 and die i still earn some kind of thing which boosts my towers (or whatever) when i restart? That's a great idea.
I meant in a way similar to Diablo III Paragon levels or Hero of the Storm account level. Based on what you do, you get experience to your account which raises your account level after enough is obtained. The amount needed per account level is substantial, so it might take hours of play per level with high levels taking more per level.

Such account levels are quite a trend in gaming recently. StarCraft II Heart of the Storm, Heroes of the Storm, Diablo III, etc all use the idea and it certainly has received positive feedback.

What levels do is something that probably needs to be tried and tested. They could allow you to skip early waves and give you starting resources/workers so you immediately start later. They could increase your unit's stats, substantially and difficulties could be added with harder waves (and more exp, for those that are higher level) etc. You could use the Xenoblade approach to levels (bonus damage vs lower level monsters, reduced damage against higher level monster) to emphasize level differences rather than pure statistics. Levels could unlock additional content (better towers) which could make things easier and are required for harder waves.

I am trying to figure out how to make the towers more dynamic. One idea i had is to make boss monsters drop random items which could be "socketed" in towers, like YouTD does. Even better would be some kind of simple block programming for towers where you place different programming blocks that defines how the tower behaves. If you ever played Secret(Legend?) of Mana there is a feature that allows you to program a robot companion like this.*
There are many ways this could be done.

It could be something simple like "sockets" from Diablo III where you get gems you can insert in them to give an effect. Tower types could have a separate selection of gems from individual towers allowing one to customize their towers before joining a session as well as further customize individual towers. To prevent min-maxing there could be gem type restriction on slots (so no throwing in damage increasing gems in all slots). Effects from tower type gems could be more gem tower gem slots, cheaper tower build costs, easier tower levelling, more tower damage, bonuses for tower placement etc. Specific tower gems could be damage, attack speed, debuffs, area of effect, bonuses against specific targets etc. The gems themselves are dropped from bosses and can be re-used. Discarding weak gems could give an experience bonus. Higher difficulty/level bosses could drop better gems. Possible option for trade and micro-transactions however it might suffer controversy like the Diablo III auction house.

Tower levels could give points on some form of grid (Final Fantasy 12 style) which can be used to unlock enhancements. The grids could be applied at multiple levels (account, per race, power tower type, per tower etc) depending on how much choice one wants to provide the user. These grids can be balanced so that powerful effects useful for high difficulty levels are harder to access and require compromises compared with weaker tiles. Could possibly replace levels even (Final Fantasy 10 style). Unlocking tiles is a possible area for micro-transactions but will cause "pay-to-win" controversy from people.

Some form of talent system could be used similar to that of Xenoblades which allows you to unlock talent branches with points (gained from playing in some way). Each branch has a focus effect (when choosen, here is some customizability) and unlocks talents which are always active independent of branch. Then using a separate point measure (possible from account level?) you can link talents from different talent sources (eg arrow towers linking a talent from a debuff tower) which adds considerable customization options. Costs can be balanced based on talent strength while focuses can be balanced based on each other.

There is the Diablo III approach of levels where levels unlock more customization choices. You could force the player to pick some number of customizations for some element (race, tower type, individual tower etc) from a selection which grows based on level (account or just that element). To prevent min-maxing selections could be forced to certain types of customization (no all damage customizations).

In any case no mater what customization scheme you choose it is important to try and limit min-maxing and other approaches which can break balance. If people can throw enough damage onto something that it kills everything effortlessly then chances are they will never use anything else than damage. Even if an idea for balance seems concrete on paper, in the field it often turns out not viable or anywhere near as good as dumping into something like all damage. If you do manage to balance it you may find that dumping all into a single customization area still is more effective than a variety of customizations in different areas. Hence why many of the suggestions I have provided have methods to force choices in different areas so as to stop people from dumping all customization into a single area and generally make customization balance easier.

There are other geometric patterns than a grid. There could be various modes such as hexagons, maybe some more complicated patterns etc. This could present the player with different challenges and again improve replayability.
 
Level 4
Joined
Jul 31, 2009
Messages
89
To make the towers more dynamic and add some kind of item drop i decided to prototype "logic blocks".

Logic blocks are Tetris shaped blocks you put in to one tower and it grants it extra damage and/or range depending on how you fit it.

This allows you to program a tower to do different attacks depending on how far away the monsters are. For example i would probably slow close enemies with a "cold block" and stun further away enemies with a "stun block".

I can immediately see lots of balancing issues but the core concept looks promising IMO.

Here is an illustration:
logicBlockDesc.png



PS. This is a single man project and i am looking for help, If you are good at something let me know.
 
Status
Not open for further replies.
Top