Heroes of Noresskia – 2019 7DRL Finished!

Managed to complete my 15th 7DRL Challenge Entry, PLAY IT NOW!

noreskia8

Heroes of Noresskia is a setting for AutoDM 0.1, both things were produced during the 7 days time window (although I actually missed 3 days of dev due to the happenings of real life and work). This year I used Phaser again, with a somewhat modified version of the ES6 webpack template. The complete source code is here.

I will start with AutoDM since that’s the justification for my entry. I wanted to create a program that simulated the work of a Game Master / Dungeon Master on a pen and paper RPG session (and no, that’s not what all computer RPGs do). It all came from the research I made for my talk at Roguelike Celebration 2018 and the short article I published afterward. I knew in advance the 7 days timeframe was a bit short, but I believed I could at least do a proof of concept.

The rationale behind it was: Rogue’s intent was to simulate a Dungeon Master able to create Dungeon Dive campaigns, what if I try to create a program that can generate and run Epic Quest campaigns? these two are known as the “simplest” types of campaigns/adventures since the objective is pretty straightforward, and players know what to expect, they are the easier for the Game Master to run.

Of course, there is a lot of terminology on RPGs and none of it could be considered official. I did some research on Day 1 (including this pretty good post) and was really starting to despair since the solution to this seemed too complex and hard to scale down into a first iteration. Seriously, just taking a look at that website and reading two articles is enough for you to want to give up any pretensions of making a program able to do a tiny bit of what a good GM can do.

In any case, for the context of this, an Epic Quest type of campaign is that where the party has to travel the land finding clues to incrementally work towards an epic goal such as saving the world by destroying an arch-villain or finding/destroying an artifact, or a similar cool sounding task. All while surviving battles on the road, and becoming stronger to fight stronger monsters. Check this nicely worded article for more info on Epic Quests.

I have had a very shallow RPG playing experience, and I have never done GM’ing, so I just took what I knew from these sessions along with my research, and used that as a foundation.

The initial idea was to simulate the GM process by generating some key points of the campaign and then reacting to the player actions to build the intermediate steps or tweak the outstanding milestones. However, I ran into issues to implement that as an algorithm and had to settle in the end with generating the complete plotline from the onset.

The first thing the player does is setting up his character; since we are emulating a role-playing session, you don’t really have a lot of control over the other members of your party, but for yours, you can set the name, gender, picture, and re-roll for stats.

noreskia6

After this, you will be greeted with an introduction giving you some context of what is going on. As I mentioned, the campaigns that the program can generate have a certain structure that is hard to miss, but it can still generate some variation and get the player in the mood provided he wants to put some effort into it.

noreskia1 The world is modeled as a collection of nodes, one for each location, connected by roads. The party moves by selecting the location to travel to, based on the available connections. In the main game screen, you see the game map centered in your location, the status of your party and the locations you can travel to.

I initially intended to provide towns view using Watabou’s Toy Town, but had to cut that part.

noreskia3

The campaigns are generated as a linear sequence divided into episodes, the player has to travel the land looking for clues to get the artifacts that are needed to defeat the boss of each episode.

These clues are obtained from people in the different locations of the world, where the engine generates some dialog including an anecdote and the clue itself. Once you’ve gathered all the required items you will face the episode boss (or the final boss if you are in the last episode).

I think part of the charm of the game is these dialogs. The generative space is pretty limited now, and although they work well enough for a proof of concept, using something like Tracery (and a very good design) would probably yield more believable results.

noreskia2

Of course, moving around the map has dangers, there is a chance that you might be ambushed by monsters and have to fight your way thru. The combat system is pretty simple, with each character having attack and defense stats, and damage is calculated as a 2 * roll of ATK – roll of DEF. If damage is > 0 it is deduced from the HP. I didn’t manage to implement any magic system or special skills, time was just not enough.

What monsters appear and what their level is, is however based on your party’s experience level. You level up as a party by getting XP, and all your stats increase.

noreskia5

But seriously, the combat system was not the focus of my entry. I had to put it there to add some friction to the exploration aspect, but my intent was to have it get on the way of the player as less as possible. (In the end, the original 7DRL version has an issue where the players never recover their HP unless they level up, thus making it extremely hard to win).

I actually envisioned other dangers for the exploration, such as running out of supplies, but since I didn’t manage to implement an inventory and stores system, it didn’t make it.

So, the structure of the project had the AutoDM program simulating the GM, but in order to be able to create a campaign, a GM needs a setting to work with. Heroes of Noresskia is a classic Medieval Fantasy setting, I still haven’t delved into the details of it, since that was not necessary for this project. It’s basically what you would expect for a classic Dungeons an Dragons world: medieval cities connected by roads and ships, people with swords and bows, monsters roaming the countryside.

I should, however, note the tools and assets I used to build it even if it was not the development focus of the project, since it’s what it’s more visible and also it served as a proof of what the AutoDM engine can do (and could potentially do if expanded).

First off is the actual world map, after searching around for a bit for map generators, I stuck with Azgaar’s Fantasy Map Generator. It can create worlds that are big enough, detailed and more importantly, it generates towns and the connections between them.

noreskia7

While there are generators out there that do a better job at the physical terrain and others that go in-deep into generating town descriptions and population, this one provided the level of detail I needed to make something similar to a Pen and Paper RPG campaign. Unfortunately, I didn’t manage to map all the locations (Actually Kram helped me map a portion of the map, and that’s what ended up being released in the 7DRL), and the zoom level used in the game was a bit too low, would have been better to zoom in closer and show more detail.

noreskia9

Then, of course, another critical aspect of the setting were the illustrations for the characters and the monsters. I went thru both Unity and Unreal’s asset stores looking for what I needed but wasn’t really happy with the sets I found (see 1, 2, 3). The main problem I had was, well, these are icons, so even if they were presented on a high resolution, it was hard to incorporate them into the layout I had in mind.

I finally went back to OpenGameArt.org and checked back into some assets I had dismissed initially because I thought they were too photorealistic, but on closer inspection, they were perfect for what I needed. They ended up having some interesting backstory, they were created as part of a Kickstarter campaign for the FLARE project  (Free/Libre Action Roleplaying Engine) but with the intent of them being useable “[…] in a great many free/libre media projects, from other video and computer games of different varieties, to print board games and rpgs, to modules and adventure scenarios or for use in other media.“. Well, I’m glad I found a good use for them! you can also back the artist’s Patreon to support this great work.

flarePortraits

Some other open assets that were used:

 

And that’s it! please play the game and let me know what you think 🙂

 

 

Expedition – Tech Demo Update 9

We have been working on the tech demo for about 15 weeks now. Discuss this update or the game in general at the community here.

This week we had to stop development in order to focus on client projects temporarily. However, we managed to do some tweaks in the store flow, as well as some enhancements on the appearance of storm clouds (still not definitive, need to make them look crispier).

w15-clouds

We also advanced in the implementation of in-game triggers for the scenarios, this one happens when you reach Rio with James Cook’s expedition for the first time.

w15-rio

Besides this dev work, I’ve been working in some high-level designs, looking forward to pitching the game to companies interested in funding its development. We will see how this works.

How to make money as an indie gamedev

Quoting a piece of advice from Paul Eres on a post on Facebook’s Indie Game Developers group

There are only a few things you need to make money as an indie:

  • Choose a genre that is selling, and that you enjoy playing and are good at.
  • Be competent enough at programming and level design that you can make something that plays as well and is as fun, with some slight changes here and there to add your own personal touch based on your own desires and likes and dislikes.
  • Either be an amazing artist, or have an amazing artist on the team, so you can make something that stands out graphically.
  • Make sure either you can make a great trailer, or know someone who can, and make a trailer that stands out above all the other indies trying to make a game in that genre.
  • Know some basics about marketing — know how to use your game’s trailer and screenshots to gather a following for your game before its release, so that a good portion of those interested in your genre know that your game will soon be released.

Note that being original and good at coming up with ideas is not in the list.

Expedition – Tech Demo Update 8

We have been working on the tech demo for about 14 weeks now. Discuss this update or the game in general at the community here.

w14-clouds

Implemented a first iteration of volumetric clouds replacing the billboard we were using initially, still gotta work a bit on them to have better cloud models and play around a bit with the settings of the plugin we are using (as well as work some display bugs it has).

Also, reduced the frequency of wind direction changes, made the transitions take more time and changed the way the wind direction is displayed.

w14-store

We implemented a first version on the “Buy Goods” flow, simplified to a single type of abstract “supplies”, and still without any UI art. But it allows for a complete mechanic of having to restock your ship to survive.

Future iterations will have different ports use different currencies, requiring you to exchanges your valuables. This will also work as a “bartering” mode for cultures that don’t have a currency, so things will be assigned a temporal “Value” that works as a currency.

w14-starting

As we continued tweaking and fixing minor issues in the world simulation, we looked forward to creating the elements required to have a first complete gameplay loop. We tied the player’s starting position to a city defined in the campaign, made it so that this city’s window opens when you start, and we are now working on the quest system.

We get closer to our goal for the tech demo, once the Quest system is in place we will focus on polishing the UI, adding the “freeform” expedition mode, and doing a basic skinning over the world map adding forest, terrains for deserts and montains and tundras.

Expedition – Tech Demo Update 7

We have been working on the tech demo for about 13 weeks now. Discuss this update or the game in general at the community here. I will be posting weekly updates from now on (instead of bi-weekly).

Finishing work from the previous week, we did some changes on the Storm mode, changing the values for the scale of the waves, restricting time compression and fixing the camera focus. We also smoothed out the wind direction changes for them to look less abrupt especially on this scene.

Ship navigating a dark stormy sea

Next up, we started adding some subsystems to make this a playable game. We added a general “notifications” system to show events to the player and implemented a test “Fish Caught” event which increases the supplies a little bit.

We made expedition members go hungry and consume food from the expedition supplies, based on the settings for ration size and the number of daily rations. This included calculating and displaying the remaining days of supplies in the UI.

Ship in an open ocean, notification of events happening including catching 17 fishes, consuming 190 supplies, and starving.

We also added a system to affect the morale of the expedition members on an individual basis and integrated this with the Hunger system (so the get increasingly depressed when hungry). as well as other things such as being away from land for too long, and outcomes from the “Man overboard” event. We are also displaying the average morale value on the UI.

In order to implement these, we did a refactor on the events system so that the passing of the time of day is handled by a single component, which then defers further checks and effects into the specific components (such as the Weather controller or the Expedition object)

Desk with a drawing of a naturalist inspecting a plant.

Finally, we integrated a batch of art into the cutscene for Captain Cook’s campaign.

We also had some discussion about future gameplay modes, including additional campaigns that are not strictly historical but rather include fantasy elements and plots, battling with monsters, dialogs with NPCs, all this keeping the focus on expedition management and navigation.

I also created a simple landing page for the game, and linked it from Slashware’s homepage.

Expedition – Tech Demo Update 6

We have been working on the tech demo for about twelve weeks now. Discuss this update or the game in general at the community here

World Map

Loaded the entire world map, and created a system to instantiate chunks of it as the player transverses it. Next steps are adding some base vegetation and terrain texturing.

Weather

Rolled back the more complex particle effects for rain, and left only the simplest one, for now, we need to invest some more time researching.

w12-rain

Introduced a “modifiers” system in order to correctly affect the scene based on the day and night cycles, and the weather, from multiple subsystems. Used it to affect the lighting and FOV based on the different rain levels.

Added a “sunset” effect using color temperature postprocessing.

Tied weather transitions to the passing of time of the day (instead of real-life time).

Also displaying current weather on HUD now.

Storms

Added storm clouds forming when the weather is “heavy rain”. These clusters of clouds travel quickly to the player, engulfing and taking him to the “Storm mode”. Still working on the appearance of these.

w12-stormlets

Tweaked storm mode to fix interactions with time compression and the weather system, and to make controls more difficult.

Added a first iteration of the “Man overboard” event to storm mode, the player must choose between saving someone who fell from the ship, risking introducing more damage to it during the storm, or leave him behind causing a drop on the Expedition’s morale.

w12-overboard

Campaign Details

There was a complete design iteration over the “Campaign Details” flow, integrating the preexisting “Historic Campaigns” and “World Mode”, and leading to a relayout of it. Players will be able to either pick any of the historical campaigns or “create” their own, by creating his character and setting up his expedition’s starting place, time and conditions.

w12-campaign