RTS games need to convey continues streams of highly detailed information in realtime to the player. Sometimes, fancy graphics and design gets in the way of that. Take a look at this screenshot from the RTS game 0 AD:
No doubt the scene is impressive with high amounts of detail and lots of action - but I'd venture to say this high level of detail is detrimental to gameplay.
Consider the following questions: How many units are fighting each other? How many units are on each side? Which sides are fighting? Which soldiers are melee and which are ranged?
Your brain needs to answer these questions in a matter of milliseconds. Even if it takes 100 milliseconds longer to mentally process, due to the visual complexity, it has a profound effect on the experience of playing an RTS game. If you have difficulty believing that, try playing a game in which user input is processed after a delay of 100 milliseconds. We've all experienced what that's like in an online game with moderate latency. Visual complexity, too much of it, creates a sort of mental latency.
Now take a look at a scene from the age-old classic AOE2:
I'd argue that while the AOE2 graphics aren't nearly as impressive as 0 AD, they are more conducive to gameplay. The design, however modest, serves its purpose. Here we see a bunch of archers on horses and trebuchets attacking buildings. At a glance, the scene is so much clearer and easier to understand than the screenshot from 0 AD. This of course, is not by design, but a happy accident: the makers of AOE2 were limited to pre-rendered 3D assets (using 2D sprites) and pre-rendered terrain, given the limitations of computing at the time. The simpler graphics just happened to work better for gameplay.
Now take a look at a screenshot of units attacking buildings in AOE3:
It takes a moment to understand what is going on here - doesn't it? If I were an alien from outer space, and had nothing to go on but the screenshots from AOE2 and AOE3, I might think AOE2 was the newest game in the series. Poor adoption of 3D realtime is a technological backpedal from using 2D sprites.
Because of its continued success, Microsoft is still making expansions for AOE2, almost 20 years after it was first released. The original sells so well, you can still buy a copy at walmart. AOE3, despite being made many years later, and with better technology and funding, maintains a fraction of the following AOE2 has.
Similar examples can be drawn from the likes of C&C and Red Alert. As soon as these titles made the switch to 3D realtime rendering, the gameplay suffered. I don't think anyone would argue that RA3 was better than RA2 - or that AOE3 was better than 2. The sales numbers alone would disprove that notion. Whatever happened to the Dune franchise - the one that started this whole RTS thing? Dune 1 and 2 were released in 1992, Dune 2000 in 1998 - to great success. But after Emperor: Battle for Dune was released, the first in the series to use 3D realtime, Westwood never made a game again.
This phenomenon is not observed in other genres, such as FPS, where even the most primitive 3D realtime implementations are better than 2D with a 3D viewport (e.g. Doom classic vs CounterStrike 1.6). This is because the human brain is much better at processing 3D information from the first-person perspective. After all, your brain processes first-person perspective in everyday life. You can however, observe this effect in other genres that use the isometric camera - e.g. Roller Coaster Tycoon 2 vs Roller Coaster Tycoon 3. Why did these franchises peak at the height of pre-rendered 3D tech and flatline just after the transition to 3D realtime? Hmmmm.
In this forum discussion on none other but the 0 AD forums, the poster talks about edge unison vs. distribution and what it means in visual ergonomics. He came to the same conclusion I have, but in different words.
I do not mean to say 3D realtime has no place in RTS gaming. I only want to suggest that it is much more difficult to make a proper RTS game with 3D realtime. Starcraft 2, a game rendered in 3d realtime, has absolutely none of the visual problems 0 AD has. But Starcraft 2 is expertly designed by the people who wrote the book on RTS - it succeeds visually, in spite of the difficulties of 3D realtime, not necessarily because of it. The high poly 3D models, the level of contrast between terrain and units, the overall visual distinctiveness of game objects and anisotropic filtering all work together. No wonder it took 5 years and 12,000 builds to make. SC2, and the original Total Annihilation, are the only two 3D realtime RTS games that have stood the test of time - in my book, at least.
Other common mistakes made in RTS game design is one of scaling. In the late 90s - the RTS golden age - developers couldn't implement zooming because of the limitations in computing at the time. Nowadays, you're hard-pressed to find an RTS game that doesn't have some absurd level of zooming. The effect on gameplay is catastrophic. Supreme Commander might as well be called Icon Wars, because you are forced to play the game completely zoomed out - at least, if you want to compete online.
While giving players the ability to zoom out this far sounds good on paper, it makes for very boring gameplay. The emotional climax of any RTS game takes place while watching and participating in battles. If the meta requires you to be zoomed out to play effectively, so that the battles are tiny dot wars, well, that pretty much sucks the fun right out of it.
Note that you can only zoom in, and not out, in any Blizzard RTS game. Blizzard didn't fall into that trap. Blizzard knows better.
Somewhere in this podcast series about the making of Warcraft 2, Bill Roper, one of the lead designers, discusses the decision to not show too much information on the mini map, so players would not be tempted to play the game through the mini map. This set a precedent in RTS games. And the same concept is applicable to zoom: showing too much causes the player to not be able to experience the game as it was intended.
Let's take a look at a screenshot from the most recent incarnation of Total Annihilation: Planetary Annihilation.
Here the units models are quite good, and visually distinct from the ground underneath. But the scale, dynamic lighting and map curvature obfuscate the information to such a degree that the information isn't so easy to digest, at a glance.
I understand the pressure game developers feel to innovate - it certainly looks impressive, and no doubt, they sold a lot of copies of PA on the strength of this visual style. You can build and move to different planets? Win! Zoom all the way in or all the way out to see everything on the planet? Win! But I question whether these innovations ultimately lead to more fun and engaging gameplay.
No zoom out and a flat map might sound boring on paper, but at least we know those things work. My goal with Strike Tactics is to use what works, and not fall into the trap of over-innovating. Just because you have the technology to do something, doesn't mean you should. Game developers must exercise restraint - and constantly question whether a feature harms or strengthens gameplay - regardless of how appealing it seems on paper. After all, what good is any of it if the gameplay isn't there?
Strike Tactics is a top-down pre-rendered 3D game. The pre-rendered part is by design, but also, by necessity. Many of the CPU limitations RTS designers had in the late 90s are also limitations I have in the browser. But because all game assets are pre-rendered, the units can get away with extremely high poly counts, which serves to give them visual distinctiveness and contrasts them from the terrain.
The fact that the game plays in the browser has limitations, but it also removes the temptation of rendering everything in realtime and upscaling everything to an absurd degree.
I have a lot of theories as to why the RTS genre has lost the popularity it once had. The unsuccessful transtion from 2D to 3D is just one facet - there are many more. At some point after the RTS golden age, because they had the technology, developers started making enormous Michael Bay-style RTS games, advertising bigger, badder and MORE, but neglected the fundamentals. The fact is, the human brain can only process so much information before everything on the screen becomes a meaningless blob of lasers, smoke and metal.
Game developers must excercise restraint.
Top-down vs. Isometric
Originally Strike Tactics was to be isometric as the engine was created from a fork of Feudal Wars (my previous project, now on hold), which is isometric. However, after a bit of experimentation, I decided to break away from the mold of the isometric/dimetric perspective. My reasons are purely practical. I can get away with smoother rendering and freely rotate my graphics without having to worry about perspective. It also completely solves the problem of unit occlusion: if the camera is pointed down from directly above, no game objects can block other game objects (unless they are underneath another game object).
Unit occlusion has been an age-old problem in the RTS genre. It's normally solved by showing unit sillouttes, on the objects behind, which looks tacky and can be taxing on performance. I solved this problem with Feudal Wars by reducing the opacity of any object that was blocking another object. Note the castle and tower has reduced opacity to show the units behind them. I thought this technique was at least better than using silhouettes.
In a medieval game like Feudal Wars, a camera tilt is a necessity, because human beings - the primary unit in these kinds of games - look horrible from top-down. Like so:
Mechs, aircraft, tanks, however, look great, if not better, from top-down:
This is because tanks and aircraft are generally designed to be aerodynamic, which makes the side facing the direction in which they move take up less space on the vertical plane, and the side facing the camera, take up more space on the horizontal plane. As a result, you see all of the detail of the object when looking directly from above and less detail, the lower the camera is on the horizon.
Top-down is the biggest risk I took regarding game graphics, because there isn't any real precedent to lean on. There aren't any well-known (if any) top-down RTS games, even going all the way back to Dune. RTS games have always had a tilted isometric, dimetric or similar camera, and for good reason. A tilted camera allows you to see more angles of the object. So I knew it would be a challenge to get everything looking pretty and interesting from directly above. Nonetheless, thanks to some extremely skilled designers, the visuals for Strike Tactics, I feel, are in a good spot. I'm happy with the aesthetics and feel going top-down was the right move.
There are 3 different kinds of super weapons in Strike Tactics.
The Disruptor Cannon
An extremely long range artillery unit with massive firepower.
The Ion Cannon
More firepower than the disruptor, but at a much closer range. The Ion Cannon is also highly mobile as you can see in the first few seconds of the game trailer.
The radial gun
An area-denial unit which is stationary, but shoots a fury of cannonballs in all directions if an enemy unit approaches. I'm debating wether these cannon balls will be aimed by the gun, or if their destinations are completely random. The radial gun will be able to effectively deny both air and ground units in something like a 1,500 pixel radius.
Turrets play a large role in Strike Tactics gameplay. Because all units are ranged, and because air units are bread and butter, as opposed to support units, wall offs (via buildings) and walls really aren't viable as defensive structures. Instead, turrets are the main defensive structures. Currently there are 3 types of turrets:
Laser turrets - broad role, moderately good against air and ground
Bombard cannons - excels against ground, bad vs. air
Flak cannons - excels against air, cannot target ground
Why can the anti-ground turret shoot at air, while the anti-air cannot shoot at ground units? You'll find a lot of these little discriminations in Strike Tactics. In order for ground units to be viable, they must have enough inherent advantages to neutralize the extreme disadvantages they have in the mobility department against air. Other inherent ground advantages include more firepower, more health and guns which can fire while the unit moves.
Another turret unit is the Disruptor cannon, which is a large, artillery cannon. Because its incredible range and firepower makes it practical to use offensively, it is under the classification of a super weapon than a defensive structure.
I am considering implementing wall structures you can build. Except to make walls viable in a game where air units are prevalent, and all units are ranged, the wall structure would perform the following functions:
- Goes into the ground if a friendly unit needs to pass through (see supply depot in starcraft 2)
- Deflect enemy projectiles with shields that raise as an enemy projectile passes through, while allowing friendly projectiles to pass through.
If implemented correctly, these shield walls could act as a counter to mass-ground forces (movement obstruction) and heavy artillery (such as the Disruptor Cannon). They even could be effective against air units if turrets were strategically placed inside the perimeter of the walls. Air units swooping by would need to be positioned on the right side of the wall to effectively do damage. I am very much committed to finding a place for walls in a futuristic RTS (i.e. an RTS with mostly range/air units), but this I see as a secondary feature which will come later in development, after base unit roles have been established.
Units in Strike Tactics are capable of following rally paths which are created by shift-clicking locations on the map.
Production buildings are also capable of setting rally paths, so that newly constructed units will travel along a rally path once complete.
Actions can be queued for workers by setting rally paths. For example, you can build 3 silos by shift-clicking the silo placement on the map.
By default, if a worker is busy building and you tell it to build another building, the building is added to its queue as a rally path. If you want a worker to stop working on building to do something else, you will need to manually move the unit (to cancel action of working on the building) and then give it the new action.
There are 3 main elements in maps that affect gameplay: size, obstruction and resource placement.
The game engine is capable of rendering incredibly large maps. Maps as large as 50,000 pixels wide/high - maps that take a unit a half-hour to walk across, with very little impact on performance. My first inclination when making maps for Strike Tactics was to take advantage of this - creating maps 12K and 15K maps - but after playing against the computer on these maps, I realized that ridiculously large map sizes might severely slow down game pace, and are often impractical. For that reason, I've started to design single player maps around 6K-8K pixels and 4 player maps, 10K-12K. However, I still want to experiment with ridiculously large maps (RLMs) in the future - perhaps putting a RLM in the multiplayer rotation. After all, sheer distance is a game mechanic in itself, and something that isn't really possible with 3D realtime rendering. And they might add something cool to free-for-all, casual games.
Ground units are generally stronger than air units. This is because they have an inherent disadvantage: they are infinitely less mobile. A variety of map objects inhibit ground movement:
Mountains - The largest obstructions. Mountains can be placed close together in the map editor to form mountain ranges.
Trees - The only map obstructions that can be cleared by your actions in the game. When a worker finishes harvesting a tree, it disappears. I'm considering giving scorch tanks (a flamethrower unit), the ability to clear trees as well. Trees can also severely limit ground movement, especially if placed together in forests.
Water - I will likely allow hover units to travel across bodies of water, although this is not yet implemented.
Doodads - These do not take up more than 1 node size (80 x 80 pixels) and are generally there for aesthetic reasons. Traditionally, doodads do not act as movement obstructions - they do, however, in Strike Tactics.
The positions of carbon (trees) and ore on a map, especially in respect to starting locations, has a profound effect on gameplay. A map can be designed with an artificial scarcity of trees or ore, which would result in different play strategies. One map might have very few trees, all in the middle of the map. Players couldn't build carbon-heavy units in the early game and, in the mid game, would need to fight for control of the center.
This is one particular gameplay element that Starcraft doesn't fully explore: resource scarcity. I felt Age of Empires 2 had the best resource system of any RTS game - the landscape of the map can completely change playstyle. It is my goal with Strike Tactics to make resource placement on the map severely effects the decisions you make in the early game.
Game meta is discovered, not designed.
The goal of the designer should be to provide all of the components of good game meta, the building blocks. But it is the players that ultimately figure out how those building blocks fit together.
The game designer isn't blind to meta. Units should counter each other. Environmental elements should have an influence on gameplay (size of map, movement obstructions, location of resources, etc). The economy system should have some level of complexity (3 resources is better than 1, different units cost different resources, etc.). All of these things can be planned. But because each of these systems can be exploited in a thousand different ways, it really isn’t so smart to believe they can be perfectly designed before the players arrive.
This is why I chuckle everytime someone asks me “so what are you going to do after you finish your game?” In my mind, the development cycle of an RTS game is only 60% complete on the day it launches. I intend to spend at least 6 months after launch fine-tuning and optimizing gameplay, fixing bugs and countering cheating/hacking techniques. I’m hoping sales of the game will finance those 6 months, and after that time, I will dedicated myself to implementing new features, such as community-driven ranking, friends lists, more advanced end-game stats, etc. There is always room for improvement.
Gone are the days when you could put your game in a neat little package, ship it off, and be done with it. These days, if a game is to succeed, at least an online game, it must constantly evolve into a more perfect form. At least that is my goal with Strike Tactics.
To eliminate the problem of pathfinding getting in the way of expanding your production, all construction is handled by flying worker units, the same flying worker units responsible for carbon collection. To maintain the 50-50 dynamic between air and ground, most buildings will be ore-expensive, ore being the resource collected by the ground worker unit.
These flying worker units use lasers to 3D-print buildings.
Multiple flying units can work on the same building.
Adding a second worker to a building construction will cause the construction to be completed in 150% of the time. A third, 175%, a fourth 187.5%, and so on. Each added worker cuts the completion time down by half of the time cut down by the previous worker added.
In Strike Tactics, base-building is decentralized. There is no command center like in starcraft or town center, like in age of empires. There is no commander like in Total Annihilation. In other words, no head to the chicken. This "decentralization" is meant to encourage more varied playstyles. In Starcraft 2, start with a base, which you automatically mine from, and expand by building more command centers in other pre-determined, mineral locations. Your starting position is defensible with ramps and movement obstructions. While these make for some really fun game mechanics, it also limits the number of viable early-game strategies. It also makes it much more difficult to make a comeback, if you lose your starting base. For these reasons, I'd like to try something different from fixed, pre-determined starting bases.
The big obvious drawback here is that decentralization opens up a lot of opportunities for cheese. However, 'm confident that, over time, I can weed out any cheese strategies that fundamentally disrupt the game's mechanics, while leaving in the ones that can be countered.
"Decentralized" base building is very much an experiment and if it proves to not be viable, I can always overhaul the system and go back to something more traditional.
Production in Strike Tactics is pretty standard. Every building has a queue, and units will be created based on the order you click to build them. You can cancel a unit by right-clicking its icon in the queue.
I'm still debating whether the extremely large units - the super weapons and battleships - should be produced from buildings, or if they should be created on the ground from the flying worker units.
As it stands, there are 5 different ways to select units in Strike Tactics.
1. Single click a unit
2. Double click a unit to select all units of that type within the camera
3. Click the icon at the top-right of the screen to select all units of that type within the entire game world
4. Click drag to select multiple units within a rectangular area
5. Shift click a unit and it will be selected along with any units currently selected
1, 2, 4 and 5 are pretty standard in RTS games and really need no explanation. I've implemented #3 because I personally found it useful. Certain units are good against certain units - why shouldn't you be able to select only a certain type of unit?
As-is standard in modern RTS games, control groups are a thing. Hit CTRL-1 to create a selection group which is active when you hit 1.
Once a unit is selected, its icon, along with health bar, will appear in the lower-middle of the screen. I have decided to do away with the single unit profile box, you see in a lot of RTS games. You know, the box that will sometimes show stats and a large picture. I've deemed this little UI element to be superfluous and a carry over from 90s RTS UI design. Unit stats will be available in-game, except it will be through the production menu (i.e., you will see a summary of stats for the unit when you hover over the icon in which you click to build the unit) .
Currently, there is no cap on the # of units you can select. RTS games used to implement limits because finding 100 paths at the same time is resource-intensive, and can hault the game engine, depending on various factors (this was a problem back then, when you have 128MB of ram and 366MHZ processors). Thankfully, modern browser computing isn't quite as limited as peak 90s computing. At least my particular pathfinding implementation is efficient enough for this not to be an issue.
Like all RTS games, microing plays a big part in gameplay. However, microing in Strike Tactics is more akin to earlier, classic RTS titles. Starcraft 1 rather than Starcraft 2. Warcraft 2 rather than Warcraft 3. Age of empires 2 over AOE3, etc.
Unit abilities - or lack therof
What makes microing closer to these earlier titles? The single most important factor is unit abilities. In Strike Tactics, there are no unit abilities. Or at least, no unit abilities that the player manually clicks. This changes the microing dynamic completely and makes microing more about unit positioning than unit abilities. It also means less keyboard jockying and more long term economic and military strategy (i.e. macroing). Your units are more or less, independent, and don't require babysitting.
Unit roles in Strike Tactics are extremely broad. Most air units can attack most ground units. Most ground units can attack air units. Granted, certain gun types are ineffective againt air (i.e. those with slow rotation speeds), they nonetheless can still fire and still hit air units.
This broad role unit design as opposed to strict role, is very much by design. It lowers the skill-ceiling, enforces the 50-50 air vs. ground dynamic, and makes massing single unit types more viable. I say "more viable" because obviously only needing to create 1 unit to win the game is a serious design flaw - that is very much not my intention. My intention is to make unit counters not as hard as they are in games like starcraft 2. There is still a strong counter system (i.e. bombers are effective against ground units, the peregrine is an air superiority unit, Merk is anti air, etc), only the counters are a bit softer. 20 bullfrogs (ground cannon unit) will easily get decimated by a squadron of bombers, but they will at least take out a few bombers with them.
Perhaps I am misguided in thinking that broad roles will result in a funner RTS game. If that is the case, I can always change things later. Game meta is discovered, not designed. A strict role counter system which is unforgiving and harder rather than softer, is better for an esports game. My goal with Strike Tactics however, is not to create an esport, but something fun for the average RTS gamer.
Another big factor is pathfinding. I don't want to insult myself and say ground units in Strike Tactics are programmed to have stupid pathfinding - but given the limited resources the browser has, my solutions for pathfinding are far more primitive than, say, Starcraft 2. In SC2, units move seamlessly. If one unit needs to get in front of another, the units make coordinated movements to make that happen. In Strike Tactics, if a unit gets in the way of another unit, the unit waits for the other to pass. If it takes too long, it finds an entirely new path. Some units move based on relative positioning, others, specifically air units, move in clumps.
Is my pathfinding optimal? Absolutely not. But in order to succeed, you must learn the nuances of unit movement and positioning. Each unit has its own unique movement attributes. Ground units have movement speed and turn speed. Air units are a bit more complicated, because it involves more advanced 2D physics: speed, maximum velocity, acceleration, angular velocity, etc. Some air units can hover in place - others cannot. Some air units clump; others, do not.
Every weapon in Strike Tactics has its own unique properties. For example, some weapons can rotate, others can only fire from the angle at which the unit is pointed at. Some weapons have rotation speeds, others turn instantly to acquire targets. Some guns can only fire once every second, others, 10 times per second.
Every weapon has bullets and bullets come with their own unique set of properties. There are different types of bullets: lasers, cannon, artillery shells and bombs. Some bullets have a blast radius which cause them to do damage to units within a radius of their destination. Other bullets can pierce through units, to hit units behind the first unit they hit.
In summary, there is a lot of variety to the kinds of weaponry you will find in Strike Tactics.
2D physics plays a large role in the outcome of engagements. In a lot of RTS titles, physics is simplified. Take Starcraft 2. If a unit is in range, it will fire in a straight line and hit its target every time. In ST, it's a bit more complicated than that. The gun on the unit will fire if its target is within range, but like with real world physics, guns are not 100% accurate. Guns will fire when an enemy is within range, and also when the angle measured between the gun and its target is within a certain margin of error. But the aiming is affected by many other factors, such as:
- The speed of the unit which is being fired at
- The speed of the unit firing (guns with the ability to rotate can generally fire while the unit is moving)
- The rate at which the gun fires
- The speed at which the bullet travels
- The angle variance of the gun (real guns have recoil, which means the faster they fire, the less accurate they fire)
Please note, this is not random missing. Randomness is a bad, artificial and lazy mechanic - at least, in an RTS game. Bullets don’t randomly miss their targets; they miss because of some physical factor, such as the rotation of the unit, rotation of the gun, speed of the unit, etc. Much like the real world - there are a number of things that factor into the equation which ultimately answers the question "did this unit do damage to this other unit?"
This intention is for all of these factors to be accurately represented in what you see on the screen, so players can learn optimal unit handling - where to move a unit and when - based on their previous experiences handling the unit.
Some might argue that picture-perfect pathfinding, unit abilities, and a more absolute weapon/damage system, not so severely affected by the nuances of 2D physics, is a better way to design an RTS. My goal is not necessarily to create something better, but rather, something different. The world already has Starcraft 2 - and it's a fantastic game. I want to explore new RTS mechanics, while still embodying the spirit of classic RTS.
Currently, there are 3 different resources in Strike Tactics and 4 ways to gather them.
Carbon is harvested from flying worker units, the same units responsible for construction. Right click a tree while a worker is selected to begin harvesting carbon. The carbon will automatically accumulate in your inventory. Once the tree no longer has carbon, the worker will automatically move on to the next closest tree.
Ore is gathered by building a miner unit. Right click a patch of ore while the miner unit is selected and it will start to automatically gather ore. Unlike carbon, ore doesn't automatically go into your inventory - instead, the unit must drop ore into silos, which are small rectangular buildings. Build your silos in strategic locations. If you build a silo in a spot surrounded on 3 sides by trees, your workers might have a difficult time depositing ore.
Energy is generated by building power generators. These simply structures automatically generate a small amount of power over time. Be carefel about where you place power generators - when they die, their explosion has a blast radius and can set off a chain reaction to destroy other nearby generators. Because of this, you should build your generators far apart.
Aside from the methods mentioned above, you can also gather resources by building freighters.
Freighters are trade ships will travel back and fourth between friendly airstrips and generate any of the 3 resources, based on which option you have selected, each time they make a trip. The longer the ship has traveled, the more resources received. Keep your trade routes well-guarded and prosper.
Different units require different kinds of resources, so choose your worker composition (miners vs. carbon collectors) accordingly.
In Strike Tactics, there is a duality between air and ground. Unlike in traditional RTS games, where air units are generally there for support, the dynamic between air and ground is 50-50. Enforcing this dynamic is the fact that half of your workers are air units and the other half, ground - half of your resources are collected by means of air and the other half, ground.