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.
NovaMundi is coming to Steam in Early 2021, remember to Wishlist it if you like what you see.
Here comes a very condensed yet huge update of the many things we did during and in the aftermath of the Steam Game Festival (Development weeks 101 to 103, leading to v0.19.1). I didn’t include fixing stuff in general, just interesting cool stuff. I will make a separate post about the Festival itself and the upcoming plans for early access.
Overall, I decided to stick to the “Spear of Chaquén” campaign/game mode. So far, I think it’s the best decision I could have taken, and it has allowed us to focus and make progress in the game as an actual game like we never had before.
Following that, we are working towards a long-overdue overhaul of the user interface. We already started with the HUD elements, not just making them more fit to the new theme but also streamlining them and removing useless clutter and redundant information.
I also brought the onboarding from the old “Children of Bachué” campaign and adapted it to the new plot as well as the many new changes in gameplay. This is an ongoing work, as I’m ensuring any new subsystem, or any change in the gameplay mechanics gets included in the onboarding.
You can now also get lost in the jungles if you are not careful… I think I managed to strike a balance between my illusion of the player being diligent enough to keep track of where he is without an auto-map, and the expectations of the modern gamer. Now if you wander around the jungle for too long, you will “lose track”, and your automap and compass will cease working momentarily until you leave the jungle and wait around for a bit. Explorers are also now required to be in your party for the navigational aids to work, so you now have one more reason to keep them safe.
Jungle movement also has the additional complication of you veering off-course randomly, making it hard to keep a course in an expected cardinal direction. This, coupled with losing track and increased chance of ambushes, accidents, and animal attacks, should make the players think twice before deciding to cross the jungle (or be ready to face the consequences!)
On the other hand, I greatly reduced the chance of units getting sick since it was a boring chore keeping them healthy.
Now, let’s talk about the changes for the units. First off, we added a new items category: “Blessings”, which can be applied to a unit to improve their stats. They are valuable and you can find them as battle loot or buy them in towns. Units also now level up to a max level of 3, based on their actions in battle or hunting, improving their stats and adding a reason for you to take care of them instead of just letting them die to be replaced. You can also now hire additional units in towns all around.
The interface to use items has also been greatly improved and integrated with the “Expedition Status” screen, so from there you see what units need what, and apply it to them.
As you explore the land, in addition to the main cities you will also find smaller towns and huts which will give you “gifts” including units, as a contribution to the cause. These are akin to finding new weapons and armor in a roguelike, or at least that’s my intent.
To start filling the towns, I migrated all the characters from Ramiriqui from the Children of Bachué campaign, doing adjustments as needed. We also decided some important characters would have their special portraits, and started with Zupanaqué, the chieftain of Ramiriquí (for whom I also created a simple initial dialog tied to the quests). We also created a new portrait fragments pack for the random NPCs and units.
Camping also got some changes, the most important being you no longer HAVE TO camp at 2 am every day, instead, the expedition will collapse based on your fatigue counter (so it’s ok to do overnight journeys, at least for now until I implement stronger penalties for exploring in the dark (unless there is a full moon of course)). The visuals were improved bringing back the Muisca tents and improving their placement, and I also did some balancing around the tents weight and the effect of high burden in movement speed, which will be more noticeable soon when we implement roaming enemies and you will wish you could move faster to escape from them.
Another important change was adding an important effect to camping besides recovering fatigue: big HP recovery for some units (which adds a reason for you to want to have more than one tent).
New exploration events include:
Ranged Ambush: Causes damage to random members of the Expedition before jumping into battle.
Deer sighting: Spawns a Deer nearby, no matter if there are no deer habitats around.
Ambush: Allows the player to decide if will ignore or ambush the enemy.
Ambushes now only happen in forests, and there are some additional measures to prevent overwhelming the player with them (especially at the beginning), including having a safe area around cities where you cannot be ambushed when the danger level is low and limiting the number of ambushes in day one to two max.
For combat, I added loot after battle based on the “danger level”, and there are now bigger differences in the stats between unit types giving them a more clear tactical role. Ranged units also reload much quicker now, and random events can now be head-to-head, ambushes, or “ambushed”. The terrain combat also got a bit of a cleanup, but we still need to add some procgen and variety to it.
We also started doing some sweet art for the units to make people excited about them (including ourselves)