Polish for the Playtest (Week 6)

JULY 11 – JULY 18

We had, thanks to Emmanuel, found a group of students to playtest with, and the date was set to be July 18th, the day of our next sprint meeting, late afternoon. So we decided to focus on playability for this week. We also decided to hold a game jamming session on the day of the next sprint meeting. For that reason I’ll include all of the 18th in this post.

A Gamejam to Finish It Off

Since we were going to have the playtest session on the 18th, and in order to fine tune a few things together, we decided to hold a game jam session at CGL. After we finished our sprint meeting on the 11th, Tatjana and I talked to Matthias about it, who assured us we could do it, and he would help us install whatever programs we needed, as we needed the admin password to do so. Sounded great, and by the 18th we were a bit excited about it.

It turned out Matthias was sick, and he informed neither us, nor anyone else at CGL about our plans. Instead I went to André, who called up Matthias and eventually helped us get it running. There were problems with the password though. To cut a frustrating story short, it took two hours longer than planned, to get everything setup for working. This carved our Jam duration down from about six hours, to four. And some important things suffered because of it.

The whole thing ended pretty stressfully, because I had to make a build at the end of the jam session, and it wouldn’t work on the CGL computer. So I had to quickly pull everything over to my laptop, and make the build while on the train to where the testing would take place.

Implementing Level 5

For the playtesting session, we wanted the players to experience a completed story, with a beginning and a finale. Therefore we decided to skip Level 4 and go straight to Level 5, where you save the civilian from the flood, and escape to safety.
Andreas had already designed the level during the previous sprint, and when he talked about all the new mechanics during this meeting, I had a gut feeling that it was going to take a lot of work. When I thought about it, I felt like it might not be so much after all, but it turned out my gut knew better than my brain.
The new Level had the following new mechanics:

  • The Player can collect a lifeboat pickup, which allows them to move over flooded path nodes
  • If an activated distributionbox is flooded, the water is electrocuted, the electrocuted water kills the player when he is on the lifeboat on the water.
  • There is a civilian in the scene, who’s moving around, and is picked up when they are on the same node as the player.

Now this doesn’t really sound like a lot, and that’s why my brain told me it wasn’t actually too much to worry about. But here’s what my brain hadn’t thought of at the time, but my gut knew:

  • The Lifeboat:
    • The player had to survive the flood while carrying the boat
      • when they entered a flooded node
      • when the node they stood on was flooded
    • The player model had to change to show the boat when using it
  • The Flood Electrocution:
    • The flood needs to be electrocuted
      • when ANY distributionbox is on
      • when the flood rises to cover a distributionbox
      • when a distributionbox that is covered by the box is activated
    • Visually, only the area that is currently flooded needs to be electrocuted
    • The player needs to be killed
      • when they enter an electrocuted node
      • when the node they’re standing on is electrocuted
        • because their node is flooded
        • or because the whole flood was just electrocuted by what was mentioned above
  • The civilian:
    • The civilian had to move around in a predefined way
      • Look in the direction they will move to next
    • The civilian had to be killed
      • By the rising flood
      • By running into the distribution box
    • Had to be picked up by the player when standing on the same node
      • had to be removed from play when picked up
    • Had to be displayed together with the player when picked up
      • Also be displayed on the boat
    • The game had to enter a lose state when the civilian died
  • The Level may not be exited without first collecting the civilian

Oh, so that’s what my gut was worried about. I see.
But hey, I did it, look! (Not a gif this time because of video length)

Implementing Art Assets

As you might’ve seen in the previous post, level 2 looked pretty good, but the other levels were missing their art assets. This obviously couldn’t stay for playtesting, so Tatjana and Alicja worked hard on the Environments for levels one, three and five, and as you already saw, did an outstanding job.
I implemented the level environments, as well as new models for all interactable objects; the player, civilian, lifeboat, screwdriver, enemy boxes and switches.

Dmitry was in charge of the Level UI and did a good job with it too, I only had to add a couple of functions and call them when the gameplay needed it. However this was one of the areas, where the additional two hours of the game jam would’ve helped, I didn’t manage to implement the pickups in the UI.

I also implemented some VFX which was supposed to help players spot interactive objects, highlighting them from the static environment. Here also, I didn’t manage to implement all of them. Especially the VFX for the level exit node would’ve helped our players a lot.

Camera Experiments

During the sprint I experimented with the camera for a bit. I found the isometric angle we had chosen unattractive from the start, and it wasted the potential of the great 3D environments, and to top it all off, Unreal’s orthographic camera had a bug where it didn’t render shadows. Tatjana made a “fake” orthographic camera, with a very low field of view, and the camera very far away from what it is showing. This made the shadows work, but it completely ruined the camera rotation that I had also implemented during this sprint. For now I left in the orthographic camera, but I was determined to get the team to change it to a “real” perspective camera.

We also wanted to move the camera with the player, from node to Node. I had thought of a way to implement it. We would have a “camera track” through the level, basically one full transform animation. Then we would, for every node, define a moment of that track that should be displayed for that node, and when moving from node to node, the camera should move along the track.
In theory this was cool, and it might’ve worked, but not the way we did it. Tatjana made the camera animation, and it looked good so far. However while i was implementing it, I suddenly realized that it was not the normal camera, but a “cinematic” camera. The camera behaved completely different, you couldn’t make any inputs while it was moving or even playing at all, and in the end I decided it would be too much work, and there were more pressing matters. Although we did want to come back to it later!

Bits and Bobs

Character Blurbs

As you could see in the video above, the Level UI had a speech bubble for the character. We would use this to give the player information, both for playing the game, and facts about floods – as a teaching element.
I implemented the functionality for this, however actually implementing the texts just fell short, again, because we ran out of time during the game jam.

Modified Functionalities

Some parts of the Game Design document weren’t entirely clearly defined, so I had implemented some things differently from what Andreas had intended. We only really found this out, because I placed a distributionbox enemy different from what andreas designed. I had placed it differently because in the way I thought the boxes would work, “kill player if they move to the box from the front”, the placement of the box wouldn’t have made any sense. When I told this to andreas, we realized that I had misunderstood his game design doc, and he adjusted it accordingly, and I fixed the behaviour. Boxes should also kill the player “when entering the node the box is standing on” in this case.

I also added functionality to turn switches back on, after switching them off. So far, that functionality was not needed, but it would be used in Level 4.

Leave a Reply

Your email address will not be published.