Gamedev blog 9: The system is perfect and flawed

in #gamedev7 years ago (edited)

It's been a while. I haven't worked on my game as much as I wanted to, but I did get some things done. But first, a short step aside to an article @geekorner linked me to, about the game six match. I'm really glad I read that article before trying the game, because I probably wouldn't have given it a fair chance otherwise. It is simple and brilliant, but more than that, as the article illustrated, the help system is truly fantastic. Do go check it out.

This game seems to fully explore the different types of blocks you could play around with. The main issue with the game is that you have such a huge margin for failure, that impatience is usually what kills you. It could go on a really long time. And when you lose, you have to start over from not-very-exciting beginning again.

I'm toying with ideas of making a similar game, but I should set them aside and work on my project!

Core loop

Back to my game. The core loop currently goes something like this:
Enemy -> Has enough energy to move? yes - move | No - rest to gain 1 energy.
Player -> Has enough energy to take an action? yes - Wait for input | No - automatically rest to gain 1 energy.
Repeat

At first though, I had a few issues. First, once I allowed the player to actively take the rest action, then it would ask for input at 0 energy, which was quite pointless since it's the only possible action.
I fixed that, and also removed the automatic rest from the log, which resulted in an odd behavior:
Enemy - Move
Player - wait for input -> Rest
Player - wait for input -> Rest
Enemy - Move
Player - wait for input -> Rest
Player - wait for input -> Rest

I was quite baffled by this, and thought I had a bug. Once I revealed the energy available to the player, it all made sense. What happened was this:
Enemy 0 - Rest +1 Energy (Not in log)
Player 0 - Auto rest +1 Energy (Not in log)
Enemy 1 - Move -1 Energy
Player 1 - Rest +1 Energy
Enemy 0 - Rest +1 Energy (Not in log)
Player 2 - Rest + 1 Energy
Enemy 1 - Move -1 Energy

And now we can see why the player seems to have double actions. A rest action sort of skips half a turn, the turn the enemy moves, but then since the player now has more than 0 energy, they can act after the enemy rest action.

The system makes perfect sense, but it is flawed. It is flawed for two reasons, one easily fixable, the other requires some design thought.
The first issue is that the player can rest to gather energy, then when the enemy gets to them, they can attack twice for every attack the enemy has. That was not intended. But this is easily fixed with having the rest action replenish up to a maximum, or even always replenish to maximum energy. This making a second consecutive rest more of a wait than a rest. Can't just rest indefinitely after all, at some point it's meaningless.

The second problem is that by allowing the player to activate between the enemy rest and the enemy move, it feels as if the player has a lot more room for actions. It's unintuitive. I'm not quite sure how to solve this one. Once option is to make the wait action different than the rest action. The rest action only allowed to be taken automatically by the system, and the wait action costing energy like other actions.

Either way, this is something I'll have to revisit once there is more game to play, so I can see the effects of the changes on the player.

If you've missed my previous posts, here they are:
Gamedev blog 1: Brewing an idea
Gamedev blog 2: Birthing pains
Gamedev blog 3: It’s checklist time
Gamedev blog 4: The world
Gamedev blog 5: Mockup
Gamedev blog 6: Threat indicators
Gamedev blog 7: Pointlessness
Gamedev blog 8: Information and interactivity

Sort:  

Is great game, I am also work on unity 3d and develop 3d models but this game is interesting.

wall i am reading

Coin Marketplace

STEEM 0.15
TRX 0.12
JST 0.026
BTC 56787.81
ETH 2507.96
USDT 1.00
SBD 2.24