Java-Gaming.org    
Featured games (79)
games approved by the League of Dukes
Games in Showcase (475)
Games in Android Showcase (106)
games submitted by our members
Games in WIP (530)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Albion: Redesigning the turn system  (Read 1178 times)
0 Members and 1 Guest are viewing this topic.
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Posted 2011-10-30 19:53:40 »

It's time to resurrect Albion again! If you've not played it in it's current form then please do have a quick poke, otherwise a lot of the following might not make sense...

Currently every single character (ones you control, monsters and npcs) takes it's turn in order. A turn consists of (optional) movement, and then an action. So you can walk three tiles towards an enemy, then attack them as one turn. You can also spend your action as a 'run' to move one additional turn. A shaded area shows you where you can move:



Once you've used up your turn, it switches to the next person. Different character speeds may move more or less tiles each turn. And to make movement easier when there's no enemies around, you can switch to 'party mode' where you move your leader as normal, and everyone else follows you automatically.

This is... ok. Problems:

1. Equipping and unequipping is free, but you can only do it when it's that character's turn. This is unintuitive and confusing from the player's point of view.

2. Moving in party mode is still somewhat stilted, because you've got to take a turn, wait for monsters, then take another turn, etc.

3. People have a hard time grasping that they can only move the 'active' character. They keep trying to control it like an RTS or change the order of players.

These get worse (especially 2) when you consider moving around a friendly NPC village, where you end up taking semi-arbitrary turns to move around with seemingly no reason.

Possible solutions:

A. Say 'screw it' and have safe areas (NPC villages) operate completely differently from 'unsafe' dungeons. That'd be closer to something like Shining Force (see about 5:30 for the transition from exploration to combat). However that means a certain amount of duplication of code/effort and goes against the roguelike idea of having everything behave the same way. I also can't do mixed areas (like hidden dungeons behind villages) easily or well.

B. Switch to a more Civilisation-like your-turn/their-turn/your-turn approach, and have all monsters take their turn together, and then all of your characters. Each character would have action points (a bit like Space Hulk) you'd spend as you ordered them around, but could issue the commands in any order. Doesn't really solve problem 2 though.

C. Keep the two different movement modes, but somehow fudge it so that party mode lets you move continuously, not in stilted turns like currently. This fixes 2, but not 3.

D. Something else? Suggestions welcome.

Thanks.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline kevglass

JGO Kernel


Medals: 118
Projects: 23
Exp: 18 years


Coder, Trainee Pixel Artist, Game Reviewer


« Reply #1 - Posted 2011-10-30 20:02:42 »

For party movement (and maybe combat too) - could you allow the player to just select general goals for one or more of the party say move to that location, or attack that particular monster, or defend or whatever - then let the game play out turn after turn until either an action is achieved or the player decided to stop the progress and change the commands?

I've been looking at this idea for Heroes of Yore and from what I've tried out it seems to work ok and keeping the game flowing while maintaining the step/turn based game of Rogue.

Cheers,

Kev

Offline Nate

JGO Kernel


Medals: 145
Projects: 4
Exp: 14 years


Esoteric Software


« Reply #2 - Posted 2011-10-31 00:00:24 »

A real time system is where you use cooldowns for abilities and is pretty clear to the user how this works. Click any player who isn't on cooldown, and you can do stuff. The down side is that if you get distracted, the game continues and your whole party dies. You could limit the real time to X seconds ahead. Eg, if you stop taking actions during a game, the game would continue, everyone's cooldown clocks progressing at most X seconds, then pause until you take an action. It would feel like real time when you focus on the game, except if you take too long choosing an ability or stop playing briefly you are punished by the monsters getting X seconds ahead.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline loom_weaver

JGO Coder


Medals: 17



« Reply #3 - Posted 2011-10-31 00:28:25 »

It is possible but tricky.

I've created a similar system to the one described by kevglass for my rogue-like.

Basically, the interface becomes RTS so think StarCraft or something similar.  You select units at any time and give them marching orders e.g. attack this enemy, move to this spot, or follow this ally.

Gameplay can flow either uninterrupted or, unlike StarCraft, you can play it also a turn at a time because underneath the system still operates as a turn-based game.

Where things become difficult is when you have dozens of units.  Watching the animation for each and every unit to take its turn gets really tiring after a while (e.g. Wesnoth, FF Tactics, etc.).  To avoid this I started displaying animations in parallel but to implement it requires the GameState to advance ahead of what's displayed!!  I've devised a system to do this and avoid collisions but it's a bit too complicated to explain here.

Unfortunately, I think such a redesign will affect too many pieces of your existing game (e.g. interface, game loop, data structures) and the refactor to get what I think you're really trying to describe might be unfeasible unless you tear down the existing game and rebuild it.
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #4 - Posted 2011-10-31 13:33:28 »

Interesting suggestions, thanks guys. I am leaning towards the view that if people keep trying to play it like a mini RTS, then maybe I should let it control like an RTS. The tricky bit will be fitting that in with the roguelike turn structure - something I'm going to go and prototype now.

loom_weaver: I did try ages ago an experiment with animating multiple turns in parallel, and I also hit the problem of holding parallel game states as you describe. Do you try and show *all* animations in parallel for one round? I have a theory that if I can just show movement animations in parallel and everything else serial then that should let gameplay proceed fast enough while being much simpler to implement.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline delt0r

JGO Knight


Medals: 26
Exp: 18 years


Computers can do that?


« Reply #5 - Posted 2011-10-31 13:35:17 »

A miniRTS worth checking out is Frozen Synapse. It puts the mini in mini btw. But non the less is a good example for ideas.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #6 - Posted 2011-10-31 13:39:31 »

Yes, I have played that but it's doing things very differently. In particular the freeform vector maps hurt it more than help it IMHO, as it makes it much harder to judge accurate LOS by eye.

At the moment I'm leaning more towards Baldur's Gate for hybrid RL/RTS inspiration.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Offline delt0r

JGO Knight


Medals: 26
Exp: 18 years


Computers can do that?


« Reply #7 - Posted 2011-10-31 13:45:54 »

Indeed it would have been a great 2d game. No idea why its 3d tbh.

I have no special talents. I am only passionately curious.--Albert Einstein
Offline loom_weaver

JGO Coder


Medals: 17



« Reply #8 - Posted 2011-10-31 16:11:48 »

loom_weaver: I did try ages ago an experiment with animating multiple turns in parallel, and I also hit the problem of holding parallel game states as you describe. Do you try and show *all* animations in parallel for one round? I have a theory that if I can just show movement animations in parallel and everything else serial then that should let gameplay proceed fast enough while being much simpler to implement.

I have a queue of animations that correspond to the turn order.

I then pull animations from the queue as long as they don't interfere with each other.  These can be played in parallel.  Once an interference is detected then the affected animation cannot be played until the prior ones that affect it are complete.

It doesn't matter if it's movement or something else.  All animations need to be processed in a uniform manner and any potential collisions must be avoided.

For example, A and B are allies standing beside each other and there is a monster M nearby.  The turn order is:
A moves
M attacks A
B moves to where A was standing

If you play A and B in parallel then how do you handle the monster attack?
Offline Orangy Tang

JGO Kernel


Medals: 56
Projects: 11


Monkey for a head


« Reply #9 - Posted 2011-10-31 20:23:02 »

Yeah, that's pretty much what I was thinking of. I should have said 'consecutive move animations' rather than implying all move animations.

It's dependancy analysis really - hunting for the longest string of animations that can be played without having a dependancy on each other, breaking the chain when a dependancy is found and potentially starting a new one.

[ TriangularPixels.com - Play Growth Spurt, Rescue Squad and Snowman Village ] [ Rebirth - game resource library ]
Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

ctomni231 (35 views)
2014-07-18 06:55:21

Zero Volt (31 views)
2014-07-17 23:47:54

danieldean (26 views)
2014-07-17 23:41:23

MustardPeter (28 views)
2014-07-16 23:30:00

Cero (43 views)
2014-07-16 00:42:17

Riven (45 views)
2014-07-14 18:02:53

OpenGLShaders (34 views)
2014-07-14 16:23:47

Riven (35 views)
2014-07-14 11:51:35

quew8 (31 views)
2014-07-13 13:57:52

SHC (67 views)
2014-07-12 17:50:04
HotSpot Options
by dleskov
2014-07-08 03:59:08

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:58:24

Java and Game Development Tutorials
by SwordsMiner
2014-06-14 00:47:22

How do I start Java Game Development?
by ra4king
2014-05-17 11:13:37

HotSpot Options
by Roquen
2014-05-15 09:59:54

HotSpot Options
by Roquen
2014-05-06 15:03:10

Escape Analysis
by Roquen
2014-04-29 22:16:43

Experimental Toys
by Roquen
2014-04-28 13:24:22
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!