NovaMundi – Week 95 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want the news to reach your email directly. Now, let’s go to the news! 

It has been about three weeks since the last update. I keep working towards the demo. As of now, the plan is for it to contain:

  • The first scenario of the Children of Bachué Campaign: “The Pilgrimage to Hunza”
    • This includes a lot of work we did for the FTUE which is something we need for the Demo.
    • Also, this campaign is the one that more directly serves to share the culture of the Muisca to the world, a goal we are actively seeking (and we will strive to iterate to make it better every time.)
  • The “1500 – Quyca Chihisaba” Muisca scenario of discovery.
    • Much less narrative-driven, included in the demo to showcase scenarios that are heavier on gameplay elements (exploration and progression in an open world) while keeping the setting of the Muisca culture.
  • A post-1750 European scenario of exploration from the coast to some frozen peaks.
    • To make use of our developments for Sailing, as well as the procedural generator for Coastal regions, as well as broadening the scope of cultures to be represented.
    • Still designing this one, thinking of modeling it after 1802’s Humboldt’s climb to Chimborazo, or earlier explorations of the Sierra Nevada de Santa Marta.
  • Spanish and English
    • Except for the audio of the Children of Bachué campaign cutscenes, which will be Spanish only for cost reasons (at least initially).

Fixes for Muisca Culture depiction

Following up on our previous post, we decided to aim for an accurate depiction of the Muisca culture and the highlands environment. We removed animals and items that were out of place and added support for “historical” cultures (vs procedurally generated).

We have also contacted some people both with Muisca heritage (or contacts with cultural organizations) and academic knowledge, and are organizing a first round of testing with them to get their feedback about the way we are depicting them.

The Pilgrimage to Hunza

At the end of the CREA Digital project, last year, we had a working version of this scenario (and three others), for which we decided to activate a “narrative mode” in which the player had to take less care about his expedition and could focus more on the story that was unfolding. I decided to disable it now for these campaigns to have more interesting elements. You now have to engage with the random events system and have to buy supplies and take care of your expedition members

Also, after almost a year of focusing the development on the other scenarios, reactivating this campaign required some big internal changes to get up to date with the new structure for the scenarios data, unifying loading routines, adapting to the new title screen flow, and providing active support for both types of character portraits.

I’m doing some good progress on it, it requires translating a lot of dialogs, and will also do further tweaks for gameplay reasons, removing the roads, and adding more random combat and perils.

Quyca Chihisaba

Progress on this scenario has required blending aspects of both the historical content-heavy campaign and the completely procedurally generated scenarios we had. This included adding a hybrid mode for town population, with premade characters but also procedural ones that can give directions to nearby map features.

Another related thing that was added was the possibility of having animal population and discoveries as part of the data for the different scenarios instead of having it integrated into the terrain generation.

I’m also working on the player flow, giving him a way to get started with the exploration instead of walking around randomly. Ultimately this will involve having a smarter placement of the towns, but for now, at least they will have a safe starting town and a known nearby town from where they can start exploring further.

Finally, I also added back the possibility to trade for goods in towns (as opposed to bartering), which could only be down at the hometown previously.

User Experience

There were also some minor but important fixes for the UI, especially with the status panel which now integrates the command buttons (so the HUD is less busy), and is more readable with bigger text and a change in the direction for the “hunger bar” (now it empties as you require food, instead of filling up)

The trade modal was also improved now displaying the person you are trading with, instead of a generic town icon.

Expedition to Santa Marta

In order to collect information for the historical campaigns, I decided to embark on an expedition to the beaches of Santa Marta; I’m departing Medellín next Thursday with a party of just two other explorers. I will report back my findings on the next update.

That’s it for this week-ish update! I hope to resume with a more fixed weekly rhythm now that there’s a more clear roadmap. Remember to wishlist the game if you haven’t, and let me know any ideas on Twitter or the game forums on Steam!

NovaMundi – Week 94 not-your-usual Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want the news to reach your email directly. Now, let’s go to the news! 

All work on the coding and art side has been halted as I come up with a clear idea of the direction we are taking the project from here regarding the theme. This has been a consistent topic through all the history of the project (nothing new!), but as we get closer to the first public versions it’s about time to have certainty about some things.

This is a delicate topic, and I debated whether or not I should discuss details about it publicly, but in the end, I decided it made sense to do it as the history of this project has always been transparent, and I’m interested in your feedback as an early supporter. I may regret this later.

In its current incarnation, the game still suffers from some issues in spite of (maybe even caused by) our efforts to avoid it being perceived as a glorification of the Spanish Conquest of the Americas, a complex period of history.

What we have right now

  • A mixed setting with the (mostly historical) Spanish exploring a jungle inhabited by a fictional group of people known as the Tqnda.
  • The exploration of this land is portrayed as a mostly peaceful journey without any kind of hostile interaction with the indigenous people.
    • Combat only happens versus wild animals or the group you are sent to capture in some of the scenarios.
    • You cannot establish settlements in the land.
    • You can only do small scale trade for survival (not for profit)
  • The way we are portraying the Tqnda physically is based on the Muisca culture, and for their settlements, we are using a mix of different styles inspired by historical Muisca, Aztec, Mongolian, and Indonesian architecture. (This is probably the biggest pain point currently)
  • You can play as both the Spanish and the Tqnda, in scenarios with similar objectives but different themes.
  • We have a campaign centered on the Muisca, but it needs to be completed (we currently have 4 out of 6 missions), fleshed out with better gameplay, and translated to English (including voice-overs).

Many ideas

After lots of discussion with friends and contacts specialized in the topic, I have considered many options including:

  • Retreating to the safe ground of (Medieval?) Fantasy
    • This would probably be an instant ticket out but would feel like betraying the original vision of the game and missing an opportunity of educating about history (as well as a distinctive marketing point).
    • We already have a distinctive visual style (I think) which may not be 100% compatible with medieval fantasy. We’d have to redo the towns and discard lots of work we’ve done for the indigenous population.
    • Besides, aren’t there too many games already using this setting? It would be harder to stand out.
  • Basing the game on alternate reality (Historical Fiction)
    • Kind of what we have now, but it comes with the dangers of “white-washing” history if we portray these Spanish expeditions as simply curious people interested in knowing more about the land.
    • Also comes with potential issues depending on how the native populators are portrayed; if they are fictional tribes we run into the problem of erasing the identity of the real historical indigenous people, and if they are “historical” then they may be misrepresented as they are affected by the creative liberties of this alternate reality.
  • Adopting an “archeological explorer” fantasy theme
    • Very similar to above, but replacing the nationality of the explorer with some fantasy nation.
    • Can add giant bugs, which are a very effective enemy.
    • Would be a bit more unique than standard medieval fantasy, but would still carry a lot of the issues of Historical Fiction.
    • To counter this, I considered setting it as some kind of “Atlantis” continent, populated with Greek-descendant people. But it looked weird and would require a lot of work to create them and give them narrative strength.
  • Setting the game on a different type period (away from Spanish Conquest), say 200 years after.
    • The problem with this is again how to portray the populators of the land (since the indigenous populators would mostly be gone by now, and their cities replaced with colonies), as well as keep the sense of “unexplored territory”. Both are core gameplay elements.
    • In the end, it would only be partially successful to address the question of colonial exploration and their motivation.
  • Center the game on the Indigenous people instead of the Spanish
    • Is a pretty good choice, and I’m giving this a lot of weight in my current solution.
    • May make it harder for the non-indigenous players to feel connected with the exploring party (but that’d have to be proven).

What I’m thinking

My current stand on this is a mix of a lot of the ingredients above:

  • Stay as a historical game with geography inspired by current-day Colombia, populated based on the inhabitants recorded by history for the period being represented. (Spanning from 1100CE to 1800CE)
  • Continue allowing the player to represent both Indigenous and European expeditions based on the protagonists of the different scenarios (see below).
  • Include some fiction scenarios, separated clearly from the non-fictional ones.
  • Revive and finish the development of the Muisca campaign, “Children of Bachué”, which is inspired by both the myths of the Muisca and the known history of their conquest by the Spanish.
  • Strengthen both our historical research and our collaboration with indigenous people groups to polish our historical scenarios, and provide a summary of the history that inspired each scenario and the creative liberties that were taken.

The Planned Scenarios

The following scenarios would complement the 6 ones from the Children of Bachué campaign, there will be a mixture of mostly historical but also openly fictional.

Also, these are just drafts based on initial research. More research will be done to give a proper background to each, as well as proper descriptions and themes.

  • 1100 – The Salt People: Seeking a place to settle, a group of explorers arrives at a fertile cold plateau, bringing with them the knowledge of Bochica. Your mission is to share this knowledge and look for resources that will allow the Muisca civilization to flourish. (This is the scenario that will require the most research.)
  • 1469 – Rise of the Guecha: The Zipa of Bacatá, Saguanmachica, is determined to bring an end to the Panche assaults on his southern border towns, and expand his domains there. He sends a group to survey the dangerous area in preparation for a massive assault.
  • 1500 – Quyca Chihisaba (fictional): The Iraca, Sugamuxi, has sent you to journey all around the land looking for 10 sacred animals. Find them and return to Suamox, keeping an eye out for the Muzo and Panche raiders.
  • 1536 – To the last man: A heavily armed Spanish expedition has left the outpost of Santa Marta, marching inland through the jungle in hopes of finding a route to the riches of the Inca. You set yourself and your men to stop their progress at all costs and prevent more villages from being sacked.
  • 1537 – Fate of the highlands: Upon knowing of the progress of the Spanish invasion forces in his territory, the Zipa of Bacatá, Tisquesusa, sends you with a small group to the town of Suesuca, where the advancing army is currently stationed, to gather information on the army strength and prepare for their inevitable strike.
  • 1537 – The Spear of Chaquén (Fictional): Travel the Andes highlands to unite the people of the Muisca Confederation against the Spanish invaders, and push them back into the sea, before it’s too late.
  • 1680 – Quyca Cuhumin Sospqua (Fictional): A plague of deadly giant insects is spreading through the land, you must find a way to stop them.
  • 1783 – The envoy of Mutis: Your expedition departs Santa Fe de Bogotá into the deep Andes, with the mission of extending the botanical catalog of the kingdom.
  • 1800 – The little apothecary: The Bourbon Monarchy has authorized your self-funded scientific expedition into the Spanish America territories, enabling you to spend your fortune to explore the settlements and nature of the Viceroyalty of New Granada and beyond.

All scenarios will provide a set of objectives as well as parameters for the procedural generation and population of the land. Of course, we won’t be able to build all of these from the start, but they provide a roadmap for us to work on.

Next Steps

I am going to use this as a base to do an initial set of changes and produce the playable demo we are eager to put into the hands of our closest contributors and potential publishers.

Stay tuned for updates!

NovaMundi – Week 93 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want the news to reach your email directly. Now, let’s go to the news! 

The biggest change this week is the tests with new themes. There was an idea floating around the dev team for a bit, about leaning a bit more into the fantasy side as a way to address certain culturalization issues. We are doing some tests including giant insects as enemies, and so far I believe it feels pretty good gameplay-wise. We are still deciding what to do about this and the topic is far from decided, as we have reached out (yet again!) to our friends and contacts with experience in the subject to get their ideas. Expect more info about this in future updates.

There was a lot of work in preparation for the semi-public demo, the most interesting part of it was the addition of more complete dialogs for the intro characters, including a big deal of information on how to play the game, and tips for each one of the scenarios. I also disabled the scenarios which are not yet playable and streamlined the introduction tooltips.

On the character portraits side, a new “starter pack” was added for the female European characters, and we also included more variations for the Tqnda (male and female). I’m also figuring out a better way to handle the skin color variations, and for now, decided to disable the “dark” skin variants we had for the European male characters.

NovaMundi – Week 92 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want news to reach your email directly. Now, let’s go to the news! 

A Demo to be distributed between a close circle of playtesters is going to be released pretty soon. Hit me up if you are interested (so I can kick the algorithm to check if you belong to that close circle). As part of that, the “New Expedition” flow has been improved.

We also did some work in the “Tqnda” people portraits, using our previous portraits as reference, but adapting them to the new portrait style. Still a long way to go to generate enough variety but it’s a good start.

For gameplay changes, I worked on the “Sickness” aspect so your expedition members can get sick for traveling under bad weather or not camping properly. It will slowly remove their HP while they are with fever, and you can increase their odds of recovering by using medicine, either brought from Spain, foraged from the jungle, or acquired from the local population.

Added a first version of the Expedition Status screen where you can see the hit points and sickness level of all your expedition members. This needs to be integrated with the inventory screen so that using healing items is easier.

Finally, we added the “Focused Shoot” skill to the Hunter and Archer unit. It’s the first skill we add so we had to do a bit of work around the combat system; it allows the unit to launch a very strong attack at the expense of having to charge for some seconds.

Roguelike Celebration 2020

Crossposted to Temple of The Roguelike

On October 3 and 4 2020, the fifth iteration of the Roguelike Celebration happened online. Last year I missed it (flying Medellín to San Francisco is expensive!) but I had no excuse this year.

The biggest novelty of the event was the MUD-like platform created by Em Lazerwalker, who has been part of the organizer team for some years now. She describes it as a playful text-based online social chat space, a hybrid between communication apps like Slack and Discord and traditional text-based online game spaces such as MUDs and MOOs.

The main interaction window

The app was accessible via any decent web browser, and it integrated the different components of the online conference, including a virtual environment inspired by the physical spaces of previous years where you could move between rooms, pick up stuff, do fun stuff like dancing, and of course talk with the other people.

A map of the premises

The main sections of the event were the Theater, where the talks took place, the unconferencing lobby and rooms (6 of them) where people suggested and voted for topics and then were directed to Zoom conferences for live video chatting, and the showcase hall where different roguelike projects where on display. There were also lots of other rooms for socializing, and even a dance floor with cool music from the previous years and a bar where you could get the classic roguelikecel cocktails.

Having some polymorphic fun at the bar

The platform was also integrated with the almost non-stop video streaming, MCed by Alexei Pepers and Noah Swartz, and run in the background by Kawa. It included real-time high quality captioning made by Maggie of White Coat Captioning, and people could interact with the stream by posting questions or topics for discussion.

The main chunk of the event where the talks, of course, and this time there were a lot of them both full size and “lightning” (10 mins). following the same format as previous years (single track, two days), being online opened the possibility of having speakers from all around the world discussing a wide range of topics, from technical to more mundane.

The videos have yet to be posted in the Roguelike Celebration youtube channel, for now, you can find the raw streams there. The topics included game design, accessibility, a lot of procedural generation, community management, programming languages, roguelike history, and more.

Roguelike Wizard Darren Gray discussed What a Rogue is like, as his baby human quaffed a Potion of Tranquility.

Additionally, as in previous years, there was an interactive game (Help me Steal the Mona Lisa), where players could interact with the streamer, helping him hack devices to infiltrate museums and generate enough income for his character’s luxurious life.

Bundling some procedural generation elements, and a lot of “asymmetrical” cooperative multiplayer design, designed to increase engagement between streamers and viewers.

Finally, Noah (the creator of the event) announced this was his last year as part of the organizers’ team, as he has different requirements for his time these days. He shared how he had a hard time finding space and sponsors for the first event, and how now it has grown to have over 700 assistants. He’s leaving the organization of future versions of the events in the capable hands of the other organizers who have done a great job so far.

/me claps, many thanks to Noah for creating this fun event!

See you next year at Roguelike Celebration 2021!

NovaMundi – Week 91 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want news to reach your email directly. Now, let’s go to the news! 

Camping – The encampment setup window now only display items that can be assembled into the camp, and once selected they are “parked” in the camp, so you have to disband the camp if you want to establish a new one further inland. The idea with this is to encourage exploring around your camp instead of rushing inland, since making the camp will take some time, carrying tents around spends a lot of energy and resting without tents will increase the risks of sickness drastically, as well as reducing the rate of HP recovery.

On a related note, the Sleep and “Activities” windows have been separated again, since you will be able to perform activities (or rest for a bit) any time of the day without having to go sleep.

Exploration – I added a movement speed penalty proportional to the burden % of your expedition, so traveling with a lot of stuff will be take more time and resources. We are back to using “time compression” for both the overburden and the jungle movement, meaning traversing them should no longer be a frustrating boring hassle, while retaining the strategic impact in food consumption and fatigue increase (keep an eye on the counters and daytime speed!).

Also improved the ship “surfing” effect, adding some randomness to it and making the ship tilt to the sides as well, so it looks a bit more natural.

Added random encounter with wandering herbs merchant, which required some refactoring to be able to easily launch dialogs outside of towns. We are still in the process of creating the new portraits for the indigenous people.

Hunting – Added the distinction between combat and “hunting” mode, and made the units use “stealth” movement animations while hunting (if available), also now checking you are near deer before being able to try to hunt them.

Bartering – The barter screen has been fixed so that tooltips with the items info are displayed, and the food days and burden % are now also updated correctly based on the projected trade results, making barter much more useable.

NovaMundi – Week 90 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want news to reach your email directly. Now, let’s go to the news! 

We participated in Tokyo Game Show 2020 Online. As part of it there are 4 livestream videos including a first detailed gameplay, another gameplay featuring Camilo Ramirez, a project history and announcements and a “deep dive” gameplay. With our participation we collected a lot of feedback and already started working on it to make the game better.

As for the announcement, the most important thing is we now plan to release on Steam Early Access in January 2021. I feel this will help the project a lot, allowing us to get feedback from the players as to what features feel more fun and what we should focus on to improve.

As usual, this dev update focuses on the new cool stuff, but we also did lots of fixes, UX tweaks and content additions. I won’t go into detail on that to prevent spamming and spoiling, just mentioning it’s something we are always doing.

The way the expedition is displayed in the overworld was extended so you can now see a lot more of your people, horses and mules (that is, if you have a big expedition). They are now shown in a long line behind your leader unit, with horses and mules interspersed between them.

I decided to completely remove the food consumption in the oceanic voyage since I felt it didn’t make a lot of sense and was more of a nuisance than a strategic option. This went along with removing buying food in your hometown, which had been something we had from day one but it’s never too late.

Also, as a way to streamline the exploration, we are placing a town near the landing point, and making its location known in advance in the map. This prevent frustrating wandering around randomly, since you can set that town as your initial destination, interact with the native population and ask for directions from there.

There was also some work done in the interaction with the native population, limiting the number of directions they give to nearby discoveries, and making it feel like there is some kind of language barrier (so you are trying to interpret what they say, and only talk using key words and gestures). You can now also add the directions they give you to your journal, for future reference.

Deer are now spawned around “habitats”, from where they may run out if you hunt them down a lot; this also means the people in the towns will reference them when you ask about nearby animals. They also flee now once injured, and as evidenced in the gameplay stream there already a somewhat fun activity to do.

On the technical side, we worked again in the performance of the forest, trying different shader options. We still don’t have a solution here.

Portraits are now shown again in the inventory and transfer windows, we are going to be adding a new window to see the details of the units including their skills and traits.

Finally, we made it so that multiple tracks play while you are exploring, instead of having a single track looping. There are also moments of silence between music tracks now, where you can only hear the sound of nature.

NovaMundi – Week 89 Update

NovaMundi is coming to Steam Early 2021, remember to Wishlist it if you like what you see. We also have a Mailing list now, so make sure to subscribe to it as well, if you want news to reach your email directly. Now, let’s go to the news! 

First off some core gameplay / balancing changes; you now need 30 days worth of supplies for each oceanic voyage so players will have to plan more carefully when they want to sail the sea. Units are also much more expensive now, so party size will be around 10, and you now start with a mule and a horse, as well as a medium tent, which will be very useful for your adventure.

On the hunting facet, added simple AI for deer to run away once they detect nearby units, with some unit types, like the hunter, having a higher stealth stat and thus less likely to be noticed. Also added animations for the deer death, and for the special “tip toe” movement and attack while hunting. Finally, now you get some raw deer meat if you manage to hunt it.

For Camping, you can now select where you want to build your camp, instead of it being just placed at your current position. The items you select in the setup encampment window (tents, campfire) are now used and placed in the map too, and you can acquire them in the supplies store.

For the caverns, we did more tweaks in lighting, scaling the ranges of point lights to replicate the original vision of the artist. We also starting adding more content, with an abandoned camp (Who knows what fate fell upon the adventurer who uses to rest here). Also did some infrastructure work for placing the entrance to the caves in the overworld, but pending doing the actual placement in the procgen routine.

We added another layer of variations to the portraits, slowly building more variety. More of these are coming up, including the much needed pack for the women and the indigenous people. Also added some logic to match hair colors, and split the beard and mustache groups to allow full beards.

We also fixed issues in the river animations, but rivers are still disabled since we are pending the changes required for smooth riverbank geometry.

That’s it for Week 89, see you next week!

NovaMundi will be at Tokyo Game Show Online 2020

Thanks to Procolombia, NovaMundi is going to be present at Tokyo Game Show Online 2020!

As part of our program, we are going to be streaming the latest developments of NovaMundi in our Twitch Channel, and listening to your comments and suggestions! Following is the Streaming Schedule:

Japan TimePacific TimeColombia Time
Sept. 24, 10 AMSept. 23, 6 PMSept. 23, 8 PM
Sept. 25, 10 AMSept. 24, 6 PMSept. 24, 8 PM
Sept. 26, 10 AMSept. 25, 6 PMSept. 25, 8 PM
Sept. 27, 10 AMSept. 26, 6 PMSept. 26, 8 PM

See you there!

404 Rhythm Not Found – js13k 2020

Js13kGames is a JavaScript coding competition for JavaScript Game Developers. The fun part of the compo is the file size limit set to 13 kilobytes. The competition started on 13th August and ended on 13th September 2020. The theme for 2020 was 404.

I managed to participate in the competition for the fourth time in a row, this year I teamed up with an elite team of game jammers and friends: agar3s, mapedorr and QuietGecko. We ended up creating a robot dancing game. You can play online here. Source code is here. There’s also a gameplay video.

The Story

This year I had two goals in mind: First off, I wanted to do something using a palette based sprite renderer, so that I could create a visually rich game under the size limit. The basic idea is, instead of drawing image files directly, have image data encoded to a more optimal (and lightweight) format and then using that data to manipulate what is displayed in the end (more details below).

The other thing I had clear was I was not going to jump on it alone; I had been talking with agar3s the months prior to the competition, entertaining the idea of joining forces for this year. Once the compo had begun we started brainstorming ideas and technical aspects and decided it would be nice to have a good pixel artist on board in order to make the best use of all the technical stuff we were doing under the hood, so we invited Mr. Mateo Robayo to join. He was a bit hesitant at first since it seems he didn’t enjoy his previous js13k participation a lot, but since this time he’d focus on the pixel art, he accepted to join.

As the first days passed, we considered doing some kind of action “roguelite” (ugh) with a robot exploring an abandoned factory looking for the correct URL, but as Mateo started coming up with art for the robots, and I implemented a basic “idle” animation with the parts we had, I thought it would be great to have a dancing game. We invited sound and music artist QuietGecko (with whom I’ve done a lot of work in NovaMundi and Emerald Woods), to create some cool tracks and SFX for the robots to dance.

In reality, I had a secret plan to have these 3 guys work back in a game together, but that’s not the kind of things you mention in a blog post.

I was able to do most of my contributions during the first week, luckily the guys were there to push through including the final days which required some big effort to close the scope, integrate everything and deliver an exceptional entry IMO.

The Sprite Renderer

There are many components on this entry, but my main contributions in the coding side I believe were aligned to what I was pursuing with my participation; I’ve always wanted to do a NES or GB emulator, this comes from back when I used to do some simple sprite ROM hacking, and reading about how graphics work in these kind of consoles. js13k seems like a perfect opportunity to use similar techniques for displaying visually rich content using as little storage as possible, and I bet I’m not the first one to think so, but I had never jumped into doing it.

So, with the fundamentals of the idea on my head, I jumped into it and together with agar3s we were able to put it together working great, this a summary of how it works (not that it’s something ground breaking, but I figure someone might find it interesting).

I aimed to support indexed 8 colors sprites, so we had each pixel take up 3 bits, and thus the entire pixel data (128×112 pixels) would fit about 5KB before any encoding or compression. We used a PNG file as the source of image data, thus allowing Mateo to work in whatever tool he wanted (I believe Aseprite is his weapon of choice); this file is then processed by a nodejs script which reads the image data into an array of bytes, encodes the array and exports it to a JS file used by the game.

Encoding the byte array was a bit tricky; my initial ideas worked but the string representations I was able to create ended up using special characters which wound up taking 2 bytes instead of one; as I thought on some workarounds for this, to restrict the symbols to safe 1 byte printable ASCII, we also did some research and ended up following xem’s latin-1 string trick.

On runtime, this data is decoded by the game, and then the renderer displays a sprite by crossing the data from a given palette of RGB values and the index defined in the sprite, thus allowing 24bit color depth display, without having to store the color data for each pixel.

In order for this to perform well, however, the pixels should be rendered “offscreen” using an image data buffer and writing to its pixel data directly, and then putting the entire image data on every frame.

Besides potential savings in storage space, this also allowed us to use palette animation effects (Mateo seems to have had a lot of fun with this) and to include variety in the game.

Ultimately, my contributions to this were mostly infrastructure work; the rest of the team did a great job extending and actually applying it into the game!

Soundworks

This being a dancing game, music and sound effects were bound to have an important part on it. As QuietGecko joined he struggled a lot first with the tools, trying out different trackers trying to make the JS conversion plugins work.

All I could do was recommending using Soundbox, the tool I used for my past two entries which worked great to me; however, everything changed when Keith Clark, the author of ZzFXM, released the beta version of ZzFXM Tracker. Everything worked perfectly from there, and as a plus, the code that was exported made a lot of sense and was much easier to work with.

I’m not sure what happened during the final hours, but in the end we had great SFX too. But you cannot expect less from the QuietGecko.

In his own words:

Having to convert .mod files to .js and translating synths was very difficult until Keith Clark released his tracker, although I experimented creating synths using his sfx creator and it ended up being very helpful. Also, having the issues with the instruments was a bit frustrating at first but it gave me a chance to try different trackers and strengthen the composing muscle which was useful when the time to rush came.

Additionally, having to use 64 note sequences seemed to be a bit too constraining, I wanted to test smaller sequences so we could have a procedural approach but it would be something to revisit next time.

I like that we ended up having a cohesive retro style sound even though I wished to have it more balanced mix wise. I really liked it. I would also have wanted to have a way to teach or suggest rhythm or patterns to players other than beat subdivision.

QuietGecko, September 2020

Discarded Gameplay Ideas

As I mentioned, I could not contribute a lot of code after the first week… besides being stuck with a lot of work in other projects, I also felt kind of stalled regarding the game. In spite of being the one who proposed we went that route, I had never made a rhythm game, and I didn’t think I could contribute a lot to the design so in a way I decided to see what the rest of the team could come up with.

However, one of the things I experimented with after seeing how the game was evolving, was making it so that instead of pressing sequences of random (but varied) letters, you had to do some patterns that would be translated into special moves into the game and give you bonus points. The idea was you would find out about these moves from your opponents, and would replicate them using your individual robot-part movements.

While it technically worked, it was pretty hard! almost impossible as the BPM went up. So we decided not to integrate it in the end, may be it could work for a different kind of robot dancing game.

What Went Right?

Teamwork worked great but this was no coincidence. We are no strangers to game jams and we have worked together in many projects, so everybody knew how to contribute and we also let the project evolve organically with all our ideas. Again, it was great to know the project was going to be completed because the guys were serious about taking it to the finish line.

Besides making the pixel art for the game, Mateo ended up coding a lot of the GUI, as well as the palette animations. I already mentioned QuietGecko’s contributions, and agar3s…. well, let’s say besides contributing a lot of build, tooling and engine infrastructure, he made sure everything worked together and extended the engine towards what we needed. I hope he manages to write down his experience so I can link it here.

What Went Wrong?

Now, if we evaluate the end result, maybe we didn’t really integrate the 404 theme a lot into the game; it ended up being a shallow aspect, when you miss a beat you get the 404, if you don’t find your rhythm, you fail.

Onboarding was also not great, I didn’t like the key layout a lot (D, F, J, K ?), but I was told that’s what people uses nowadays especially on laptops. How the bonus mechanics work inside the game is also not very explicit, but on the other hand it can be deduced after some game play so I don’t think it’s a big deal (as it was in Lost in Asterion).

Overall, one could think if we had a clearer vision of the game design from the beginning, we could have integrated the theme better, and polished the mechanics, but I actually feel the journey of exploring different gameplay ideas was a good experience, and was in a way more fun and exciting than just following a set plan.

The Future

This is one of these rare jam entries for which I don’t feel there needs to be any further development; not that it’s a perfect game, but I believe it’s just as good as it should be for a js13k entry (If anything, we could add support for mobile, and that would not be a big deal).