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!


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).

NovaMundi – Week 88 update

Reminders! 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 are doing tests for a new style of the character portraits, with our first concern being the proportions of the characters and the shading and line style. It’s been a lot of debate inside the dev team as we have been seeing the old ones for too long, so we may be biased for the novelty. But I believe we are heading in the right direction. We are going to be introducing more variety on skin colors and anatomy the upcoming weeks.

Some big work in the camping facet as we introduced two new flows. The first one is the “Setup Encampment” flow, for the player to decide what elements his camp will have (as setting up tents and fireplaces takes some time). This is coupled with two additional changes, the removal of the “Camp” command so you’ll always have to set one up or camp on an existing one if you want to rest well, and the re-introduction of “fainting” so your party will crash at 1AM if you don’t camp adequately, meaning they won’t recover their energies for next day.

The second flow is the “Camp activities”, that is, things your party can do while on the camp and before going to sleep. These will include cooking, adding map sketches into the definitive map, drawing illustrations for discoveries, playing and chatting with other expedition members, healing other members, etc. You cannot do any of these if you don’t camp properly. (All these things are pending being implemented of course)

The “Barter” window got a long-needed update/redesign, now using the new window assets and with it’s entire layout remade. Functionally it remains the same. Note that we are still using the previous portrait style here.

The cave fragments were also updated to make them feel more “rugged” as well as being populated with crystals, mushrooms, stalactites and stalagmites. We also tweaked the range of the point lights to make sure lighting was fine and didn’t conflict between fragments.

We also tweaked the walk animation for units to both sync them when there are multiple models in a unit (for example the mounted units), as well as changing the playback speed to match the movement speed, and using blend trees for smoother transitions.

Some other misc changes included:

  • Duplicating the length of the day, so you have more play time before going to camp.
  • Allowing resting while sailing, which is a slightly different flow than camping in land
  • Update unit displayed in the overworld when expedition members die because of starvation or exploration events.

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

NovaMundi – Week 87 update

Another week of awesome progress. Remember to wishlist the game on Steam, if you haven’t done it already!

Pack Mules (new model) and unmounted horses are now shown as part of the Expedition in the overworld and follow you around.

More work in hunting, click on deer to transition to a hunting scene. This came along with the addition of two new Units: Archer and Hunter. Both have ranged bow attacks, but the Hunter specializes in stealthy taking down prey, while the archer is more of a military unit (weaker attack than arquebusiers, but longer range and more sturdy). The hunting game will be elaborated in next weeks.

Connecting with the previous work in “zoomed locations”, we are working on adding caves you can explore. We put a system in place to assemble them from different pre-made fragments, and worked on the visual aspect they will have (it’s still WIP)

We are in the process of updating the entire UI to make it a bit simpler, cooler, and with a unified style. We experimented with this in the layout for the “Event” popup. We are also working on extending the in-game events and added simple “Shared story” events increasing friendship between expedition members. We are adding more of these kinds of events, as well as simulating the lifetime of the expedition members since your relationship with them will be a big part of the expedition experience, as you embark on a journey to discover the secrets they treasure deep inside their hearts.

The player character is also now “Anonymous”; its portrait is no longer displayed in conversations nor barter, and you can no longer enter their name, so it’s up to you what to make of it (Maybe it’s you? It can be anything you want!). Related to this, characters you are speaking to now look into the screen (again). Also, completing quests now prompts conversations in hometown.

Some other relevant stuff:

  • Gold veins are disabled as the “mining” facet is being phased out of the initial scenarios.
  • You can now sacrifice livestock for raw meat if you want.
  • You can now return to the Tqnda hometown to restock or complete missions (for the Tqnda sponsor scenarios).

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

NovaMundi – Week 86 Update

We created new models for horses and are in the process of integrating them, for now we have done a basic integration with the explorer unit, but we are planning to integrate the variations in color as well as the animation of “mounting” the horse (right now it just changes immediately), as well as having a smarter way to display the different units as mounted when they change movement mode (and also having them drag the horses when not mounting them).

Supplies are now organized in lots with “expiry days”, and get closer to expiring every day. This also affects the supplies consumption and forecast, to use the lots closer to expiring in order to maximize the available inventory.

We are also now displaying a tool-tip with info about the items when hovering them in the inventory or the many other places where items show up. The “camp” window was also simplified and the option to rename them was removed since they are meant to be temporary things (the Emerald Jungle doesn’t welcome you as a settler).

Talking about items, you can now apply bandages and healing items to the different units; their effect is not immediate, instead they boost the normal recovery process that happens especially when units are resting (so you can wrap a bandage around a wounded unit and go to sleep, and he’ll be much better next day).

More work in the “Zoomed Exploration”, actually linking it to the overworld objects, as well as finishing a first phase of the “Capture Evil Person” type of mission, you can now complete it by finding the hideout and engaging in battle with the hostile party.

Finally, I also did some work in the Tqnda scenarios to actually allow getting supplies for the expedition, using Emeralds instead of Gold.