Posts Tagged ‘xmpt games’

Figment, a post-mortem

Posted by
Tuesday, May 3rd, 2016 5:15 pm

The following is a post-mortem for our entry, Figment. You can find the game here┬áif you would like to play it for yourself. We plan to continue development after Ludum Dare, so if you’d like to learn more, you can also find updates on our website or twitter.

Figment is a dimension-switching puzzler about a little girl and her sentient cube.

Hop between the two realms of this dream world to solve puzzles and find out why you’ve been brought there in the first place.

Figment3

Whilst we had entered a few other jams before, this was our first Ludum Dare. We spent the run up voting on themes and trying to come up with some good ideas for the themes that we’d selected. As it turned out, ‘Shapeshift’ wasn’t one of them!

We kicked off midday on the Saturday, and started by wracking our brains for an idea that could fit the theme. Rich had been playing with the idea of a masking shader a few days before, so he was really keen to find an excuse to write one (the final effect is shown in the GIF above). This led us to the core concept of switching between dimensions in order to solve puzzles; we thought that this would tie in really neatly with the theme, as all of the objects in the game could change their form whenever you swapped realms.

In hindsight, trying to force a dimension-switching mechanic in to a 72 hour game jam game was probably biting off a little more than we should’ve. This was particularly poignant knowing that two of our three team members actually only had 48 hours to work on the game. Still, Rich was confident that he could get the core mechanics up and running within the first day, so we thought we’d take a crack at it!

Figment1

Before starting the jam, we’d decided that I would focus on music and sound effects (instead of coding), whilst Ed did artwork and Rich handled the code. So, while Ed started creating concepts for the characters and Rich began on the dimension switching, I took to writing the main musical theme.

Our previous game DiscStorm had all been chiptunes and dance music, so for a change of pace I decided to go for a hybrid orchestral piece. The unique hook was that I would score it twice and then have the game switch between versions as the player swapped dimensions. The idea was to write a melody that felt playful and upbeat in one realm, whilst being haunting or sombre in the other. It took the majority of the first day to get these two pieces finished, along with the code to handle the blending, but I feel it was well worth the effort – as the player is required to constantly switch back and forth between dimensions, it keeps the music feeling fresh, despite each only being three and half minutes long.

Working in the same room meant that every time someone produced something new, it had a direct influence on how the others approached what they were doing. Once Ed had completed the sprites for the little girl and cube, it became pretty clear to all of us that the game was heading towards having a rather “Nintendo” feel to it. That didn’t really come about intentionally, but in the spirit of a jam, as soon as we noticed it we all began to embrace that style.

After we wrapped up at the end of the first day, the game looked pretty similar to how it does in the screenshot above, minus the crate and the incidentals. Rich had the dimension switching code nailed down and you could move around the world, pick up the key and exit through the door, although there was only one level. We were left with a few sorting order issues, as the game is completely 2D, but it wasn’t anything we couldn’t look to iron out the next day. As I was settling down to go to sleep, my need to code got the better of me, so I grabbed a copy and added some screen-space effects to the dimension switch. In case you’re wondering, it’s a mixture of static noise, bloom and chromatic aberration, which all ramp up as the circle expands.

Figment2

Whilst the game pieces were coming together, we were still unsure at the start of the day whether it was actually any fun. We always aim to have a game that we can play by half way through a jam, so we’d fallen behind a bit with this one. Knowing this we decided to switch Ed off of art and get him designing some puzzles.

It became clear that there was a fair bit of depth in the mechanic relatively soon. I’d love to say that we’d planned this up front, but really it just came about from experimentation. Rich began getting a few of the levels in to the engine so that we could actually start testing if the game was enjoyable to play. Getting the first two levels built took a long time. Every wall, floor piece or object had to be painstakingly aligned in the Unity editor for both dimensions. There were also some very particular settings that needed to be used in order to get them to appear in the correct dimensions. The levels seemed pretty fun, but we couldn’t afford to have our developer creating them, so I finished a few sound effects and then swapped over to making levels during the afternoon.

As the day drifted on, Ed got a title screen together, incidentals for the world (like the shelves and rugs), and dialog designs for conveying the story. I finished off the title screen and got it in, as well as incorporating the rugs and shelves in to the newer levels. In the meantime, Rich endeavored to keep the mechanics one step ahead of the levels that were being made. This actually worked really well, as we like to design levels such that they introduce the mechanics gradually, allowing players to discover how things work for themselves. As a result, I could tell Rich which mechanic we needed next, he could code it up, and Ed could make sure the artwork was ready. For the most part, things worked out really well using that approach.

We closed the first day with three or four levels in the game, a fair few bugs, and the dialog boxes still needing to be implemented. I had planned on taking the Monday off, but if we wanted to get everything done there was no chance of that!

Figment1

I woke up and got going with the dialog system. We wanted a reasonable level of polish in the game so I took the time to have the dialog transitions fade in and out, rather than just snapping. After this it became a mad rush to get the ten levels that we’d planned implemented. I started getting through them as quickly as I could, but it became clear that we still had a few bugs to quash. As soon as Rich and Ed got in from work they jumped on Slack – Ed had finished all of the art that we needed (and a little more!) so he largely spent his time testing the game whilst Rich ticked off defects.

As the clock counted down, it became clear that we’d have to cut a few things. We’d taken a decision the previous day to cut a mechanic – a little monster that walks around in the ghost realm but turns into a statue in the human realm – but we decided to go a step further and cut level nine too. We had a plan for the game’s story by this point, so we all felt that having the final level would add more weight from a narrative perspective. I won’t spoil why if you’ve not played it, so I encourage you to have a go!

I realise that our post-mortem is a little late, but hopefully it’ll come in useful for those that read it! By far our biggest lesson learnt was that it’s important to create a game in which you can make levels quickly. About half of our development time in the jam was actually spent building the levels, rather than coding the mechanics. If we’d found a way to make that process swifter, we could’ve added more content in the time we had. If you’ve not played or rated the game yet, please take a look, we really appreciate it!

[cache: storing page]