[DEVLOG] Escarmouche

Hello there!

Do you remember TAZS?

It’s inspired by Totally Accurate Battle Simulator by Landfall, a goofy-looking game where two armies fight until the death. Most of the gameplay is about placing your units within a budget and watch them fight against a pre-deployed army.

So here is the followup game, Escarmouche, in a WIP state. I started worked on it last year under another name (Tiny War Simulator), but I think I only mentioned it here on the forums.

Objectives

  • This is a C++ game using an experimental video mode, which is strip-based. In summary it’s TAS, but instead of 176 1-pixel-thick line, it’s 11 small buffers.
  • It’s also using a 3D iso engine I’m going to implement for ARIAT, tho it’s not showing much at this time (only using the 3D iso transformations for sprites right now)
  • While it’ll be a game on its own, its aim is also to polish said engine so I don’t spend too much time refactoring stuff while working on ARIAT later.
  • This thread will serve as the devlog for it.

Current features

  • Available Units
    • Soldier - Punch with an invisible fist.
    • Shield Bearer - Wears a Shield, which blocks a good deal of front damage -but none from their back; Use said shield to bash away their enemies.
  • Preparation
    • Crappy random party generation.
    • Side cleanup tool.
    • Holding A to place or remove multiple units.
  • Battle
    • Camera rotation by holding B and pressing left/right.
    • Time control by holding B and pressing up/down (x0, x1, x2, x4, x8).
    • Replay a placement.
    • 128 units at most (not getting the highest FPS when this happens :stuck_out_tongue:).
  • Results
    • A proper Victory or Defeat screen.
  • Campaign mode?
    • Not sure about this one, we’ll see how well this is going!
  • Preparation, Battle & Results
    • Menu showing by pressing C.
    • Armies’ Life bar (which is missing from the gif somehow).
  • Debug stuff
    • FPS bar. It’s the white/pink lines on the bottom, with each black dot indicating 10 fps.

What’s missing?

  • A lot of stuff obviously.
  • Audio.
    • @jonne complained about the lack of it in TAZS, so I definitely need to do that.
    • I think I got a strategy about how to do it.
  • More different units.
    • I’ll import most of the other Units available from TAZS (Slap, Spear, Bow, Dash (yes, the guy from that Door Game).
    • I also want to implement a few characters unique to the Pokitto from other games, like Matti or Joe, as a homage, if their respective authors allow me by then!
    • Also, the actual Pokitto itself is definitely going to be a unit.
    • That aside, I’ll also add a catapult and other fun toys; and probably some explosive barrels technical units.
  • UI. UI. UI.
    • All the menu, main screen, options, etc.
    • An actual Unit Grid. Currently pressing B would place a Shield Bearer instead of a Punch Soldier, but that’s not exactly scalable.
  • Challenges.
    • Puzzle-like challenges where you need to beat a small army with a limited budget.
    • Possibly custom challenges and an in-place editor, saved on the FS.
  • Playing as a Unit.
    • It’s also useful for debugging stuff.

A few gifs

2021-06-03 - Escarmouche - 1 - Preparation
Preparation Phase - where you place units.

2021-06-03 - Escarmouche - 2 - Battle
Let the battle begins!

2021-06-03 - Escarmouche - 3 - Battle 2
Removing a few units.

2021-06-03 - Escarmouche - 4 - Large Battle
128 units. When the limit is reached, the cursor switches to Disabled state and you can only remove Units.

2021-06-03 - Escarmouche - 5 - Large Battle Fight
On the HW, this drops to under 20 FPS - there is a lot of room for optimization tho.

2021-06-03 - Escarmouche - 6 - Shield Bearer Solo
Here is the Shield Bearer. Almost always winning on 1-1 because of its direction-based damage absorption.

2021-06-03 - Escarmouche - 7 - Shield Bearer Duo
Tho they do perform good against two punch guys.

2021-06-03 - Escarmouche - 8 - Large Sped Up
Time-control. Extremely handy to test things, but also when dealing with very long fights like this shield vs shield battle. The FPS on HW is pretty much catastrophic with 128 units of course.

So what’s next?

  • Lots of minor bugs to fix (non-mirrored soldiers, buggy save/restore, …).
  • Implementing the actual punch.
  • Adding more stuff on the ground so have a better notion of the space.
  • Drawing the placement area.
  • Leaving corpses when the soldiers die.
6 Likes

This is so cool! I really loved TAZS so I am glad to see a continuation :smiley:

I will never, ever live that one down will I :sweat_smile:

3 Likes

Never :laughing::stuck_out_tongue:

3 Likes

Devlog #2 - 2021-06-15 !

On the Engine Side

  • Template-based, generic blitting facilities. It supports the following features:
    • N bytes output (only 8bpp are going to be used in my case).
    • 1 bpp (with up to 32 pixels) sources.
    • N bytes sources (e.g. 8 bpp, 16 bpp, 32bpp) sources.
    • X, Y and X+Y mirroring and X-Y swapping (both of which can be used to rotate sprites).
    • Full clipping whatever the mirroring/swapping is.
    • Custom pixel operation (e.g. 1bpp asks for a bool to uint8 operator).
      • Which would be “use a given color when the pixel is on”, “do not copy if zero”, “copy with an offset”, …
    • The coordinates mirroring/swapping/clipping has its own facilities so it’d be easier to implement new sources types (2bpp and 4bpp are especially interesting for me).
    • It considers reading the source to be the hardest thing to do, so the source is always read from topleft to bottomright, horizontal first.
    • Because everything is based on templates parameters, including the pixel operation, a if constexpr() or a specialized template could be easily used to implement a potentially faster assembly version of a given blitter (e.g. the ubiquitous 4bpp to 8bpp, no mirror, no swap, non-zero copy blitting).
  • Actual Text Rendering :tm:
    • Uses the GLCD fonts with the generic 1bpp blitter above with x-y swap.

On the Game side

  • INTERNAL - Merged most of Shield Bearer and Punch Soldier code to allow easier Unit creation and maintenance.
  • GFX - Attacks are now animated, TAZS-style.
  • GFX - Dead Soldiers will now leave a Corpse behind, with a small Death animation.
  • FIXED - Soldiers’ body sprite is always facing right.
  • FIXED - Placing Soldiers too far from the center will place them at a location which is wrapped around a rather small area around the center.
  • FIXED - x2/x4/x8 speed on the Preparation Phase/Victory Phase shouldn’t be a thing.

GIFs

2021-06-15 - Escarmouche - Mirrored Soldiers, Corpses
Animated death, facing the right direction, shields falling on the ground

Upcoming

  • UNITS - Archer.
  • UNITS - Spear Soldier
  • UNITS - Dash Soldier
  • UI - Title Screen
  • UI - The Unit to be Placed will be Previewed at the cursor position.
  • UI, GAMEPLAY, CONTENT - Challenges.

Stay tuned!

9 Likes

Devlog #3 - 2021-06-21 !

Gameplay

  • Ground color is now brown.
  • Units - Temporarily removed the Shield Bearer.
  • Units - Spear Soldier
    • Perks - A bit sturdier, longer reach (can hit behind an allied unit!), higher damage / knockback.
    • Quirks - Somewhat slower to attack and to move.

UI

  • Title Screen.
    • Exit to the loader, Sandbox game, Instructions.
  • Instructions Screen.
    • A simple page-based text.
    • Explains roughly what the game is about and a few concepts.
    • Also contains the credits.
  • Game - Added a menu action to go back to the Title Screen.
  • Game / Preparation - A preview of the unit-to-be-placed is shown with the cursor.

Engine

  • GFX - Minor refactors to simplify the drawing API.
  • Units - Reworked the units to avoid rewriting the same code since they share a lot of features (search target / seek target / use weapon against target / retarget) and added stats variation between the kinds of units.
  • Title Screen - Added a build version (actually updated whenever the assets are built again).

GIFs

2021-06-21 - Escarmouche - TitleScreen, Instructions
Title Screen, Instructions Screen, Version.

2021-06-21 - Escarmouche - Spear Soldier 2021-06-21 - Escarmouche - Spear Soldier - two guys
The Spear Soldier. Their longer reach help keeping at bay a lone Punch Guy, but they will have a hard time dealing with two or more. Also, unit preview on the cursor.

Upcoming

  • Units - Putting back the Shield Bearer.
  • Units - Archer Soldier

Stay tuned!

4 Likes