For the third year in a row, I participated in the local Global Game Jam at a physical site in Medellín, Colombia.
This year I decided to have a different experience and direct the project upfront (previous years my mindset was more of acting just as programmer), and also try to assemble a team with students . We made a “precision platformer” set in Venice, inspired by good old Prince of Persia (I mean good old from the 80s). You can download our game from itch.io
Here’s a gameplay video so you have an idea of what we managed to build.
Building a team
Unlike past year, this time I managed to arrive to the site before nightfall. I claimed a table and opened my laptop. Some minutes later I met with friend Camilo Ramirez as planned, that was the team so far – the idea was to meet new people and bring them in. Soon we were approached by a pair of friends: Santiago and Willian, with Santiago participating for their first time, they would bring the audio and visual skills the team needed.
Shortly afterwards, one of the jam’s organizers entrusted us with Jean Pierre, at 15 y/o the youngest participant of the site (I didn’t know at that point), we welcomed him as designer. The team would be complete next day when Liliana arrived to the site, looking for a team to join – Willian let her into the team, since an additional artist specialized in 2D would be more than welcome.

Over the week prior to the jam I had an idea floating on my head of making a DOS-like game, what about making a Prince of Persia clone? I had always wanted to do that and this time I made myself the chance to set the direction of the project.
The theme this year was Mask. I thought it would be best not to give it a LOT of thought, instead focus on making a fun game and a good homage to the classic, so we went with the simple idea of an adventure to find masks that would give you different abilities like being able to see invisible objects, or hiding on plain sight.
Visuals and Environment
Because of the limited time, I knew it was important to set things up from the beginning regarding the visuals, so that the work from the artist and level designer would be optimized. Initially I was targeting for a 320×200 resolution, but that compromised the level of detail the artist wanted to have, so I upped it to 640×480.
As usual, I was aiming for pixel art fidelity, so I used the PixelPerfect 2D as well as usual Unity tips for crispiness. I also implemented a custom script for room by room camera movement (unlike the original, it’s 2026 so we can have the luxury of loading the entire game level and just move the camera in big chunks.
I shot some quick prompts to have some placeholder backgrounds, just to have an idea of how things would look when assembled together. GPT-4o Image Generation sucks for pixel art, but was useful to measure proportions and get the team excited.

For the game’s narrative and environment initially we planned to have it divided into three stages: You would start exploring Venice’s backstreets where you’d jump from roof to roof looking for your first mask while learning the ropes of the movement system, then you would have to traverse Venice’s boat-filled canals with precision jumps, and finally you would be infiltrating a Venetian manor, using your mask to gain access to it and hide on plan sight mingling on a masquerade party on its ballroom, and then sneaking into the upper elegant inner quarters protected by guards where you’d exercise stealth to succeed in your final mission: stealing back a portrait of some importance.
That, of course, was extremely ambitious in many ways, including our limited capacity to create backgrounds (just an artist devoted to it) and very limited time to implement unique gameplay features.
So, one of the biggest changes I had to propose in the middle of the development was to make most of the game take place in underground tunnels, meaning we could cheat a lot with the environment art just providing a background texture (I got it from GIMP) and tileable stone blocks (made by Willian following strict direction and references), and focus gameplay on precision platforming, leaving stealth out of the equation). This also allowed us to better implement one of the elements related to the jam’s theme: the darkness mask, which made much more sense in the underworld and also helped hide its lack of variety and plainness, since we didn’t manage to furnish it with interesting props.

Before taking this narrative and design turn, Jean and Willian had started to find references for the Venice of the time (as well as for the main character and the guards). So, when Liliana joined the team on next day, she already had some reference material to work on. It was one of her first experiences with game development, so it was an exploratory journey for her to understand the format and presentation this required. Fortunately Willian was there to guide her a bit.
Approaching the end of the jam, she still managed to create some nice screens for Venice and its canals, which I decided to use to strenghten the theme of the game and not so much as playable areas; contrasting to the tunnels, the walkable surfaces in these is part of the background, making them feel much more organic.
One thing we had to do for these image was to give them some texture since they felt somewhat plain, and having increase the resolution only increased the demands for detail. We had to settle to use some noise filters from GIMP to make the images look a bit grainy.

Level Design
Designing the levels was a very iterative process; Jean Pierre stood up to the task and ended up designing 3 stages based on our initial gameplay ideas. Sadly in the end we ended up only managing to fit the first one into the constraint of the project.
Our first attempt for level design was paper; he created some rough sketches for the level flow, and then we tried to map them into objects into the game. At that point we didn’t even have the grid system in place but even then it became clear it would consume too much time trying to resolve design questions at integration time.
So the next step we took was to create digital versions of these sketches, Jean had the idea to use a pixel art program as a makeshift level editor. Already here we managed to find tweaks that would be needed to acomodate to a screen by screen level structure.

But even then, as I started trying to take his designs into the game, I struggled hard with things that didn’t really make sense when transformed to in-game objects; as part of the integration, I was having to take expensive level design choices.
We needed something that would let up bridge the gap between the implementation and the level design, so that Jean could measure the spaces more directly and verify the levels were traversable, challenging and fun, without me having to implement drafts and send them to him for revision; there was just no time to iterate on this.
So, I got into the task of streamlining the process to enable him to use a map editor proper (Tiled). This allowed him to better visualize the player’s path and also allowed me to integrate level changes into the engine quickly; it worked great although ultimately we failed to exploit its full potential due to the time constraints (would have been amazing for a 4 days jam)

Of course, in order for this to work I had to make a full system on Unity to load the level based on a grid and using prefab blocks instead of placing them manually.
This was undoubtedly a must in any case, and it also allowed us to easily test the level design in graybox, before having any level art available or integrated.

The making of a Hero
The other important visual aspect of the game was, of course, the main character. It all started with exploring and researching a little bit on late renaissance Italian fashion (alongside some other world elements)
Willian went on to conceptualize the main character a little bit too.
Once this was on place, it was time to jump into blender and create a low poly version (since we were going to be exporting it to a low resolution spritesheet, it didn’t make sense to add a lot of details).
In the end, I feel like maaaybe we could have including some more detail and shading? but on the other hand it ended up looking VERY late 90s- Almost like a Windows 98 experiment with pre-rendered characters.
Willian even created a zoomed in version of the hero, for the “cover art”

Character Animations
One of the most interesting aspects we managed to put in place in my opinion was a workflow to create the animations for the main character; we didn’t have a specialized pixel art animator in the team, and I left my 16mm video camera at home so rotoscoping relatives was out of the question.
What we ended up doing was using freely available 3D animations from mixamo, model our own lowpoly character on top of the standard rigging and prerender the animations in Blender in a side perspective using the “Pixel Art Rendering” blender add-on to apply a pixel artsy shader/appearance to it, it was further processed in Krita to generate an animated GIF, and finally we used AseSprite to turn it back into spritesheets.
This allowed us to start working on visual integration on day one, only hours before having started we already had a character generated with such workflow running in Unity and integrated with the other visual aspects of the game (without even having modeled the actual character that would wound up in the game)
Character Movement Programming
Replicating the signature character movement from Prince of Persia (which conveys a sense of “realism” and momentum that arcade platformers don’t have) was a matter so complex on itself (at least to reconstruct in just two days) that I entrusted Camilo’s complete development power into it.
In this kind of platformer, each action you commit to is definitive and can’t be interrupted: You cannot change jump directions in mid-air, you cannot interrupt a sprint until it’s over, you cannot jump 10 meters into the air – instead you slowly climb over ledges… Overall, this is not very compatible with any modern engine’s off-the-shelf 2D physic engine, as far as I know.
Of course we didn’t manage to implement the full move set of Prince of Persia, and the movement doesn’t feel completely smooth, but… making something that worked in dynamic, almost procedural environments was already a big feat, so mad props to Camilo.
The player can take small steps, run, run and jump and, something that was a true headache: climb ledges. The biggest thing we couldn’t afford to put in was the option to turn around while running.

Audio
Based on my Global Game Jam experience, audio is often neglected up to the very end of the jam, when it’s hastily, partially, sadly added. That’s not fair at all; audio makes a BIG part of the player’s experience.
Anyways, one of the very first things we did was to set up FMod and make sure we’d be able to hook events from Unity and have them play back. With this on place, Santiago was able to dig into the details of the implementation of each event, and then we could reconnect back periodically to integrate the progress.

Sadly, in spite of these efforts, we ran short of time to integrate all the audio effects in a timely way so that Santiago could iterate on them. Fortunately we still managed to include them, even if they could use some tweaks on the mixing.
Music
In spite of setting up an Arequipe trap hoping to lure a musician into the team, this year there weren’t many on the physical location.
We were almost ready to resign to having no music at all, but Santiago jumped into it the last hours of Sunday, and came out with a really interesting track with a simple foundation with a strings layer.
The Magical Masks
So, we had a precision platformer – but we still had an assignment, we needed to fit the theme of the global game jam 2026: Masks.
In addition to the already mentioned thematic elements of having to find masks granting you abilities, we managed to implement certain graphical “masking” effects.
The first one is more interesting: Wearing the magical mask activates a mask that allows you to see invisible platforms which are critical to completing the level. This one was implemented using Unity’s graphics 2D masking features.

The second one I already mentioned, it was the darkness mask/fov around the player; I actually ended up implementing it in a very lazy way; it’s just a pitch black texture with a transparent circle in the middle that follows the player all around. I tried to implement it with proper masking but it was conflicting with the invisible objects mask, and there was no time to be elegant.
—
And that’s about it for this year’s Global Game Jam journey! if you are interested or want to practice your Spanish, you can check out the videolog below. And as always, let me know your thoughts about the game and its development too!



