NovaMundi is now available on Steam Early Access! get it now or wishlist it if you like what you see.
Up to v0.24.2
With the English and Spanish bundles unified, and a lot of hardcoded English text (including procedural text) bundled, we finally released the Spanish version.
The reorganization will also allow new languages to be added more easily, although there is a lot of clean-up to be done since we are carrying a lot of old text from the previous scenarios and gameplay modes.
Some minor tweaks were done, like changing fog color to a blueish hue which overall reduced the scene temperature making it feel a bit more highland-ish. We still need to tackle this head-on with less grassy lands, more rocks, and more accurate vegetation (we are on it).
The Low-Quality modes also got some need changes with a more apt texture for the forests and fixes for the water to look ok. More optimizations are still needed to make the game playable with lower specs.
We spread the “informational” townspeople through many towns instead of having them all live in Ramiriquí, which was overwhelming to some players. We are still pending marking them as “informational” for easier navigation (especially when you arrive at a new town).
The conversation window was updated with a bigger portrait and a darker background for better contrast. Also added a notification for when party members are healing (so you know the bandages are actually doing something), and shortened the onboarding removing unnecessary, redundant, shallow, cursory parts.
We also updated the “Barter” UI to the new design.
We still need to put more love on this but at least for now we tweaked some values in the materials and adjusted the lighting of the combat scene so it looks a bit better now in conjunction with the bigger camera angle.
Ending May 2, with 0.25.0 in the works
Added a much-needed formation in “rows”, with the stronger defense units at the front, and the ranged and non-combat units at the back, and also increased the space between the parties to allow some initial flanking strategy.
Also updated the Guecha Warrior model to get up to date with the latest units visuals, it features both an exploration (covered for the cold) and a combat mode.
The addition of a new biome, Wetlands (Humedales de la sabana) required a big chunk of changes in the procedural generator for better handling of the biomes which also affected the placement of forests in blobs.
A biome Indicator was also added, however, it hadn’t been integrated yet, since we needed still to relayout the UI with the new upcoming horizontal compass bar. (coming out in 0.25.0)
Display party members when trading to avoid confusion (I saw in some gameplays, and the onboarding kind of implied, that you started with an empty party and had to hire it from scratch, but that’s not really the case.
Also improved the loading screen with localized text and to make it more easily extensible with new unit types.
NovaMundi is now available on Steam Early Access! get it now or wishlist it if you like what you see.
Week 111 a.k.a. the last week before Early Access, ended with the (internal) release of v0.22.7. Of course, I had to prioritize what would provide the highest impact for the release.
To provide more variety, I finished the integration of the “Páramo” biome (Andean Tundra, which is very important to our game’s setting) including its terrain and vegetation (frailejones), and removing towns from there (it’s cold out there!).
A little bit downhill from them, I added more mountain peaks to the highlands band, placing them in clumps to improve their variety. The rendering of grass terrains was also improved, tweaking the metallicness of its textures which was making them look dull, adding more variations, smaller patches, and tweaking its tiling values. I also fixed some bugs in the heightmap generation which were causing ugly spikes of terrain.
Persistence – Save/Load
Of course, I wanted this to work great in our E.A. release, judging from recent experiences some friends had. It was already working great but I had to add the following stuff to the persistence list:
Active items effects
Minimap stamps (i.e. the locations of towns)
Of course, all of these things required refactoring of some sort, but they were a must to allow the players to split their runs into sessions since a run can currently take about 2 hours.
A much-needed “intro sequence” was added. I designed the script based on the overall backstory we had in mind, and we recreated it as a sequence of “stonewall paintings”. It was quite a bit of work but I think it was worth it for people to get an idea of the theme of the game (a text window is just not enough) especially since the theme may not be familiar to some.
I also integrated the portrait of Nompanim, the Iraca, and fixed some dialogs.
I added a lot more random chatter from the party members to make the walking sections a bit more interesting. This also included adding (and serializing) a control so they don’t repeat phrases, which may be super dull. This still needs a lot of work to work properly within a context, follow some character or story development, and provide some variety in the text, but I wanted to have an initial version in to see how it feels and if it makes sense to continue developing it.
To prevent a game-breaking bug I noticed in an Early Access Preview run, I had to disable the possibility to Transfer men and equipment to the camps. I’m still deciding if it makes sense to put it back, gameplay-wise.
Visual tweaks in Expedition Status (health bars, remove unneeded stuff, highlight important) and Unit detail panel (in combat), adding HP value and stats.
Based on some reports of low performance, I added two experimental Quality Levels with “no trees” and “no shadows”. We are still investigating what parts we should focus on to improve performance, but the game should already run well in gaming machines which is our main target.
Week 112 – Before Early Access Release
Our release was scheduled for April 13 (Tuesday) at 11 AM EST, so naturally, there were some last-minute, much-needed things, the top-most top priority. E.A. release was v0.23.0 (first public release!)
The journal entry UI was still leftover from the previous appearance of the game and was long overdue to be changed. I updated it to the latest design, improved its readability, fixed some word-wrapping issues, and added an initial entry so it doesn’t look completely empty when you start.
Based on both my playthroughs and some others made by testers, I did some tweaks in the unit stats, nerfing the range of all ranged attack units (especially the Muisca Archers, which were extremely overpowered), and balancing the rate of appearance of the Panche Raider when compared to the blowgunner. I also added the “Panche” Archer (that is, the possibility of Muisca Archers to appear in Panche parties since they belong to the same technology group).
I also removed the random variation of stats per unit (so for example all Guardians will have the same stats, so you don’t have to go cherry-picking), and changed the damage function to be much less random (so high Attack units like the arquebusier are much more dangerous now!)
Forest size was also reduced (but not enough, as we’ll see later on!)
Week 112 – After E.A.
Besides bug fixing (many thanks to the people reporting bugs!), we produced four subsequent builds, ending up in 0.24.0
Drastically reduced forest coverage, based on player’s feedback this was a top priority due to the terrain being almost completely covered by forest previously, leaving little room for strategy when exploring (deep forests/jungles are dangerous places where you get lost easily, the player should think twice before delving into them)
Add lakes both big lakes and at the tips of the rivers.
Also increased the size of the “Páramo” areas, although they are still too small and will require some changes in the future to spread beyond their “height bands”.
Add language selection to settings, and did all the changes required for localizable texts to be dynamic. Tested this with the incomplete Spanish localization bundle, and then decided to push a bit to see how much it would be required to complete it. I managed to advance a lot but then found out some additional work would be needed especially for the procedurally generated dialog (not that it’s super complex procgen but still…).
For the moment, I disabled it but since we are having a lot of people interested in my home country (Colombia…bia…bia!) this will come in pretty soon!
Added controls to set the volume for Music, Ambient, and Sound Effects, both from the title screen and also in-game.
We incorporated a new title screen, in the future we want it to be rendered in real-time with animations and reacting to the time of the day; but for now, I decided to just put a pre-rendered scene due to performance concerns.
We also did a lot of tweaks in the lighting of the intro scene, added some flickering, fixed some gaps in the texture of the walls, and added the images of some unit types to the loading screen
The appearance of the automap was revamped to fit the theme of the Muisca, it now resembles a stone wall painting, with improved, more readable labels for the town names.
I also removed the “encampment plans” flow when camping, so you no longer have to pick a spot and what tents to use, it’s much quicker now.
NovaMundi is coming to Steam Early Access NEXT WEEK! remember to Wishlist it if you like what you see.
We sent the Early Announcement (April 13), this was followed up by more tweaks in visuals for the build which was now accessible to press and influencers, as well as critical fixes and visual improvements in the FTUE.
Another thing I worked on was the Caverns, which we had neglected a little bit. The idea with the caves is them serving as interesting places you can explore from the overworld, to find treasure but also meet with danger. I am planning to populate them with some entities based on Muisca lore (research in progress which, so far, seems to indicate we’ll have to fill a lot of gaps), thus departing a bit from the historical setting and into the mythological.
I enabled them back and reworked the lighting as well as made it so that you explore them with a single explorer for now. In there you will find “Blessings” you can use to improve your units in combat. This needs further development to add dangers to them as well as different rewards (or none!), but for now, you can at least explore them from the overworld, including persisting their state on save/load.
I worked in the quests so that the game is actually winnable (including displaying a placeholder Victory screen!). This was something that was needed now that the build was out of the wild (who knows if a fierce Let’s Player decided to go all in and try to win the game 😀 ).
Back into procgen, I worked in the placement and size of the trees in the forests, making them bigger and more special as you went into the depths of them, and improving their spacing.
Finally, I started working in the more detailed biome handling for the terrain and vegetation, including the integration of the páramo (Alpine Tundra). This is still WIP but at least the map is now partitioned in biomes which will make it easier to create different themed areas (as well as integrate the upcoming Wetlands biome). In the process, I had to tackle an ugly bug that prompted me to create the procgen map visualizer tool, which will be helpful for future development (river placement looks horrible here, I know).
I’ve neglected the blog for a bit! here’s a quick update on the work we did the past three weeks (Ending March 21). The 7DRL Challenge and its aftermath of course affected dev, but OTOH the impending Early Access release pushed things the other direction!
Anyways, here we go!
We started work in the “villagers” looking forward to adding some life to the world, initially did some tests with a furnace and a guy doing metalworks. I was a bit afraid of doing this since it would detract from the idea of the overworld being an abstract representation of the cities (adding people into it takes it one step in the direction of it being a single scale representation, which I don’t like much). So I needed to test how it looked before digging into adding more types of villagers.
I decided it looked nice and one could think of it as an animated diorama of the village, so I greenlit the creation of new types of them to make the world feel more alive.
We integrated the new model for the Panche Raider (so far we were just using a recolor of the guecha warrior). The concept was more of a battle-worn jungle warrior wearing a wooden shield and a cudgel.
We also worked on some UI redesign, especially for the “Expedition Status” and the “Trade” modals. And updated the Muisca “compass” to mark the cardinal directions more clearly.
Finally, added a bit more control on the logic to check for encounters, to reduce its randomness (preventing full days of no battles followed by a day with 10 battles).
Was the 7DRL Challenge week, so there wasn’t a lot of coding work. However, we created new textures for the grass to feel less plain (still pending integration) and started work on a new piece of cover art.
There was a lot of work done here in preparation for our Early Access announcement and campaign, including integrating some of the UI redesigns and doing some priority fixes to ensure the quality of the Early Access Preview built to be sent to press and influencers.
The new cover art was finished and we even did an animation for it and integrated it into the trailer. Besides, the actual work of editing the trailer was a big chunk of work too, but it ended up great and now shares a bit of the gameplay (which is easier now that I feel more sure about it). More info about that in the next post!
Another year another 7DRL. With 17 years into it, Mr. Jeff Lait (the only other human developer to have participated in all of the challenges) has pointed out to me that I have been participating in the 7DRL Challenge for over half of my life now. Cool.
Following is a summary of the journey, which I detailed in daily posts in the new 7DRL Challenge Community blog (which sadly went underutilized due to underpromotion and the preeminence of other channels such as Reddit, Discord, and the boards at Itch). 1, 2, 3, 4, 5, 6, and 7.
This year was weird. I had pretty solid plans about 3 weeks in advance. Wanted to make the most out of it for the development of the ExpeditionX engine, exploit a lot of unused assets we created but are now not that useful anymore for NovaMundi, and build the foundations of a potential future commercial game (because who can afford to WASTE 7 days of development these times! :P)
All that went to the trash can when I recalled 7DRLs must be Free in spirit (and in the past, some people have tried to exploit the challenge commercially, with ugly results), and producing a free game reusing NovaMundi’s underlying engine might affect its upcoming Early Access release. Also, it was looking kinda scary from the scope point of view.
So, I began randomly exploring what to do. During the first two days of the 9 days time window of the challenge, I tried to come up with something that would be doable, interesting, and fun to work on. I toyed around with creating a spectator-sport, a battle arena with AI enemies using roguenet‘s infrastructure, where players could follow the development of gladiatorial leagues, and witness grand events. I was about to go for it but again decided to scrap it due to scope. I’m thinking on maybe doing this for procjam this year.
Then, I thought about doing something similar to my last year’s, Emerald Woods, which was more of an experience backed by the power of ASCII Unicode (and awesome sound effects). For this one I thought I would recreate the feeling of being alone, we all want to be alone sometimes and play some games. I don’t play games anymore.
After all the stress of trying to set a course for the project, I decided to chill out and just see where it would take me. I worked on setting the theme for the game, which kind of held until the end. You start at your home, and it’s raining. You can use your computer to play games, or connect to roguenet, or watch random videos in your room (adapted from the 7DRL theme generator words bank and idea by Evgenii Petrov). Sadly I didn’t manage to allow the player to brew coffee (dammit, that would have been a cool 2 minutes addition).
I also set myself on the visuals. I decided to use a strict ASCII 80×25 monochrome mode, similar to what I did for Rogue Program, including using an IBM VGA look-alike font with a green color emulating P1 phosphor from early monochrome monitors. The reasons for this were I think it looked pretty cool in Rogue Program, taking me back to the first games I played, and I also thought it would give the game a distinct visual style, and would allow me to fully exploit the possibilities of ASCII to represent full-blown environments using the power of imagination.
Then I started thinking, what is the actual game that the player’s character is going to be able to play from within the game? the first idea that crossed my mind was doing SpelunkyRL, an idea I shared with Derek Yu when I met him in San Francisco in 2017. What if Spelunky was a REAL roguelike? (wink-wink) I recall he told me he didn’t think it would work (he’s most probably right).
Alongside, I started toying with the idea of a somewhat “surreal” experience, where the game and the real-life would mix, and you would no longer know what was reality. The idea was you would wound up back at home from within the game, kind of like a parallel dimension or a dark/flip side. That part didn’t hold until the end, since I figured it would require a lot of design to make it feel right, and it would spike the scope of the 7DRL again.
I managed to advance a bit in SpelunkyRL, even doing an initial version of a level generator based on Spelunky’s legendarily simple 4×4 generator but adapted to a top-down perspective. For some reason, it didn’t click on me… again feeling that 7 days was not enough to do it justice (maybe it’s the zillion of previous half-baked attempts at stuff have finally helped a bit).
So, I found myself against without a direction. I taped again at my head for stuff I had done for previous years which was cool but for some reason didn’t end up fun. I decided to integrate and adapt the Stygian Abyss level generator (tweaking it for the fixed screen 80×22 levels and the monochrome visuals of the game). One of the big things I missed from our Stygian Abyss 2015 7DRL entry was an auto-map or better means to prevent people from getting lost; the combination of the overhead view and the fixed-screen levels seems to work great for that (perhaps centering a game around the notion of how easy it is to get lost isn’t that much of a good idea after all).
Following up on the idea of reusing cool stuff that didn’t work out very well, I decided to do add a hand-crafted overworld, linking the main dungeon and 2 caves initially, and then use the “Epic Quest” generator from Heroes of Noresskia (my not-very-exciting entry for 2019’s challenge). My rationale was that it didn’t work in 2019 because the journey between the points in the map was super dull, the combat system was bare and broken, and the interaction at the actual places on the map was minimal. So maybe if I addressed these 3 things I could put it into proper use.
In the end, I dropped the idea mainly because… maybe the “Epic Quest” generator wasn’t really that good for starters? I think we are still a long way from generating interesting plot-lines, and any efforts to do it will ultimately suffer from the “cheap content” curse and be undervalued by players. I decided to instead go for a more straightforward and fixed plot. However, I retained the idea of a fixed overworld, grabbing inspiration from classic ADoM’s Drakalor Chain (but it’s a valley, similar to my hometown’s).
I had another crisis of thinking about what innovation, if any, I was bringing to the genre. What was going to set this entry apart from others and bring something new (even if tiny) to the genre? so far it was heading to just being a traditional roguelike with a fancy monochrome display (which is probably hardly an innovation as that’s how these games were played in the early ’80s?).
Reading a bit on it, I remembered one way to approach innovation is just by mixing different ideas, at least as a starting point. Just what I did (with half-baked implementations) for my first 7DRLs I guess.
At first, I thought I could create a roguelike with strong western RPG elements, like, taking ADOM and stretching it to an Ultima VI level of (hand-made) character and quests design, with its own lore and towns with a unique flavor. At the very least, I could come up with a system of virtues/values, 3 or 4, each one with its town and dungeon, basically an Ultima IV Roguelike. (By the way, I need to check the U4 Randomizer sometime soon). I played a bit of Jeff Lait’s Malachite Dreams, which I always had on my mind was like an Ultima Roguelike at least for the exploration aspects, and found it a bit empty so plenty of possibilities to extend on the idea. BEEP! too ambitious! another idea discarded.
Again, I found myself in the void, one of these un-fun 7DRL Challenge moments. I had a generator creating pretty good-looking cavernous complexes and a working overworld, but what should I populate it with? Damn. That part of the 7DRL where you have to actually create content.
I thought I could instead grab and build upon the setting of Ananias… but that brought the issue of it being a lot of work for little return (the question of making the world of Ananias more interesting is big enough, something I should tackle afterward).
Then I wondered, what games have I been playing lately that I could use as a source of inspiration? luckily, my list is short with just two games I played seriously in 2020: Horizon Chase Turbo and the Final Fantasy VII Remake. I remembered I actually had the idea for 2020’s challenge to create a game based on the then upcoming Final Fantasy VII Remake, thinking about riding the wave of increased interest. (Actually, in 2020 there was an entry based on FF7, but it was mostly focused on the combat, not the setting).
This was super compatible with what I had so far, so I decided to go with it. Yay, a clear direction again.
For gameplay, I took a lot of inspiration from my memories of early DoomRL for ranged combat and mixed it with my own melee-focused skills from Rodney, which were inherited from DrashRL and also permeated the design of some of the classes of Ananias. Again, I think these were good ideas that weren’t fully exploited because of the limitations of their map generators and generic themes. I also brought in the enemy AI from OpenArthurianX6 for ranged combat mainly, as well as its pathfinding implementation.
By day 5, it was about time to start working on the content, so I jumped into defining the locations and enemies that would be found, as well as their stats and behavior. I repurposed the theme of the level generator and placed four “reactors” in this world that you got to pay a visit to, then reach their bottom, place a bomb, and return to the surface, to save the world from devastation.
I also invested some time to make sure the ranged attack animations worked fine, since I believe this is a very important aspect for any roguelike with ranged combat.
Through the week, I had kept QuietGecko up to date with all the crazy stuff that was going on, and he could set apart some time to work in the game during the final days (when things were luckily pretty stable in regards to theme and gameplay).
I reached the final day with a semi-working game, glad to at least had invested quite a bit in advance in content generation, but with a lot of tweaking to do.
The first thing I tackled was making sure there was some kind of progression both in the difficulty of the levels but also in the development of the player character. This including moving a lot of the monster stats and doing some playtesting to see how it felt, and also incorporating a lot more skills from Rodney that the player could acquire by using “Wallemite Chambers” found within the levels.
The “active” melee skills I included were: Charge, Assault, Corner, Counter, and Rage. These demanded a lot of work to integrate them from the old Rodney code (which is actually the basis for JSRL but is super outdated now). Then I also had the “stats upgrade” skills for HP, Attack, Sight Range, and Carry capacity; each one required refactoring stuff at some level in the combat code or the UI.
Another important thing I added was populating the items in the levels. For 2019’s Heroes of Noresskia, I completely forgot about healing! so it was probably impossible to win. In the end, I went a bit overboard with this, adding too many healing items. I also added another facet of inventory management with ammunition for ranged attacks, so you had to balance your inventory between healing items and ammo.
About 30 minutes before the deadline, I got a pack of sound effects and music from QuietGecko. I hesitated on integrating them since I still had to work a bit in the balance of the game, but in the end, decided they were important enough to set the mood of the game. I managed to integrate just one of the three tracks he provided (the one for the Wallemite Reactors), as well as a single SFX for walking, and the plasma shots for ranged attacks. Here’s the Reactor track, with obvious influences from FF7 (but we DID want people to get the references, since that would greatly help to establish the theme).
The final 5 minutes were me frantically trying to address the balancing issues because the game was still too hard! so I nerfed enemies to 25% of their power, and buffed the healing items to 200%. A lot of testing is still required but at least it proved to be enough to make it playable.
And that’s the story so far! I probably say this every year, but I’m happy with the results, and I believe this has potential. Possible small tasks ahead (beside fixing a couple critical things like using items not taking a turn) would be to balance the stats a little bit, some QoL improvements for the UX, and maybe also the audio experience while keeping about the current amount of content in terms of enemies and items.
NovaMundi is coming to Steam Early Access very soon! remember to Wishlist it if you like what you see.
I did quite a bit of work in the rivers procedural generation. Previously, our rivers were too “straight”, with only 45 degrees turns which looked extremely unnatural… the reason for this is the way I was planning to implement them first via flood-filling the geometry and advancing one tile at a time towards the sea.
That’s no longer the case (see previous posts about rivers procgen) so I changed the way they are built to instead place them segment by segment and pick an angle change within a sensible range for each new segment. This in turn allowed us to fix a bug on their geometry that was haunting me since the Steam Game Festival version (random gaps appearing, caused by the points of the polyline used to create the river surface being too close), as well as make it so we have much more control over the total river length we want in the map, and prevent them from overlapping. Of course we still need to work on their positioning and add branching so they are not that many isolated segments.
While we were at it, we decided to address a bit some visual aspects of the rivers; besides fixing how the “riverbed” was painted to take advantage of the new procgen in which the rivers are flat, we did some experiments on the color of the river texture and concluded (again) we need to modify the river shader for it to interact with the lighting conditions of the scene. I did some tests using the plugin we are using for the oceans’ water, just to evaluate how important it would be to implement some of its features in our shader (like simulating “foam” on contact with other surfaces, and having reflections with an animated normal map).
The forest are now a bit more spread out, with a dense section at their center and more sparse vegetation on its boundaries.
One big thing I missed during the initial work was properly saving and restoring the Terrain objects which are an important part of the game state; while of course there is always the option of storing the seed to regenerate the terrain every time, I opted to save the terrain data instead, to allow future scenarios where it can be modified in-game, as well as allow pre-generated terrains to work through evolving versions of the generator. I am also lazy and didn’t want to go through the generator ensuring all the dice rolls where made with a single pre-seeded generator.
Beside this, there were some tweaks on save/load as expected during playtests, including saving the weather and the player encampments.
We are doing good progress in the revamped UI for the “transfer” popup (Used for trading, transferring items and units to camps, and battle loot), as well as the “inventory” popup (for which we still need to do some design work, to integrate with the “use item” flow)
Art keeps working at a quicker pace than we are able to integrate, so there’s a bunch of things we are going to be adding in the upcoming weeks including special NPC portraits, a complete new environment for the paramo (Andean Tundra), Potato and Maize farms, rocks and cave entrances, new panche raider model and some more redesigned UI.
Finally, we are experimenting with a better way to display grass in the terrain, since using geometry or billboards continues not being good options based in latest tests.
NovaMundi is coming to Steam in Early 2021, remember to Wishlist it if you like what you see.
Saving and Loading games! After the events of the Early Access launch of Ultimate ADOM, which had some negative impact by the lack of being able to save your game (the dev team had some trouble with it due mainly to the complexity of the data model and the lack of proper tools for serialization in C#), I decided to jump into it and finish it. Stoneshard, for all the good reception it has had, could have even better ratings if it weren’t for similar problems.
We had worked a bit on it in the past but were always pushing its completion until the model was more defined, and now that we have a clear idea of what the game is going to be about, it was about time to finally do it. I charged into it and we now have a fully working save/load flow! it will require a lot of testing to make sure the model is preserved correctly, but the core of it is working and any changes will hopefully be small.
It was not simple, since we didn’t have the persistence model in mind since the beginning, so it required moving a lot of stuff around to make sure the logical world model was separated from the visual game objects and other static references.
Continued working with polish on the visuals, I decided to create a separate “playground” scene, mimicking and using the same lighting setup as the main one, so that the visual artist could play around there, placing objects and seeing them as they are seen in the main game including the post-processing profile settings and the scene lights. This included adding some controls to the scene to change the time of the day, emulate the exploration distance, as well as the changes in camera temperature caused by rain. We are still working on tuning the lighting and colors.
Finally, we made some changes in the units, with the Guardians now wearing a club instead of a spear, and the explorer now attacking with a knife. We also added new icons for the “blessings”, replacing the orb placeholders with some Muisca “runes”, and started the transition to the new inventory UI.