Strategy - Tactics Game

I’m programming a little tactics game, and I want advice on how to manage the “pieces” on the board

There are two modes:

  1. Move all pieces: In this mode, in the player´s turn, he needs to move all the pieces, and then finsih his turn, then the CPU does the same.

  2. Piece’s time counter: In this mode, each piece has a time counter, and they become usable during the course of the battle, so the player and the CPU make their moves in any time.

Games that use mode 1:
Vandal Hearts
Makai Kingdom, maybe Disgaea, but I haven’t played it.

Games that use mode 2:
Final Fantasy Tactics
Suikoden Tactics

I like the mode 2, because it allows more flexibility during the battle.

For any of the modes, a piece’s move consists of one movement in the board and one action (attack, magic, items), but I want to add a little twist.

Each piece will have movement and action points, allowing to do more than one action during its move, so a soldier can kill a little monster with a light attack, then move and wound a big moster with the biggest attack allowed with the remaining action points.

Don’t know if this could unbalance the game, but I think that it will make it more funny to play.

Mode 1 = Turn based strategy.
Mode 2 = Real time strategy.

;D

It’s not RTS, because always there is only one piece on the board moving…

In realtime you can move many troops at the same time…

It’s something like Active Time Battle from RPGs translated at a turn based strategy game.

I definitely like #2 better. Then again, I’m a big Tactics fan.

#2 is not that common and it will make your game stand out from the others (for good and bad). It will be refreshing but also harder for newcomers.

I would recoment #1. It will be more abstract but probably easier to think out a strategy.

I’m surprised there isn’t an option 3:

  1. The pieces have a time counter. When a piece’s time counter is full, it’s time for that piece to move. It doesn’t make any difference which team is moving; the pieces move in whatever order they move in.

That seems more normal to me. My idea of a strategy - tactics games is Fallout Tactics, which uses 3 for turn-based mode.

Since the topic is 2 weeks old, it might be too late to have an opinion.

Uh, that’s exactly what #2 says, no?

Right… 3 == 2… and it was used in Final Fantasy Tactics also.

I’m still programming the battle map, things that are done:
*isometric map with sprite pieces
*GUI: information of pieces when the cursor is on them.
*GUI: simple menu: move, attack, end.
*movement: shows the allowed squares.

My biggest problem seems to be the graphics, my wife is designing the people, but i will have to do the spriting.

Maybe I would open a development log in the “games showcase”, so I don’t lose the mood, and the project doesn’t become another thec demo.

Some more thoughts: I’m not sure exactly how you planned the #2. I have done a similar game. This was how I did it. Each character have a pool of time that is displayed as a bar. Doing actions cost time and the bar got shorter. When the bar was to small to permit more actions, the turn for that character was over. This was bad. Players want to be able to plan ahead. I always got question: “how much time does this cost, how far can I get, how many times can I shoot?”. I think the game must be fairly predictable for strategy players to enjoy it. And it must be pretty obvious whats going on. If there are lots of magic in the rules behind the scene, things just get confusing. This is just my opinion, but it is based on a real case.

If number two worked like this I would probably like it:
All characters are placed in a queue. The first in the queue can act and then he is placed last or almost last in the queue. Some characters are faster than others, so sometimes the get to do two things in a row (compared to some others).
All characters have a little number over their heads, to indicate their place in the queue.
When it is your turn with a character, you make your turn. A turn includes some movement and an attack, or a longer movement, or someting else (it’s a pretty well known pattern).
All the time, you know who is going to act in what order:
“Ok, first my soldier can enter the room, then the two aliens will act before my heavy gunner can do anything.”

Uh, markus, I think you’re thinking too hard about it.


public class MyWarrior
{
     private int initiative;
     private int speed;

     public void Attack()
     {
          initiative += speed;
     }

     public void StartNewBattle()
     {
          initiative = speed;
     }
}

public class MyGameLoop
{
     private ArrayList<MyWarrior> warriors;

     public MyWarrior GetNextWarrior()
     {
          int nextGuy = 0;

          for (int i = 1; i < warriors.size(); i++)
          {
               if (warriors.get(i).getInitiative() < warriors.get(nextGuy).getInitiative())
                    nextGuy = i;
          }

          return warriors.get(nextGuy);
     }
}

I trust to can understand from what I’m saying by that. Basically everybody has their own initiative counter, then when they attack they add their speed to the counter (or the speed of their attack, or whatever), and whoever has the lowest number next goes next. That way an attack that can go twice can add 0 to the initiative, or a really powerful attack can add a high number, etc. And the order is dynamic, like if one guy has speed 3 and another has 5, it goes guyA(3, then 6)->guyB(5, then 10)->guyA(6, then 9)->guyA(9, then 12)->guyB… etc. So guyA is particularly fast and therefore gets to attack twice in a row sometimes. If you make the numbers much more precise and/or large, then pretty much everybody will get one turn but faster guys will slowly rise up in the queue, rather than just giving them two attacks.

So it’s a really simple way to do it but it’s very very flexible.

Oh and to address who gets to go, it helps to have a viewable list that shows who gets to act in what order next. That means you’ve also got to predict future initiative values, but that’s okay.

Demonpants, I thought about the queue from a player perspective. But in the code, your way is the right. And your explanation was way better… :slight_smile:

Yes I will use a queue to show the order of the characters.

In each turn the player has movement points measured in squares to move in the board, and action points that are spent on attacking, healing, casting magic, etc. The player can use his points as he pleases, and can finish his turn early to short his wait in the queue.

I like the implemetation given by Demonpants, I was thinking more in the vein of FFtactics which has counters in each player, (called CT, that goes from 0 to 100) an the speed the counter fills depends on the "AGI"lity of the character.