create account

Gamedev blog 9: The system is perfect and flawed by poet

View this thread on: hive.blogpeakd.comecency.com
· @poet · (edited)
$32.27
Gamedev blog 9: The system is perfect and flawed
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](http://www.electrondance.com/alone-and-beyond-help/) @geekorner linked me to, about the game [six match](https://play.google.com/store/apps/details?id=com.robotacid.sixmatch). 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.

![](https://imgur.com/99Qht3Q.png)

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](https://steemit.com/gamedev/@poet/gamedev-blog-1-brewing-an-idea)
[Gamedev blog 2: Birthing pains](https://steemit.com/gamedev/@poet/gamedev-blog-2-birthing-pains)
[Gamedev blog 3: It’s checklist time](https://steemit.com/gamedev/@poet/gamedev-blog-3-it-s-checklist-time)
[Gamedev blog 4: The world](https://steemit.com/gamedev/@poet/gamedev-blog-4-the-world)
[Gamedev blog 5: Mockup](https://steemit.com/gamedev/@poet/gamedev-blog-5-mockup)
[Gamedev blog 6: Threat indicators](https://steemit.com/gamedev/@poet/gamdev-blog-6-threat-indicators)
[Gamedev blog 7: Pointlessness](https://steemit.com/gamedev/@poet/gamdev-blog-6-pointlessness)
[Gamedev blog 8: Information and interactivity](https://steemit.com/gamedev/@poet/gamedev-blog-8-information-and-interactivity)
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 48 others
properties (23)
authorpoet
permlinkgamedev-blog-8-the-system-is-perfect-and-flawed
categorygamedev
json_metadata{"tags":["gamedev","gaming","games","unity3d","story"],"users":["geekorner"],"image":["https://imgur.com/99Qht3Q.png"],"links":["http://www.electrondance.com/alone-and-beyond-help/","https://play.google.com/store/apps/details?id=com.robotacid.sixmatch","https://steemit.com/gamedev/@poet/gamedev-blog-1-brewing-an-idea","https://steemit.com/gamedev/@poet/gamedev-blog-2-birthing-pains","https://steemit.com/gamedev/@poet/gamedev-blog-3-it-s-checklist-time","https://steemit.com/gamedev/@poet/gamedev-blog-4-the-world","https://steemit.com/gamedev/@poet/gamedev-blog-5-mockup","https://steemit.com/gamedev/@poet/gamdev-blog-6-threat-indicators","https://steemit.com/gamedev/@poet/gamdev-blog-6-pointlessness","https://steemit.com/gamedev/@poet/gamedev-blog-8-information-and-interactivity"],"app":"steemit/0.1","format":"markdown"}
created2018-01-23 21:39:24
last_update2018-11-07 23:11:12
depth0
children2
last_payout2018-01-30 21:39:24
cashout_time1969-12-31 23:59:59
total_payout_value26.144 HBD
curator_payout_value6.121 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,381
author_reputation2,713,975,663,994
root_title"Gamedev blog 9: The system is perfect and flawed"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id31,747,207
net_rshares2,976,275,954,635
author_curate_reward""
vote details (112)
@azizulhassan ·
wall i am reading
properties (22)
authorazizulhassan
permlinkre-poet-gamedev-blog-8-the-system-is-perfect-and-flawed-20180123t225144577z
categorygamedev
json_metadata{"tags":["gamedev"],"app":"steemit/0.1"}
created2018-01-23 22:51:57
last_update2018-01-23 22:51:57
depth1
children0
last_payout2018-01-30 22:51:57
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length17
author_reputation858,685,273,941
root_title"Gamedev blog 9: The system is perfect and flawed"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id31,760,825
net_rshares0
@zainqureshi ·
Is great game, I am also work on unity 3d and develop 3d models but this game is interesting.
properties (22)
authorzainqureshi
permlinkre-poet-gamedev-blog-8-the-system-is-perfect-and-flawed-20180123t223030164z
categorygamedev
json_metadata{"tags":["gamedev"],"app":"steemit/0.1"}
created2018-01-23 22:30:36
last_update2018-01-23 22:30:36
depth1
children0
last_payout2018-01-30 22:30:36
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length93
author_reputation124,873,734,584
root_title"Gamedev blog 9: The system is perfect and flawed"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id31,756,914
net_rshares0