Including today, I have 5 days left for building the prototype.
After that, I know that I'll be busy with other work and family until October, so I really want to complete this first phase of development in these 5 days.
Considering it's not much time, I'll try to schedule what to do.
It looks sensible to dedicate today to "wrap up" the gameplay, then freeze it and dedicate three days to just the visualization part. I won't schedule anything for the last day, keeping it as a time "buffer". Worst case, I'll do visualization in the last day too. If things go better, I'll do a bit of bugfixing and polish. In the best possible scenario that never happens, I will use it to just record some cool gameplay and edit a video to present the prototype.
So, about today, how to wrap up the gameplay?
Let's start by looking at the notes we prepared a couple days ago:
it's sometimes hard to understand what's going on with portals, because of the lack of visual and audio feedback
there's still a bug in the target platform selection, when trying to go backwards
the power-up pickup logic needs to be completed (the pick-up should happen only if you are looking towards the power-up, and only if you are on the same platform as the power-up)
I need to at least add some audio to let the player know that an enemy is approaching from behind
the player can destroy enemies, but the enemies can't damage the player. And the player should have at any moment an indicator of their health level, and an indicator that they're receiving damage
I want to add a ranged attack, probably with a cooldown or a "charging" mechanism so that it still makes sense to also do close range combat
the regularity of the platform grid makes it boring (and makes it hard to understand when you are teleporting: the different shade of grey is definitely not enough)
the player starts in a corner and the enemies are spawned on random platforms - we can do better than that
I need to start working on the "particular" visualization I have in mind, what I'm doing now is just a debug view (and I need to implement a convenient switch between the two)
We somewhat took care of items 1 (audio only), 4, 5 and 6. We also added the "debug" switch (right hand thumbs down, shown in yesterday's switch) mentioned in 9.
Let's write an updated version of the list, adding to it some new tasks spawned by the additions of the last days (health/mana/fireballs).
Visuals
the portals need better visual feedback to make the player understand if they're facing or crossing a portal
the "particular" visualization is completely missing
it should be possible to switch visualization (debug/particular)
Bugs/Rough edges
target platform selection, when going backwards, feels sometimes wrong (to investigate)
the fireball gesture recognition is not perfect (you should never feel you wanted to shoot a fireball but failed because of bad input recognition, that's super frustrating)
the "stick" weapon is not great to use and doesn't fit the "free hand combat" feel of the rest
it's not clear that you get mana by destroying enemies
the enemy speed should be capped so that you have a reasonable chance to escape and not be totally overwhelmed
Audio
the fireball needs sound effects
the "enemy leeching health" state needs a sound effect
picking up mana/health need a sound effect
Gameplay
the regularity of the grid makes it boring (and hard to understand when you are teleporting)
the player starts in a corner and the enemies are spawned on random platforms... it doesn't feel great/fair
the power-up pickup logic needs to be completed (the pick-up should happen only if you are looking towards the power-up, and only if you are on the same platform as the power-up)
there should be health/mana pickups
While writing this list, I was thinking about how to get the best value of my time, trying to hit multiple birds with one stone.
So, I think that at the core of today's work there will be the item pickup, and I'll add some health/mana pickups around on platforms.
This will also help in break the visual regularity of the grid, as the pick-ups act as landmarks while moving around.
Moreover, I will have the enemies "drop" the mana when destroyed, and not have it automatically added to the player's mana level.
This will motivate the player to move around to collect it, instead of staying on a single platform shooting fireballs.
For now, I'll remove the "stick" weapon, so I can avoid a whole range of problems. If it's not crystal clear how to make something fit a game, and there's a limited time available, the best thing to do is often just cut the feature (not always possible, of course).
I started by making a "smart" pickable element.
I want to be able to spawn them anywhere (enemies could be destroyed outside of platforms) and be able to go to a resting spot.
A resting spot should be at the middle of an edge of a platform, so we'll never have the problem of a portal crossing a pickup: it will always be on one side or on the other side of the portal, and to keeps things simple, we won't allow to fetch pickups across a portal.
Some pickups could end up in the same spot, but that's not a big deal as there's a good chance that they will wobble with different start offsets, and it shouldn't matter very much when we'll get to the "particular" visualization.
We'll do something more robust in the real game (for example, near pickups could merge and increase their size).
After some testing, I decided that to pickup a powerup the player must be in the same half (avoiding portal problems) and must look at it for a moment.
Done that, the power up floats to the body of the player and increases the mana or health.
Getting the timing right to have a satisfying feel took a bit of trial and error, and it's definitely not perfect yet, but does the job.
I also did a couple of minor changes while testing.
I made the grid smaller, and I capped the speed of the enemies (that was increasing at each wave) to avoid them becoming quickly overwhelming.
I wanted to take care of the missing audio effects too, but it's too late. So much for this morning planning!
Tomorrow I'll decide what to do next (keep working on the gameplay, or start working on the visualization).