Week Twenty Nine has been a busy one, but before I tell you that story, I’m going to tell you this story; the tale of one EGX Rezzed 2019.
The entryway to greatness…
Myself, Richard and George arrived in London early in the morning of Friday the fifth of April, as trains were expensive and the cheapest one we could find (which was still at a ridiculous price of £33) left Winchester at 6:30 AM. Still, it had gotten us to Rezzed, and we were all rather excited about what we might find in the event. Having never been to one of these game development things before, I was quite looking forward to seeing how everything worked and everything that there was to do. Meeting up with Josh, we all then decided on the various game-related talks that we wanted to attend, and then went our separate ways after first spending a bit of time playtesting some games in the Unreal Engine room.
Josh and I first attended a talk about Games Journalism, as we both had quite a keen interest in that area (I have been a freelance critic for a while after all). Unfortunately for us, the talk focused largely on getting into specific elements of journalism in games rather than encompassing the subject as a whole – the speakers mainly talked about reporting various parts of game news, and how it’s a growing field. This was rather insightful to listen to, but since I focus more on the review/critic side of things, I didn’t find it particularly useful.
We then went out to a nearby Wendy’s for lunch, before then returning to Rezzed and attending a talk hosted by Creative Assembly (the team behind the amazing Alien: Isolation game) who talked about getting into Designer and Programmer roles. Overall, it was quite a useful talk, as one of the recruiters for Creative Assembly took questions from the audience and I felt that learnt a fair amount about what they were after in potential designers and coders. We then met back up with Richard and George for our final talk of the day; Lessons Learned From Running A Games Studio. This one was quite useful too, as the speakers were mostly individual designers who had set up their own studios, and so it was interesting to learn how they went about this and hearing about their various tips for starting your own indie studio.
The rest of our time at Rezzed was then spent exploring the various playable game areas spread throughout the centre and playing as many of the games as possible. I took a particular liking to My Friend Pedro; a very fun two-dimensional jumping-about shooter, and the latest Devolver Digital game that they were hosting in their game room. Another that stood out to me was Beyond Blue, a very pretty-looking game where you are tasked with swimming around an ocean and collecting various data on the local wildlife. I spent a fair amount of time playing these games, and came away seriously considering preorders.
Devolver Digital’s latest title
It was then time to head home, and after the long day we’d had we were all very tired. On the whole, I found EGX Rezzed to be a particularly interesting experience, and while some talks were more useful than others, overall I felt I learned a great deal about the general ins-and-outs of the game development world, as well as gaining quite a few points about how indie creations and developmental teamwork worked. The games we managed to play were all excellent, and I look forward to playing some of them again in the future, and perhaps even attending the conference again.
And now, for the moment you’ve been waiting for; the actual Walkthrough for Week Twenty Nine.
Having just returned from a short holiday in Scotland, on Monday I was keen to get cracking and begin creating Fortitude 1.0; a game update that hopefully would introduce the first of the game’s narrative events and a few other gameplay elements that I’d had some ideas about – ones that would hopefully steer the game ever closer to its completion. The narrative event that I would be tackling this week was none other than the most important one; the Rogue Planet Event. You can find the full details of it in last week’s walkthrough (Twenty Seven) but essentially the idea was that whenever the player is within the atmosphere of a planet they can see the Rogue Planet in the sky, and it will get larger and larger throughout the game as the planet gets closer to the System. After some time has passed (this will need testing, but probably an hour or so) and the planet is nearly gigantic in the skyline, the Rogue Planet itself will then sweep through the system, destroying everything in its path and killing the player. This narrative event plays heavily on our overall fear idea, as it gives the player a time limit that they must complete the game and “escape” within, which could add a lot of tension and anxiety to gameplay, as players must be aware of how close the planet is at all times.
With this in mind, I spent the entirety of Monday implementing a basic-but-very-functional version of this narrative event into Fortitude 1.0. It took a little while and required a few scripts and a great many lines of code, but by the end of the day I had it working, and working well.
Now, as soon as the game begins, a timer starts. In the game’s current version, I have the timer in the top left hand corner of the screen for testing purposes, but in the final game the player will likely need to rely only on the position of the Rogue Planet in the sky as a time-related guide. Over the course of gameplay, this timer slowly ticks upwards, and as the timer progresses, the Rogue Planet slowly gets larger and larger in the background of planetary atmospheres. After exactly an hour of real time has passed (and the Rogue Planet nearly fills up the player’s entire background) the ship’s AI speaks to the player, warning them of an imminent gravitational anomaly, and the camera’s perspective then switches, showing the Rogue Planet forcing its way into the Solar System and wreaking havoc on the nearby planets. Here is a (very early) view into what that will look like:
The Rogue Planet Narrative Event – Version 1.0
In the gameplay above, the Rogue Planet sweeps in and destroys Elcalowda, breaking it up into large chunks that then spread around the System. This is of course an early version of the destruction it will cause, the idea for the full game is that it will destroy a few other areas before hitting Elcalowda, and the resulting explosion will then spread debris and destruction throughout the System. A lot of the design-based elements are not ready yet (like the actual planetary chunks, asteroids, explosion effects etc.) but these will be added in due course. As of right now, as soon as the game begins, the player has exactly one hour until System destruction occurs. Of course, this hour is relative, so the player will also need to be careful about how they use the TimeScale function, as it will speed up the time that they have left.
Tuesday then rolled around, and I spent a fair amount of it talking to Josh; showing him the new Rogue Planet Event, and generally chatting about the game’s development going forward. He liked the event a lot, particularly praising the “explosion” that occurs as the planet collides with Elcalowda. At the time, he was still working hard on the surface designs for that world, and after he showed me them in-progress, I thought they were starting to look really cool. I then spent the remainder of the day doing something I had been meaning to do for a while now; rearranging the planets in the game’s Solar System.
They had all been in a neat line just underneath the Sun (for testing purposes) and since that isn’t particularly realistic, I took it upon myself to move them around a bit. The Gas Giants are now at opposite ends of the System from eachother (to equally spread refueling opportunities throughout the System), Elcalowda is positioned near the bottom right hand corner (so that it will slowly move right into a good position for the Rogue Planet’s destruction) and Diadem on the left hand side (to encourage the player to fully explore all areas around the game’s Sun). These changes made the game’s environment overall feel much more dynamic, as well as giving the player much more room to manouevre about and explore.
The new locations of Diadem and Elcalowda, with Rika and Estabahn just out of sight above and below the Sun
It was then Wednesday, and I decided to tackle another element of gameplay that I had been meaning to look into for a while now; planetary exploration. It had been introduced in its simplest form in Prototype 0.5.5, and so it was high time some new features were added. One of the biggest things that needed looking into was the astronaut’s surface controls, as it still used the AddForce controls that it had for space, which simply didn’t translate well in a gravity-based environment (simply put – you slide all over the place and it’s wacky as anything).
I decided to tackle this first, replacing the original AddForce controls with an entirely new transform.Translate system that only came online when you set foot on a planetary surface. The player now actually looks as if he’s walking around (rather than sliding) and is a lot more fun to control. And just to make things a tad more interesting, I also added a jump/boost mechanic where the player can move upwards for three seconds before their jetpack needs a cooldown, which adds another level to the fear theme as the player will need to be careful how they jump, particularly over crevasses or cave entrances for fear of death.
Another aspect of planetary exploration that I had been meaning to look back into for a while was landing itself. As it currently stood it wasn’t particularly difficult, as the player just had a straight-line shot downwards, and provided they stayed below 10m/s they would land safely. Previously I had created a demo of the game for our showcase in Andover College, and that had some dangerous atmospheric elements in it to make the game more interesting – which gave me an idea; wind.
Rather than making it as obvious as the demo (i.e. red and yellow clouds) I decided to add semi-visible ones that would act like wind/atmosphere to the ship, essentially buffeting it around a lot and making landing a lot more difficult. As the “wind” would be barely visible, the player would need to look out for them as well as attempting to land, which would definitely be a big old increase in the way of anxiety/fear. The rest of Wednesday was then spent coding in this mechanic, and as a result the planetary landing in the game is a lot more interesting now. When entering the atmosphere (which the ship now tells you about as I added a few more AI vocal cues) you now must pay attention to your speed, rotation and position relative to nearby winds. It’s a fun experience, but not half a scary one too.
Thursday. Josh and I spent much of it in a discord voice chat discussion together, talking about the game and various other things. He had managed to mostly complete the surface designs for Elcalowda, so he sent them over to me for testing and after a few minutes of fiddling (mainly collider issues) I had all the different segments lined up and the new surface was ready to go. Josh had also designed the various surface elements to be loopable, per one of our earlier discussions where we talked about how the surface would work i.e. would there be an edge, a hard wall etc. and had decided to instead loop the surface (much like a planet itself except in much smaller scale) so if the player reached one edge, they would start at the beginning again, but they wouldn’t be aware of this as the two edges would match up perfectly. Designing the code for this mechanic took a fair bit of head-scratching, but I had it working after a little while (mostly anyway) and so we essentially now have infinite terrain on Elcalowda!
Josh’s new surface designs for Elcalowda, complete with “atmospheric winds” in the sky
The conversation then got around to the game’s Narrative, something that had needed a discussion for a while now. We had gotten a basic list of events cobbled together in Week Twenty Seven, but the narrative was still a bit of a jumbled mess and had been for a number of weeks due to various thing being cut out and some game elements being dropped. The story badly needed some editing and smoothing over, so we decided to do just that.
We knew we wanted to keep the three main events; The “Alien Ruins”, “Sentient Bacteria” and “Ocean Monster” events, which would then serve as a checklist for the final “Meeting The Aliens” event that would see game completion and escape before the “Rogue Planet” arrived. Due to the new role that the Rogue Planet served, landing on it or its moon would no longer be possible, so I suggested to Josh that we have the Sentient Bacteria event on Diadem instead (as it had previously been set on the Rogue Moon) as Diadem was the only non-landable planet in the game at that time, which I felt needed to be rectified, and what better way than to set a story event on it. The various locations for the events were then as follows:
- Alien Ruins – Elcalowda
- Sentient Bacteria – Diadem
- Ocean Monster – Estabahn’s Moon
This list then got us thinking; what about Rika? It is far across the Solar System, and there is no real narrative reason to go there. The conversation didn’t go very far with this as we didn’t want to add a whole other event that we might not have time to create, so I suggested an “easter egg” or some kind of hint towards alien life (like ruins or something) that doesn’t tie into the story directly, but rather reinforces it (gives lore perhaps). After then having much discussion regarding the narrative events and how we would implement game tutorials around them (as we have to teach the player how to play the game after all) the new narrative looked like this:
Narrative: 3. is Ocean Monster, 5 is Alien Ruins, 6 is Sentient Bacteria, 8 is Meet The Aliens
The new story was much more coherent than previous iterations, with straight-line links between events and additional lore and minor events happening between them. One of the larger changes we added was this idea of bringing the Sentient Bacteria to the Alien Ruins – struggling with piloting the Fortitude ship while it slowly gets taken over would be a pretty interesting finale, and we needed a reason for the intelligent Aliens to want to meet the player, so we pitched this idea of what if they want the Sentient Bacteria for some reason? The player managing to pilot there and deliver it to the ruins would then be the trigger for the final game event, and subsequently they would manage to escape before the Rogue Planet arrived. Overall, Josh and I were rather pleased with the game’s new narrative, and were pretty excited to begin adding it into the game.
Reflection On The Week
Week Twenty Nine has been a particularly busy one, but as a result the game has taken significant leaps and bounds forward both in terms of development and in planning. Fortitude 1.0 is largely complete, and with it comes the first of the game’s narrative events; the Rogue Planet. This event forms the baseline of the entire game, as the player needs to explore the System and complete the game (by giving the Sentient Bacteria to the Alien Ruins) before the Rogue Planet blitzes in and destroys the System, so it forms a pretty fundamental part of the story as well as the game overall.
Planetary exploration has also been overhauled, with a good few mechanics having been added and/or improved in order to make the game both more enjoyable and a lot more scary i.e. in line with the overall fear theme. The narrative itself has also received a bit of a makeover, as Josh and I now have a pretty clear idea of each of the major events and the different aspects that come between them and tie everything else together. The plan for next week (Fortitude 1.1) is to begin implementing this new narrative design immediately, starting with the initial tutorials (Basic Flight and Refueling) and depending on time maybe even the mysterious signals as well, not to mention various bugfixes and optimisations of new features.
Fortitude is really coming along now, but there are only a few weeks to go.