- [Feature] Theme song now plays before the lobby music if you haven't accessed the game in 24 hours.
- [Feature] Implemented custom hotkeys which you can change in the options menu.
- [Feature] Changed default hotkeys to the "QWERTY" system.
- [Feature] You now get a warning to protect against accidentally exiting the window while in a game.
- [Feature] Buildings cycle production. If you have multiple production buildings selected and build multiple units, the units will be constructed not at just the first building selected, but cycled through all selected. If you hit tab, you can change the current building in the cycle. The current selected icons of the current building in the production cycle will be tinted red to indicate status. The buildings themselves (in the game world) will also flash red when you cycle through them.
- [Feature] Double tap a control group button and the camera will snap to the first unit in the control group.
- [Feature] If you set a rally path to a resource, the color of the rally line will appear as yellow if the resource is ore and green if carbon.
- [Feature] If a command center is set to rally to a resource and the resource becomes depleted, the rally path will automatically go to the closest resource of that same type.
- [Feature] You can now add to current selected with the shift key, just as you can add to a control group with the shift key.
- [Fix] You can now select a building by dragging on top of it if it is the only unit in your drag box. Not having this was causing selection issues.
- [Fix] Control groups work properly now and you can add to your control group with a shift click.
- [Fix] Ground units will no longer leave a node unwalkable after they move from the position they were first built.
- [Fix] Fixed and issue where the worker could not go to a resource if you right-clicked on top of another worker near that resource.
- [Fix] Newly constructed workers now properly go to their rally path instead of hovering above the command center doing nothing.
- [Fix] Added some styling to current selected unit icons to make them more readable.
- [Fix] You can now see building icons in the current selected icons at the bottom center of the page.
- [Fix] Unit healthbars below current selected unit icons now accurately reflect unit health.
- [Fix] Clicking the map thumb in a game room will no longer clear the lobby UI.
- [Fix] Hotkeys work properly with caps on.
- [Fix] A production menu no longer hides if a new worker spawns.
- [Fix] You can no longer move the lobby UI or any dialog box by dragging the borders (that used to break the layout).
- [Fix] Idle key changed to [Z] to leave the top row of keys open for unit production hotkeys. I will allow you to change idle button later.
- [Fix] Toggling all/team chat now works properly if there are AI in the room.
- [Fix] Multiplayer games with AI no longer crashes for non-hosts when an AI builds a power generator.
- [Fix] When you cannot build something, the message now displays the human readable name of the required building.
- [Fix] The mech move animation no longer stops when you click to attack something while the mech is moving.
- [Fix] Bullet shadows now appear below bullets, like ones fired from bullfrog.
- [Fix] Units no longer fire at units that are already dead.
- [Fix] Now when you exit full screen hitting the escape key (instead of hitting the exit full screen button), mouse scrolling will properly turn off.
- [Fix] UI no longer gets in the way of window scrolling. I also added some padding below and to the right of the unit production menu so you don't accidentally scroll when hovered over an option.
- [Fix] Turned off the auto-pause game when the window is not active. It was causing problems for some people.
- [Feature] Game now pauses if you leave the window tab or the tab is unfocused.
- [Feature] Implemented overhaul of pathfinding system. Units will now find paths more intelligently, taking more direct routes to their destinations. This is accomplished mostly with a smoothing algorithm to prevent unecessary steps and blockly, grid-based movement.
- [Feature] The computer now surrenders if you kill most of its units and buildings
- [Fix] Right-clicking to attack an enemy unit no longer shows the movement cursor animation
- [Fix] Setting unit and building rally paths no longer snap to a grid (felt weird)
- [Fix] Aircraft dots no longer lag on the mini map in multiplayer games
- [Fix] Unit health no longer spontaneously starts regenerating in multiplayer games
- [Fix] The rotations of enemy bullets now display correctly in multiplayer games
- [Fix] The production menu no longer goes away randomly when you are clicking stuff too fast
- [Fix] The bomber is no longer able to kill air units with its blast radius
- [Gameplay] Removed easing functions for ground movement which are pretty but come at the expense of maneuverability. Plan to implement ground movement easing correctly on hover tanks in the future.
- [Gameplay] Ground movement speed is normalized as slight difference in movement speed came at the expense of keeping units in formation.
- [Gameplay] Battleship build time increased from 23 to 40 seconds
- [Gameplay] Ion Cannon's health increased from 1500 to 4000
- [Gameplay] Gladiator build time increased from 23 to 35 seconds
- [Gameplay] Airstrip now requires Gunship Hanger to be built
- [Gameplay] Bullfrog damage increased from 16 to 40
- [Gameplay] Merk damage increased from 10 to 20
- [Gameplay] Bomber health reduced from 380 to 300
- [Gameplay] Bomber damage reduced from 130 to 100
- [Gameplay] Increased building build time from 30 to 40 sec for most buildings
- [Gameplay] Pop limit no longer goes to 73 but 70, as intended. Silos now increase pop limit by 10 instead of 7.
- [Gameplay] Units can now no longer target stuff hidden by fog of war
- [Gameplay] Explosive bullet types now explode if they hit a target before reaching their destination
- [Gameplay] Increased gladiator machine gun damage from 30 to 70
- [Gameplay] When a unit fires, it now reveals itself in fog of war. This makes things less confusing from a user standpoint (being fired at by invisible stuff) but also dampers the advantage units with ridiculous amount of range have (i.e. battleships and disruptor cannons).
- [Feature] Added chat sound notification to make it more obvious when people are trying to talk to you in-game.
- [Feature] You can now toggle chat with allies or all by hitting the control key at the chat dialog.
- [Feature] You can now see a list of current selected unit icons in the bottom center of the screen.
- [Feature] Camera movement by mouse or keys now works diagonally.
- [Feature[ You can now adjust the scroll speed in your user options.
- [Fix] The mute button in the lobby now displays the correct icon.
- [Fix] Removed canvas rendering as an option in menu settings. That setting should not be exposed to users as it has the potential to break the game. You can try canvas render however by adding “?rendering=canvas” to the play url.
- [Fix] Fixed an issue where you were limited to x number of teams even if the map had more possible teams.
- [Feature] Added paypal payment option
- [Feature] Added every country imaginable for billing address. You should be able to purchase the game worldwide.
- [Fix] Fixed the login text styling (was difficult to read)
Strike Tactics is now almost feature complete with a fully working core game, single player (vs. AI), multiplayer and map editor. I have been playing the game a lot, multiplayer and single player modes. I'm really happy with the core gameplay, but I'm still a few weeks away from sending it to people who have pre-ordered for early access. The biggest hurdle left is performance. I'm pushing for a smooth experience which means 60FPS with not much going on and between 30-50 FPS during the big battles with lots of units. To me, performance is everything. So I am willing to cut a lot of the cosmetics for a smoother framerate. Other than that, there's a lot of misc bugs that really only show themselves after you play hundreds of games. I've not quite played hundreds of games yet, but I'm getting there!
Even though it's a few weeks out, I'd like to start making a list of people interested in playing the alpha. Only people who have pre-ordered would qualify.
Once you opt in for the alpha, I will give your account access and send you a link to the game when it's ready. You only need your account info (which is provided after pre-ordering). You can then play single player (against AI) or multiplayer against other alpha testers. Because there will be such a low volume of people, I will set up a discord app for the game to help you look for people to play and to discuss the game with me and other alpha testers. Although there is a lobby chat system, I think the discord app will be more congenial. I will be in there all day so if you can't find anyone, you can always play against me.
Anyone who is a part of the alpha (which will eventually transition into the beta) will be recognized in some way in their game profile or in some other way.
If you'd like to sign up for the alpha, please email me using the contact link at the bottom of striketactics.net. Be sure to include your email or username which you entered in when you pre-ordered.
Today I recorded 3 pre-alpha games of Strike Tactics. The game is still in a very rough, early-draft state, so if there's something you don't like or something you feel is missing, I wouldn't be worried - there is still a lot of work that needs to be done before the game nears a finished state.
In this first video, I play a medium AI in a desert map called "Oasis."
I win the game by amassing heavy ground units (silencer, demolishers and gladiators). As you might be able to tell from the vid, there are some kinks that need to be worked out. The pathfinding, in particular. I recently redid the pathfinding system. I had a perfect system before, one in which units would never bang into each other, but it had a major flaw - it was heavily grid-based, which gave ground movement a very stiff, robotic appearance (great for mechs, horrible for hover vehicles). This new pathfinding you see in the video does not have that problem - units can move off the grid. But the drawback is that it's a lot harder to prevent collisions. I know I can get this new system working so that units never collide, but it's going to take some time. Problems like these could easily be solved with brute-force (a true physics collision system, in which positions are constantly checked and compared on every frame), but in the browser, I don't have that luxury - not enough CPU power with so many game objects. As such, all ground collision needs to be solved algorithmically, with something smarter than a traditional, brute force collision detection system.
In this next video played on a volcanic map called "Eruption," the AI sort of got me pinned down by constantly bombarding my base with bombers - to such an extent that I couldn't build more silos to increase my population cap. For an unknown reason, the medium and hard AI both seem to favor producing bombers - a bug I haven't quite worked out, or even had time to look into.
Lucky for me, the Battleship is extremely overpowered right now so pooling all your resources into producing them is an easy win. You can see the power of the battleships in this video - I roll through the enemy AIs base in less than a minute. In the final game, battleships will certainly be powerful but by no means this powerful! I also show off some peregrines which are aces of the sky type units with air to ground homing missiles and machine guns for air to air.
Air units are difficult to control now, because they are constantly moving and moving fast. I plan to combat this issue by causing them to land after being in the air for a certain period of time. That way, it will be easier to select them. I also might attempt air unit formations someday which is something never really seen in an RTS. The math will be difficult buy I already have some idea of how I can accomplish it.
This final video is me getting absolutely destroyed in the early game by bombers at the control of a hard AI. Like I said, the hard AI sure loves those bombers. Enjoy!
Pre-Alpha, March 2017
The pre-alpha will all about nailing down the core gameplay and will include mostly people I personally know. The map editor as well as games vs. AI (easy, medium and hard) will be complete. This is the first stage of allowing other people to playtest the game, so a lot depends on it.
Alpha, late April 2017 (feature complete)
Anyone who pre-ordered will be invited to the alpha. You'll be able to test different game modes (free for all, standard), play against AI and play multiplayer against other alpha testers.
Beta, late May 2017
After taking lots of feedback from the alpha, I'll have a more refined version of the game and will begin letting more people play. The process will be gradual as I use dedicated servers and therefore need to build everything to scale. The best way to test scalability is to have lots of sample traffic and lots of data. By the end of the beta, I'll have a plan in place for scaling and will be improving gameplay at every step of the way.
Public release, July 2017
The big shebang. There will some sort of free version of the game anyone can access without registering. And if they like what they see, they can purchase the full version to access all game content. I was thinking about creating some kind of game mode that was RTS-lite, which would be free. Basically, a game mode that had all the combat and unit control mechanics, without the resource management. Something like nexus wars in SC2 or CBA in aoe2. RTS-lite gameplay serves as a good introduction to RTS mechanics for people who aren't familiar with the genre.
By the time of public release, I'm hoping to have all the major bugs worked out, cross-browser compatibility, AWS instance scaling and a highly polished version of the game. I will continue to work on the game indefinitely but I'm making a big effort to assure the public release is relatively bug-free and complete, by consumer standards.
All of the maps in ST are created in-engine using the map editor:
While the UI needs work, the functionality is complete, which is essentially to create, save and load maps for use in Strike Tactics games.
There are hundreds of map objects you can use to make maps, including trees, rocks, plants, mountains and water; all in 4 different primary biomes: desert, snow, grass and volcanic.
One of my goals for the map editor was to make it really easy to make maps. Most of the maps you see in the trailer were made by myself in a matter of minutes. This is mostly possible through the use of custom seeding functions. You can seed any object on the map by hitting a "Seed" button, which will randomly place the object on the map:
You can seed one particular object, or you can seed a category of objects, such as "All Desert Plants".
Currently, the buttons seed a pre-defined, fixed number, which is based on the size of the map. Eventually, I will add functionality so editors can change that number at will.
I've always had this idea of getting rid of tile-based ground textures. In the Feudal Wars map editor demo I accomplished this, by creating a complicated system in which textures were blended together with a brush tool and the HTML5 canvas. The brush would essentially create a hole in textures, so you could see the layer underneath (the brush tool was in fact, an eraser!). Then I would move around the layers based on which texture you wanted to draw with.
This method was problematic because:
- It involved so much bitmap data manipulation, performance was atrocious on computers with bad graphics cards
- To save the maps, I had to literally save the blended images created in the map editor
For the Strike Tactics map editor, I've devised a much better system. Instead of creating custom textures for each blended image, I create one single blended image from each texture, which is used as an overlay. The blended image is created in-engine from the base texture:
The benefits of this system are tremendous:
- Maps can be procedurally regenerated using a set of instructions (i.e. I don't need to save the literal images in the map files, hence 100KB map files instead of 10MB map files)
- Performance is awesome - I only need to draw a single BMD for each texture used, and copy it each time it is placed on the map
All map objects have z-indexes, which determines the vertical stack order in which they are rendered. For example, a tree has a higher z-index than a mountain and will therefore be shown on top of a mountain:
If you place a mountain on top of a tree, the entire texture is instantly re-ordered and redrawn and the tree will still be drawn on top:
Eventually, I'll add functionality for custom z-indexes, so you can control the vertical stacking order.
I learned a lot from making the Feudal Wars demo. The more sprites you have, the worse performance gets. Thus, I've completely redesigned the map generation system for Strike Tactics. Instead of creating sprites for each individual terrain object (trees, rocks, plants, etc), objects are rendered to textures which make up the base texture tiles on the map. With this system, you can have 1 map objects in a tile, or 500, and the performance will be exactly the same.
Place as many objects on the map as you want, without having to worry about it slowing down performance.
Tech trees are a staple of the RTS genre. In every game, there must be a feeling of progression - from weaker units, more primitive defenses and smaller production, to stronger units, more advanced defenses and larger production. Part of this progression involves researching technology and having access to different unit types, after certain pre-requisites have been met. You can't begin producing advanced ground until you've built an advanced ground facility. You can't build super weapons right out of the gate, etc.
Although I have ideas for what techs, I've saved this particular game mechanic for last. You sort of need to have the full picture to get an idea of what technologies would improve gameplay and create that feeling of progression. Thus, I am waiting until all of the units are completed before inventing techs and have nothing to show on that front.
I can say, however, that it is a major goal to have technologies that don't infulence gameplay in an artifial way. To me that means the effects of techs should be apparent within the game's graphics. If aircraft can move faster as a result of a tech, perhaps they should have a different color burner. If cannons gain an increased blast radius, their explosions should be larger. Simply changing unit stats without giving and indication to the player is a lazy way to implement tech upgrades.