1. Odd Realm
  2. News

Odd Realm News

Lost Legends Expansion - Dec 2023 Dev Diary

Hello! Welcome. Come on in. Have a seat!

Hope everyone is doing well. I am making great progress on the game and have been working on finishing up all the UI changes for 1.0. This post won't be extremely long as most of my work the last bit has been focused on polishing up the UI, which isn't terribly exciting stuff. But, nonetheless, I wanted to write something to show off the new UI as I'm very happy with where it's going. It's finally starting to feel polished and not annoying. Yay!

New Font


I've changed the font to a more legible one that isn't bold, blocky letters. This should help distinguish the inline icons and make things easier to read overall. I, personally, love it and it has made a huge difference for me just developing the game, let alone playing. I'm very happy with it. And I have to give credit to Chevy Ray for making it.



UI Improvements and Organization


A lot of the UI elements now have collapsible lists. This is to help organize all the data that can come with a UI panel.

For example, below, the room designation now organizes rooms into categories based on function. As you discover new rooms to designate, they'll be organized under their respective category. As well, I've cleaned up 'active' rooms to appear at the top so you can quickly select and view those.



All the tooltips take advantage of these lists too. As you'll see below, the block tooltip shows all its contents in clean lists. And you can open these up when you select the block (holding TAB).



This is very useful when you need to view and select/deselect entities when a group of them is selected.



All the game screens are being updated with this functionality to clean things up. Here's a look at what the new game screen looks like.



Going Forward

There is so much UI in the game to update, and I'm currently updating the room management, uniforms, diets, and settlers windows. It's a tedious process but I feel like I'm making great progress and I'm getting close to having something ready to play. We're getting there!

Thank you for reading and, as always, for the patience and support which you give the game. Hope you are all well, and have a great new year.

Lost Legends Expansion - Nov 2023 Dev Diary

Hey gang!

Progress on the next update is sprinting ahead. I'm working hard to get it out as soon as I can and I'm pleased with where it's going. I'm starting to approach a point where I feel like the game is getting close to its 1.0 content and feature requirement. I want to talk about that towards the end of this post. First, let's take a look at some of the new additions to the game...

Kingdoms




Players will have the option to start a kingdom when they begin a new game. After selecting a starting loadout for your game, players will need to select a point on the map to spawn their settler caravan. Once spawned, they can move this party around the overworld map. This will use up the party's resources and may encounter events. The party can then settle the tile they occupy, which claims the tile as their kingdom. If another kingdom claims that tile as well, players will need to defeat any hostile entities in it. This effectively declares war on that kingdom. Choose wisely where you claim kingdom territory.



Players can expand their kingdom territory by sending out parties to settle or claim new tiles. As well, players can send out envoys to interact with other kingdoms to establish trade and relationships.

I'm also designing leadership roles so players can choose how their kingdom is run. Each race will have their own types of leadership to choose which provides unique bonuses:
Humans - King/Queen
Gwdir - Gwnvayth (Matriarch)
Tomek - Chief
Ancients - Primus
Ardyn - Dominus



I'm currently working on a lot of these features, so please let me know if there's anything you'd like to see in the game related to kingdoms!

Labels, Overlays, And Additional UI Options


You'll notice that there is a new additional to the HUD which lets you view lists for things like overlays, labels, selections, and more. This helps clear up the bottom bar from having a million buttons.

[h3]Labels[/h3]

Labels are a new UI feature which detail some of the things in the world, which include: entities, and overworld objects like nations, parties, and tiles. Players can edit each type of label to display specific information. For example, only show the level and profession on an entity label. You can click labels to select the object they represent.



As well, zoom level changes what details are shown so that the maps don't get cluttered with 100 labels.





[h3]Overlays[/h3]

You can also edit what types of overlays are visible. For example, nation borders on the overworld map. Other overlays like jobs, rooms, etc, will be in this list as well.



[h3]Selections[/h3]

Sometimes it's hard to select entities when they are all stacked in a group, so I've added a list that displays entities for your current selections, control groups, roles, and overworld parties.



Multi-threaded Pathfinding (Beware! Technical mumbo jargon ahead)

TLDR; Faster, more precise pathfinding.

For those that are not familiar with threads, let me try to explain. In the old version, when an entity wanted to get across the world, it would start a pathfinding process. Depending on the distance to the target, this could be extremely slow. And, the game would have to wait for this to complete. I had some performance helpers which would delay a pathfinding process if it was too slow (to avoid huge lag spikes), but it meant pathfinding could take a really long time to calculate. Now, in the new version, pathfinding uses 'multi-threading'. Think of a thread as a pathfinding job. The game issues pathfinding jobs to each of the CPU's cores to process in the background without blocking the main game 'thread'. So, the more cores your PC has, the more background pathfinding jobs it can do. As a bonus, these processes are incredibly fast. So, not only do the jobs process in the background, they finish at blazing speed.

This should improve a lot of the pathfinding performance and also fix a lot of pathing inaccuracy I had before, due to some hacks I had to keep your machines from melting into slag.

Development Timeline and Plans


OOOOoook. Time for some real talk. I've been incredibly fortunate to work on Odd Realm for SEVEN YEARS. Wow. I didn't really know how to make a full game when I started. I've had to learn a lot about game design, art theory, shaders, and code architecture. It has been the most challenging thing I've undertaken. By far. And that's why it has taken seven years to get this far. You've been incredibly patient and supportive during this whole journey, and I thank you. Seriously, it would not have been possible without this community. Thank you so, so much!

With that said, I'd like to talk about the 1.0 of the game. It is my goal to have 1.0 done early next year (2024). Hopefully January. Now, I'm going to try my best to get all five races into the game for that date. But, and to be absolutely transparent, I might need to release some things like the Tomek after this version. I'm at the point where I need to start delaying certain features for polish and tuning to make a good 1.0 candidate.

So, why the push for coming out of early access and releasing the 1.0? I want to continue working on Odd Realm for years and years. I love working on it. But, my savings can only take me so far. The game needs to release 1.0 to see any kind of revenue which would support its future development. So, ideally, features like Tomek (if they can't make it!) will still come into the game, just in the update immediately after 1.0.

Anyway, these are all big IFs. Who knows what the future holds. I just want to make sure I'm always giving you, the community, full disclosure. Thank you again for supporting the game with your feedback and positive vibes. I'm trucking along happily on things and hope to have a new beta update out soon. Stay tuned! You all rock!

L.L. Expansion - New World Gen, Simulations, and Soundtrack now on steam!

Heeeello!

I know it has taken way too long for me to post an update on the game, and I apologize. I've been working on a large amount of systems all at once, and it's taken a while for me to have all the moving parts working together. Let's dive into that, shall we.



Soundtrack by Matt Creamer

Before I get into things, I just wanted to say that the Odd Realm soundtrack can now be purchased via the steam store page:

Soundtrack (Steam Page)

The amazing Matt Creamer created it and all the sales go straight to him. So, it would mean a lot if you guys supported his incredible work and went and bought a copy if you can.

World Generation Mega Upgrade

This was the main reason I had to delay the update, and why it has taken me so long to post anything of substance.

To release the 1.0 version of Odd Realm, I knew I'd need to touch up the world generation tech. The version you are playing now is slow, difficult to tune, and outputs terrain that is passable, but not necessarily interesting. As well, the tiles have almost no situational awareness, meaning, they don't transition. I call this, "stitching." This is a huge feature to me because I want players to be able to go to other settlements with their settlers, and for the world to feel connected.

I knew that the longer I held off improving terrain generation, the harder it would be. The main issue with tuning terrain generation while a game is live, is that, as soon as you change these values, saved files are no longer backwards compatible. Loosely, this is all due to world generation being based on a seed number that uses those tuning values to output cool terrain. I won't get into the details, but, at a high level, that's what's happening.

Ok, cool, so what's what?

Well, I went ahead and improved those things. That's what. And--AND--it's all much faster.



[h2]Terrain Stitching[/h2]



Take a look at this little gif above. We can see the Taiga biome blending with both the Ocean and Desert biomes. This is the stitching I mentioned. Tiles now incorporate their surrounding tiles into their own generation. This not only includes blocks, but flaura, fauna, and any exciting prop generation stuff that a biome has.



This gives players soooooo many more interesting options when choosing their settlement locations.

[h2]More Biome Variation[/h2]
A truckload of work has gone into how I generate terrain to avoid simply outputting hills. I've tried to create way more extremes of terrain. Plains are now way flatter, mountains have epic peaks, and oceans have deep trenches. This combined with stitching, produces tons of surprising results.



A tile that's on the edge of mountain range (like the above gif) will start to rise sharply up to meet that neighboring altitude.



Likewise, plains might sharply drop to meet the depths of the ocean.

[h2]Caves![/h2]
I revamped the cave gen stuff too. Before I was generating caves by hand and, well, it was painful. You'll notice caves have more unique layouts, and are more common. They also vary as you go deeper into the earth.

[h2]Layers! 256 Layers![/h2]
Worlds are now 256 levels instead of 128. This means way more underground stuff to find, and also more vertical space to build in, and have huge mountains in. Also, I'm sure you've noticed in these gifs that the minimap now shows you a cutout of the layer you're on. This applies to both the overworld map...



...and to the settlement map...



The two maps do vary, though. The overworld map preview shows you some subterranean hints to a certain depth. While the loaded settlement preview shows you exactly what you've discovered.



The new layer cutout is extremely helpful when navigating underground. Wish I had added this years ago.

[h2]General Improvements[/h2]
I've added a lot of functionality to the controls for navigating a map. You can now hold Q/E to move layers. You can also use the arrow keys to navigate between tiles. No more needing to click the tile on the overworld map. You can even use these arrow keys to load neighboring tiles from the settlement view.

Speed. The terrain gen is fast, so loading maps is very quick. This makes navigating around to neighboring tiles really easy and not a pain for players to wait on.

Simulation

A big feature that I have wanted in the game is proper simulation. I want players to enter a tile and for time to have passed based on when they were there last. Did they leave their settlement for a year and come back? What happened?

This is almost as big of a change as the terrain gen stuff. The problem I had with Odd Realm's live version is that nothing is really simulated. A lot of it is just entities updating per frame, no concept of a timeline. I offload them once you leave the tile, and that's it.

Now, everything that can simulate will. And they'll do it based on elapsed time. What do I mean by this. Well, let's take a tree sapling as an example. When you load a new tile, the game looks at the terrain that's generated and collects all the simulated objects. It then looks at how much time has passed since you were last there. If you've never been to a tile, it will spit out a number of years to run the simulation. So far, I'm just using a year's worth of time for these new tiles (it's actually a range of time that varies for each object. Say, 0-1 year). I think I'll let players edit this. If you left a tile for a day and came back, it would simulate a day. We take that elapsed time, and then process our simulated tree sapling through it.

Here's a gif of me spawning an oak tree sapling and simulating it over a year's worth of time:



Wow, wow, wow. What's even happening here. Well, I've set up every object in the game to follow some rules. These are, "simulations rules." Trees, for example, follow a set of sim rules that say things like, "Spawn a tree branch if x, y, and z conditions are met." Then, the branch has its own rules that dictate, "Spawn some leaves if a, b, and c conditions are met." And, so on.

These simulation rules can be shared by any world object. Heck, water blocks could follow these same rules and produce a little water tree. Now, they have their own "liquid" simulation rules, but one can dream. You can start to see the possibility space for this sort of system.

[h2]Modding[/h2]
I've developed a bunch of tools for modders to create simulation rules. I needed these tools for myself to understand the systems, so it's a nice bonus that modders can use them too.



Above, you can see what the editor looks like. It's complicated to look at and I'll need to create a tutorial for all this, but it's extremely robust. You can edit the conditions, actions, and locations for a simulation, and each has a multitude of options, and I'm still adding more.

[h2]Notes About Performance and Simulation Accuracy[/h2]
Warning: this probably won't make sense and is mostly technical mumbo jumbo, but some of you might like these details. Idk.



The real problem with simulations is that they are costly over long periods of time. The way that I get around this is to sacrifice some accuracy to make sure the simulation doesn't take ages. Simulations use minutes (game minutes) to iterate through simulation rules. Imagine iterating through a year's worth of in-game minutes. That's 86400 minutes (in Odd Realm years lol) for just one simulated object. Multiply that by all the other objects we want to simulate. My computer would be a melted heap of slag by the end.

Ok, so, instead of iterating every minute, I iterate steps. And, this is something players will be able to tune if they want. Faster, less accurate simulations? Fewer steps! Slower, more accurate sims? More steps!

What's a step? Essentially, how many times I want to check our rules for an object each time we run a simulation. Keep in mind, a "simulation" is just processing an object's rules over x minutes. 5 steps per simulation? I'll check our rules 5 times. So, if 100 minutes have passed, each step will be 20 minutes of elapsed time to check rules against. We then use the amount of passed time (20 mins) to factor into the successful pass of certain conditions. For example, if you have a random chance to spawn something once every 100 minutes, well, we can reduce 100 by 20 to improve how likely it is to spawn. Or, if you want to simulate a condition in a specific age range, I'll check if that condition requirement is between the simulation step start and end times.

I could go on for ages about this new sim stuff, but that sounds absolutely dreadful to read. But, hopefully, that kind of makes sense. Not really important if it doesn't. That knowledge won't be required to play the game.

[h3]Final Thoughts[/h3]
When is the update coming out? It's not soon. All this stuff is still a big work in progress. I would say the most difficult stuff has passed, but now I'm working on the million smaller details for things. The good news is, this update is going to kick some serious ass. You just have to wait a bit longer for things to be completed. I've learned my lesson and am not going to say any timeframes here. All I can say is that I reaaaaaaally appreciate you all and your immense amount of patience with me. And, don't worry, it's not years out. I want all this stuff done too. I'm working like mad.

Thanks so much for reading this far, and for supporting the game. I'll definitely try to put out another post much sooner next time. Cheers!

Lost Legends Expansion - Update Release Delayed

Hey everyone,

I'm sorry for this, but I have to delay the release of the update. I said it would be ready for today, and it's not. I was way too overconfident with how fast I could finish things for this release date. I absolutely hate promising something I can't deliver on and I apologize. I am working super hard to finish. The good news is, it's taking a long time because it's almost a whole new game. It's a huge combination of content, QoL/UI, and performance improvements. I'm currently working on the remaining UI and art tasks (which is taking me a long time), but I'll post another update once I've got a better idea where I stand with the release schedule.

Thanks so much for your patience and, again, I'm sorry to delay on this one.

Lost Legends Expansion - June Dev Log And July 24th Release

Hi hi!

That's right, I've got a release date in sight for the Lost Legends update, July 24th. Things are shaping up well, and I'm hoping to release into beta in a couple weeks to get some testing. Let's see what I've been up to since the last dev log.

More UI stuff???


I've been working a lot on trying to make the game easier to use and less frustrating. I've got improvements in this update for AI and gameplay, but UI is a big part of the pain that I see players experiencing. So, I've put tons of time towards making things simpler, clearer, and more intuitive.

[h2]Uniforms[/h2]



I've done some clean-up on how uniforms work, and are interacted with in the UI. Players can now create uniforms and assign them to a bunch more options. You can still assign them to control groups and professions, but also many other things like skills, gender, effects, etc. This will be key for players that want entities to switch uniforms when in various states. For example, when in combat, and not.

I'm also making uniform priority clearer to help understand why an entity is using a certain item or not.

[h2]Block Tooltips (And Layers!)[/h2]



It can be confusing understanding what a block 'layer' is, let alone what it contains. Block tooltips now have options to toggle the visibility of layers around the block your cursor is on. In the above gif, you can see me toggling the visibility for the block layer above the one I'm on. This is helpful to see what is above and below the selection I'm about to make.

Additionally, I've increased the size of tooltip icons. This should make things a bit easier to see.





The tooltip also shows what is stacked on the cursor's block. No longer do you need to select a block to see that what plants, platforms, items it has. And speaking of items...





You can expand the block tooltip to show a visualization of its contents. I find this extremely helpful when I want to see contents at a glance. You can still see a detailed list and inventory of items within a block, but this is part of a new 'selections' panel.

[h2]Entities Tooltip[/h2]



Much like the block tooltip, I've done lots of work to make it easier to see important info for an entity. Everything is now compartmentalized based on functionality. Attacks grouped together, survival stats grouped together, status effects grouped together, etc.



Much like the block tooltip, you can expand the window to see more, less important, info. This expanded window shows everything that the entity window did, so I decided to remove that window altogether. You can also now see what rooms, jobs, and skills entities are using/doing from here too. Don't worry, there are still other windows to edit these things on a settlement-wide scale. This is just here if you want to see and edit individual info quickly.

[h2]Performance Improvements[/h2]

I wrote a whole new system for displaying tooltips/text which is much, much more efficient. Tooltips and UI text were a huge drain on performance, and now it runs very fast. This should provide noticeable FPS gains for a lot of the lower end machines, if not for everyone.

[h2]Final Thoughts[/h2]

I'm finishing up these last few polish items and tuning tasks. Very excited for everyone to see the new changes. Overall, I think this will be a huge improvement for QoL, but you'll also get lots of new content to check out. It's going to be great!

As always, thank you for reading and for the support!

Waylon