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

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.

NovaMundi – Week 85 Update

On the “wildlife” front, we added deer into the world. They pop up, move around, idle and graze, and then fade out. We are working in the interactions with them (first one will be being able to hunt them). We also added more variety of parrots (red and green).

Responding to feedback from tired explorers, the European encampments are now equipped with bigger, more comfortable tents for the members of the expedition.

We are gradually adding procedural lakes into the world; we are now creating the surface of the lake and placing small ones (which look more like pools) in the world. I toyed around with the idea of simulating rainfall to define their shape and placement but quickly found out it won’t work for us unless we implement an erosion model. Instead, I’m going with the idea of merging heightmaps so we have better control of their placement and appearance.

We are now using particle effects for rainy weather so that the field of view reduction makes more sense to the player. Still need some tweaks to differentiate them from the normal “mist” caused by cold weather in high altitudes.

A big chunk of work was put on the “zoomed” exploration, you can now walk around our test temple ruins, grab stuff and return to the overworld. We are going to add more of these locations (mainly caverns), where you will be able to find remnants from other expeditions.

We are adding usable items including medicine, bandages, and medicinal plants (which you can now find and pick from the world). Next version we are going to implement their effects on the party members.

The Discovery Journal is now filled with entries based on the events that happen on the expedition in addition to the discoveries that are made. It still needs some improvements for a more fluid layout but it’s a good step forward.

Finally, the Tqnda campaigns now start on their own hometown, where the player can setup their expedition. It still needs a proper artwork (as well as the journey to the Emerald Jungle).

That’s it for Week 85! Please remember to follow us on Steam, and add the game to your wish list if you like it.

NovaMundi – Week 84 Dev Update

This week, we worked in the entire flow to select scenario and sponsor, and give them different starting quests, items and starting location. This also included a new screen for “Land Selection”, dreaming on a future where we could provide more worlds to explore in addition to The Emerald Jungle.

On the content side, we focused on adding more content for the “Tqnda” scenarios including two units (Explorer and Warrior) and models for their exploration camp.

Tqnda is a fictional culture inspired by the Muisca. When playing with them your group will move quicker through the jungle and will have an increased chance of foraging medicinal plants and bonus to their effects.

We also did a lot of internal work in order to be able to create the new “Inventory” popup, from where you will be able to use items.

Some other smaller changes included allow using Ctrl to extend selection of units in the “combat” mode, this is in preparation for the “Zoomed Exploration” mode (that’s the way you’ll be able to explore caves, temples, and other cool places). There were also some minor fixes in the procedural portrait composition to make hair color match beard and eyebrows.

Another big, non technical change, was re-categorizing the game as a Survival Adventure game instead of “Strategy”, after lots of debate within the team we believe this more clearly reflects its style of gameplay.

That’s it for Week 84! Please remember to follow us on Steam, and add the game to your wish list if you like it.

NovaMundi – Week 83 Dev Update

Since I intend to recover the rhythm of weekly updates, I tried to get a measure of how many weeks we’ve been working on the project. I’m using November 5, 2018, as the start date of the project on its current incarnation, and removing about 8 weeks to account for times when we were not fully working in the project (because we had to switch to client work, mainly). The project has changed so much all this time… it’s been a huge labor of exploration on different themes and gameplay mechanics.

So, welcome to the development update for week #83. Here we go!

Overworld visuals

overworld1

Quite a bit of work here including the addition of the first wildlife (butterflies, fireflies, and parrots) as well as palm trees (planted both at the beach and in palm forests in the coast) and three new types of trees for the jungles, bigger than the other and with a different, more isolated placement. We also tweaked the beach textures for them to not reflect as much light.

Also, we added a new model for the European “explorer” unit, adapting the design we had to the more “bulky” style of the other units.

overworld2

We also created models for progressive constructions of outpost buildings, although these are pending integration.

Scenarios

I laid out some foundation design for three scenarios, each one placed on a different era of the land (“First men of the Land”, “Great Highland Nations” and “Visitors from beyond”). I want to highlight that The Land is the protagonist of the game, and each scenario will provide a different core mechanic around it. More info to come soon, but for now want to confirm that the scenarios with European-inspired explorers will not include settling into the land, just exploring around and completing specific missions.

On a related note, I also removed ambushes by indigenous populators, so now there is no possible combat between Europe-inspired cultures and established nations of the land in the “Visitors from beyond” scenario.

We created logos for 6 different sponsors for two of these scenarios, each one will provide different starting conditions and quests.

sponsors

User Interface

The biggest change here was the addition of tooltips with detailed descriptions for commands and status area, which really helps with onboarding. We also integrated the icons for the movement mode change and the clear climate indicator for the night, and tweaked the description of some quests.

Exploration & Discoveries

We tweaked Field of View bonuses and integrated the exploration range for mapping and main camera, and also added a new discovery image (Eagle).

Character Interaction

Some visual fixes in the eye direction on character portraits (so they stare each other) and in the composition where we had some issues with overlapping facial hair.

NovaMundi – July 2020 Dev Report

Alright.

It’s been three months since the last update. And many things have happened… but before delving into the dev update, some general announcements.

First off, the name of the game is now NovaMundi. Expedition is now the underlying engine (players will likely never know about it). We did some heavy branding work for it, as you can see on the new website.

We are also now in Steam, where players can now wishlist us! we created a brand new trailer to launch there (Soundworks by QuietGecko and voice by Nash Makado), as well as a pretty detailed gameplay video (which went quite well for not having any script, except there was no combat).

It’s hard to make an interesting 3 months changelog, so I’ll focus on the more visible aspects (but of course there was a lot more work in tweaking and fixing stuff under the hood).

Overworld Visuals

We improved the display of shorelines with a better transition to grass and undersea terrain.

shot1

After many iterations, we are back to displaying the full party in the overworld, which I think looks great! You can also now rotate the camera by dragging with the mouse, making full mouse control much better.

We added back the fog effect with some special controls so that it’s only triggered up in the mountains and doesn’t conflict with the sea.

As usual, lots of work with lights and postprocessing, including some important fixes with the rotating Sun and Moon’ lights to prevent objects from being lit from below, and more tweaks to make nights look good (not too dark, blue instead).

Another big thing we restored was the dynamic zoom for the field of view, getting rid of the vignette effect in favor of this to avoid wasting a lot of screen space. This will come with challenges to make sure things look good at different zoom levels but we are up for it.

shot3

We also worked on trying to add more variety to the terrain including some efforts to add grass objects (so far no good results and we had to pull them back, mainly because billboards not working well with our tilted perspective) as well as adding color variations to the trees (but we ran into some issues to make it work with our current tree models)

Interaction with the Natives

Native towns are now populated with a chieftain, who shares info about the culture of the settlement, as well as nearby animal species, plants, and tribes. You can also initiate barter with the chieftain, whose inventory stocks daily based on the production values of the town.  Offers are now evaluated based on the perceived value of the items and an expected trade margin.

shot4

We also redesigned the “dialog” interface, it’s no longer a floating popup but it’s anchored to the bottom of the screen, and the portraits are bigger. More “fragments” for native populators were integrated and we fixed them so they would look to the front.

Camping

The camping visuals were improved for both the dialog and the actual display of the expedition camping (instead of the full fade to black). Forced camping was also removed so it’s up to you if you’ll drag around your tired companions for days and nights.

Combat

AI was improved to attack back when attacked (instead of just standing there), and we fixed pathfinding, making battles flow much better.

UI was also improved by showing a panel with the summary of units when multiple units are selected and allowing selecting all units of the same type by double-clicking.

We also created a visual effect for the arquebusier firing and integrated the corresponding sound effect.

Mounts

You can now mount horses (need one for each expedition member), increasing your movement speed in plains. We are still working on the visual model for it (using a placeholder for now).

Cartographer

The map is now shown full screen and you can zoom and pan it. We also did a complete redesign of it, changing how forests, mountains, settlements, land and sea are portrayed. This also including drawing a border around the discovered area instead of relying on color contrast.

screen3

Mining

Added back gold veins and the ability to create mining camps, adapting them to the latest changes in settlements (so you can transfer people and food into them). They now generate gold based on the number of workers until they deplete.

Outposts

Outposts now consume and produce food, and heal units stationed on them. Also added a new visual model for the outpost.

shot6

Transfer Items

The “Transfer Items” window was completely revamped on its appearance. We also added buttons to transfer all items from one side to the other, and only display the categories for which there are items,

shot5

We also now display the reason why you cannot close the window some times.

Discoveries

The appearance of the Discovery Journal was also overhauled, we even made an animated 3D model for it but decided not to integrate it yet.

We added discoveries when entering a native town or the temple ruins, and started adding their definitive visual representations. So far we have 3 different animal species and 2 places.

journal

Discoveries are now integrated into the “Events” flow too, so you can discover animals from events such as attacks in the jungle.

We also added quests with rewards for discovering part of the map or reaching a number of discovery stars.

Saving and Loading

We did one first big push for game persistence, including starting a cleanup of our objects’ structure to make them serializable and allowing saving and restoring their state.

World Generation

Settlements and natural resources are now placed in a more smart way; valued stuff is now more likely to be placed high in the mountains (away from the landing point) so that there’s more incentive for the player to explore. Likewise, dangerous stuff is put in the middle so that you are not killed immediately as you make landfall.

We also added three new kinds of native settlements into the world: Advanced cultures with stone buildings, Nomads with round tents, and Farming people with wooden houses. This included adding a “capital” type of town as well as a smaller town for each.

Exploration

We changed how the “Temple Ruins” work, removing the battle (for now) and streamlining the menu-based exploration, and integrating its music track.

Exploration radius is based on the explorers you have in your party (however we are still working on tying everything together so that it also applies to the main map window (maybe))

We added random events when exploring (Sickness, Accident and Animal Attack), and also are experimenting on when to show them.

shot2

Items and Units

Naval units such as Sailors, Officers, and Ship Captains have been removed for now, since we need to improve the sailing facet for them to have a reason to exists. We also added Mules that you can use as pack animals and balanced the cost and weight of the trade goods.

We expanded the source of names and last names for Spanish units, using this as a reference.

Onboarding

Reactivated the helper character in the home town, extending it so that it provides tips and information about the different units and items