Echoes Traveler Devlog #8 - Ending cutscene


I have some very good news! Echoes Traveler is very, very close to being released. I've just finished making its end. Now it only needs a few quality of life tweaks. The last month was a bit busy with a video I made and a jam I participated to, but I was still able to make progress, and now I'm fully focused on finishing Echoes Traveler! I might announce its release date soon.

But let's talk about that ending for now. I put a lot of efforts in it! I would love to show it to you, but at the same time I don't want to ruin the surprise. You know I love games about discovering the unknown (and Echoes Traveler is about that idea). This part of the game must be for the player to experience by themselves. Therefore I'll do a tricky exercise here: talking about the ending without revealing or showing anything about it… Yep, no screenshots this time, sorry. (Well, it's not like there has been many in other posts anyway!)

Ending a game with no story

A question that followed me for a good while during the development of Echoes Traveler was: how should it end? Not only the game has no visuals, it is also very abstract in its structure! It doesn't present you any story, and directly asks you to explore. A voluntary minimalist design: I want the game to put the focus on mechanics and exploration rather than a fancy story. But that means that I can't rely on narration to conclude the game! And while I can start the game right when the player hits start, I cannot abruptly end it when the player reaches the final puzzle, and leave with just a “Thank you for playing”.

Although, it was almost the first intended ending. Remember this screenshot from last year's jam version of the game?

Echoes Traveler Jam version

So much progress made since then!

See the small square on top? This is supposed to be a trapdoor, that opens only once the player have completed all the paths. The idea was: you explore the world to unlock a passage. A temple maybe, leading to treasures, or secrets… You wouldn't know anyway, because as soon as you'd enter it, the game would fade to black, and display the credits. Simple, to the point. But there are issues with this ending. First, sight impaired players would have to guess that they have to go back to the start screen. Secondly, after traveling back to the entrance, going in it and finding literally nothing is quite disappointing! This final step feels mostly like a chore to "validate" the win. Now that I've worked for several months on this game, I want to offer something to players who put the efforts to complete it. It is quite long after all, their patience should be rewarded. Even on my most abstracts games, I like to give the satisfaction of “reaching something”, whether it is a conclusion or a feeling of "completeness".

Therefore I needed something special for the end of Echoes Traveler. Immediately, a song felt appropriate. It's a game about music, it should naturally close with more music! This way all players can enjoy it! But still, it would be nice to display a little something to go along with it. Maybe dezooming the camera to show the full world? Haha, way too much work, nope, nope! It needs a proper  ending cutscene. While there is no story in the game, it isn't 100% abstract: the beginning takes place in some kind of forest, we control what appears to be a ghost… There is a universe we can work with.

I took inspiration from games that also sets an abstract narrative, but still provides impressive endings: Starseed Pilgrim, Proteus, Fract OSC, The Witness, FEZ, Manifold Garden… Those games endings are mesmerizing for some, mysterious for others, even a bit meaningful sometime! They convey emotions or ideas that are linked to the games identities. Fract OSC puts on a musical show, Manifold Garden gets ourselves lost in infinite fractals, and The Witness hints on the idea that by trying to better understand the world, we actually learned nothing. So for Echoes Traveler, I had to ask myself: what is the main feeling of the game? What does the player needs to achieve to be fulfilled?

This was closely linked to the design of the player's avatar. A spirit whose purpose is to witness the world. Completing the paths  means that they have visited all the regions. They've seen it, and thus these places can be… remembered? It is not therefore something greater that the character wants to "unlock". The journey itself was the goal, and now that this is done, the spirit can leave and ascend to a state of "enlightenment". Maybe to serve as a testimony of this world, or to visit others. The end I ended up designing is still very, very abstract! It probably can interpreted in many ways. But I hope it still conveys some of the emotions the game is centered about. The end of a beautiful journey, the mysteries of a world larger than our comprehension, and the the memories we keep preciously.

There's an other obvious common points in the endings I listed: they look and sound really cool! Beyond what they express, they're just super satisfying to watch. So that is, naturally, one of my goal. Write an epic music, with awesome visuals.

Tubular Bells!

For the music, I feel I can produce something great. Maybe not impressive, but epic enough to do the job. I originally wanted to use some of the games' loops to compose a new song. I tested this idea in the trailer, and discovered that it was more laborious and restrictive than I thought! So I should compose something original instead. Which brings a new problem: how to remain in the game's musical identity? It doesn't have any main theme. In fact, there isn't any melody at all! As most of the music is made of atmospheric sounds or minimalist motifs! Damn there's a lot of things this game don't have…On top of that, the music in the game is separated into 4 distinct areas, each with their own strong identity. I can't pick just one, and I can't really blend them together either. As for the central forest area, well, its music has been design to sound silent. Not much we can build with that!

But there are still some elements that remain constant throughout the game. First, the D minor scale. I can emphasis on its root chord, jump out of it to create a strong contrast, and then fall back on D major for an epic closure! Another sound we find in all the areas are the puzzles sounds. While the tiles sounds don't have strong personalities, the tubular bell ringing when you solve the puzzle definitely sounds recognizable! The song should thus put an emphasis on them. Tubular bells are perfect to create something glorious! This is also a reason I used them in the trailer: they play a part in the identity of the game, tying together all the music.

This was thus the basis on which I wrote the composition. Naturally, this song also needed to have its own identity. It has thus an original theme, some parts very distinct from the rest of the game, and a unique chord progression that was quite hard to find, but I'm super happy with it! Writing mostly adaptive and minimalist music, composing a full song was a good exercise to improve my skills. I also used a new DAW: Waveform. It's been a while I wanted to switch from LMMS, which has its limits, and can be unpleasant to use sometime. There's not a lot of choices of DAW on Linux, but I'm surprised I haven't heard of this one before! I discovered it by total accident, and it's really great! I also bought a license for Zyn-Fusion, a synth I used a lot in LMMS. I'm not a fan of its (glitchy) UI, but it is really powerful, and has a lot of great presets! In the end, writing this song was the perfect way to familiarize myself with those new tools. And the result is not disappointing at all!

Light show

Having great music is not all, I also need to create cool visuals. This is where it gets tricky, because I'm a terrible visual artist! Drawing animations would be long, painful, and probably unsatisfying. There are two solutions for this problem. The first one is mathematics. You can create a lot of impressive visuals with a few functions and geometries. That's what FEZ and Manifold Garden do, and it's gorgeous. This is something I'd like to learn to do as well one day. But for now, it's not part of my skills. So second solution: rad' visual effects! Lights, particles, parallax… Easy to implement, most of the time with great results. It's the best trick for dev with no drawing skills! Also, I wanted to know how to use them in Phaser so that I could use it in a game jam. Mission accomplished!

It also allowed me to see their limits and the difficulties they present. Especially 2D light, that have a lot of restrictions in Phaser (especially if you try to use them with parallax). I'm now used to Phaser, and feel I can produce a lot of games with it, but I'm still not a fan of some of its aspects. Writing this end scene, I used a lot of different sprites, camera movements, tweens… It was a great way to learn some of Phaser's  cinematic utilities, and see some of their limits. I don't know if there are actually better 2D games engines for the web, or as popular as Phaser. But this made me want even more to try a different one in the future.

Another trouble I had was something a lot of developers must be familiar with. Phaser is a 100% code framework, you don't have any editor tool in which you can drag and drop your sprites. You have to write everything in Typescript! But thus, when I had to compose a scene with several sprites scattered randomly around the screen, I just couldn't arbitrarily set their coordinates. I felt obligated to write a script to randomly place them for me! And naturally having fully random positions wouldn't give a balanced result, so I perfected my scripts to generate compositions that feel nice! That's right, I used procedural generation for a scene that players would only see once. And while those scripts are in fact quite "simple", it would have been as fast (perhaps even more) to just place manually my sprites! But I'm too indecisive for that, and I'm fascinated by procedural generation. "Randomly placed" means that it should actually be random, right? So I had to write a random placement algorithm, then spend hours tweaking its variables and adding  some logic to have consistently great results. It's satisfying to do as a programming challenge, but not pragmatic at all. No one will possibly notice it, I just wasted hours on scripting what could have been just static. I really must learn better to resist from the desire of creating "pure random scenes", and instead make arbitrary compositions. It might feel "ugly" in the code base (having a lot of numbers aligned next to each others), but it's a necessary shortcut when you want to ship a game!

Anyway, besides those troubles, I achieved to create an ending that I'm pretty proud of! The most satisfying part is the syncing with the music. I scheduled strong actions to happen at a precise time in the song, and it give a really cool choreography as a result! And this was actually easy to implement. In the end this cutscene might be abstract to the point of being confusing, and uses a lot a cheap effects, but it's at least beautiful! Seriously, I hope you'll be able to finish the game to see it.


What's next? Well, I think next post will either announce a release date, or even come after it! Most of the things left are about the UI. I must write a proper end credits screen, add some messages in the tutorial and the start screen… As for game design, I mostly intends to implement a quick autosave (because the game can be quite long if you don't know where to find the paths). And after that, we're good to go! It feels weird to be so close.

So see you soon for the release of Echoes Traveler! I hope you'll enjoy it.

Leave a comment

Log in with itch.io to leave a comment.