URR 0.6 released!

After seven months of development, I am extremely proud to announce the release of Ultima Ratio Regum 0.6! This release allows you to explore every single settlement you see on the map: every feudal city, hunter-gatherer encampment and nomadic fortress, in addition to the towns and farms dotted through the feudal lands, are free to explore. You can download it here, and read more detail about the release notes below.

This is the sixth of seven planned worldbuilding releases, which will conclude in March with 0.7’s creation of the interiors of every single building you see in this release, after which core gameplay will begin with 0.8’s NPC generation. Until then, look around the vast world, be sure to ‘l’ook at everything, consult the ‘E’ncyclopedia for information on the planet you’re exploring, and generally get an idea of the scale and complexity of the generated civilizations the game features.

– Explore massive and varied feudal cities (each able to support a population of ~300,000+), each with its own range of districts, architectural styles, and buildings influenced by the political and religious choices of its civilization.

– Discover nomadic fortresses in the desert, enclosed by walls and with an emphasis on strong defence and open-air markets.

– Farms and towns now also generate within the countryside, which in the future will be important stops on your travels, and sources of occasional markets and information.

– Hunter-gatherer civilizations now have settlements, laid out in complex geometric patterns, built from a range of materials, and containing cryptic shrines…

– A huge range of new ‘l’ook graphics for almost everything new in the game, and for a range of items/features/terrains which did not possess graphics in the past.

– Improved world map generation – now includes rare marshland areas, and a significantly overhauled polar biome, now featuring ice as well as snow.

– Introduction of strategic-layer movement around cities, a note on the pricing of city districts, and the unique coinage of each civilization, which will be activated in version 0.9.

– Significant expansion of variety of religion and civilization generation.

– A range of bug-fixes and optimizations on roads, settlement generation, coats of arms, line of sight, generating certain aspects of rivers, and more.

From this point onwards, developing URR will be my full-time occupation for approximately the next twelve months, and I will post in more detail about this next week. Until then, I hope you enjoy exploring this huge world, please report any bugs you might encounter and the crash log (either on this blog post or emailed to mark @ this domain) and here are some screenshots of the kind of variation you’ll find in an average generation:

06_1 06_3 06_4 06_2 06_5 06_6

Be Sociable, Share!

72 thoughts on “URR 0.6 released!

  1. One of my favorite things about URR is every square’s graphic representation. With the cities it’s even better! The signs are my favorite so far.

    Do you think there’s any way you could implement a mode where half the screen would show the square right in front of you? It would obviously cut down a ton of map real estate, but the pictures are so great for immersion. It could have a little line of text at the bottom with the other things in that square so you could switch between.

    Just a thought 🙂

      • It is a good thought (and glad you like the signs)! And, indeed, one I actually had myself a while ago. I briefly considered it, but I decided against it for several reasons. Firstly, because as you say, it would reduce the visible area (the player’s FOV will be increased soon) and I didn’t want to do that, especially once the combat sidebar on the right appears in later versions; secondly, because as Baktillus says, I think it would get repetitive quickly; thirdly and most importantly because there are many things to look at which you cannot step onto, or that are distant, and I prefer having it be an “investigation” game mechanic rather than displaying everything as you move into it/towards it. And I like the idea of having players explore some of the representations themselves, instead of having the graphics “forced” upon them!

        • Gotcha. One suggestion I have then, after pressing the picture should be shown. If there are multiple things to look at, show the first with a message about the second or third… and letter to switch it. Or, if you still want to have the option dialog before the picture is shown, if there is just one thing to view, then just showing it instead of having to press ‘a’. That would be a lot of button pushes over the life of a game for no reason.

          • I think the multiple-item option is what happens already, isn’t it? Unless I’m misunderstanding you. Hmmmm, interesting thought about auto-look when there’s only one thing there. I’ve put that into the “Experiment with” list in my master game design file, I’ll give it a shot!

  2. I’ve held off thus far on asking this, because it seemed a bit off-topic in the previous blogpost. This one is more generic, so i guess it fits here.

    You mentioned not just thousand, but tenthousand – even hundredthousands – NPCs. Now, i’m quite sure you know how to assign “loadzones” to them, so when an NPC i.e. leaves a town and travels on the overmap, you don’t have to keep the whole town in memory and simulate it, when the player is elsewhere.

    But that still leaves the question of how you’re planning to deal with many thousands of agents, that aren’t too far away, and how you’re going to deal with NPCs when the player returns after a while of absence.

    Most other games who have attempted such feats (and even those merely dealt with “hundreds” nearby), have resorted to the “reality bubble” method – that is, only agents in a certain radius from the player are simulated, while the rest remains static. I’m not a fan of this solution, because the bubble usually cannot be made large enough, for the player not to notice it all the time.

    Another problem is memory usage with regards to mutability. Unless you make all those AIs merely instances, they won’t be able to change much – probably not even have real items with stats in their inventories (unless you assign them randomly on each load, which is even weirder than a reality bubble).

    A while ago, a buddy and me were planning to make a game, that would deal with a world of maybe a thousand AIs (worldwide), and i think we came up with a multi-pronged approach to solve this – would have required a lot of AI coding (incl prediction/interpolation) though. I’d be happy to share and discuss what we came up with, but first am interested in what you have in mind for URR.

    • Interesting question. Well, the reality bubble is the core of the solution – I was very taken with how it worked on the original Assassin’s Creed (a very underrated game, before Ubisoft just went off the deep end and churned out another one of the damned things every six days) and that’s the approximate model – an intertwining of “stored” NPCs and “spawned/despawned” NPCs. The stored NPCs will be special ones who are consistent, tracked by the game etc, whilst the spawning ones obviously will not be. However, the intention is for the NPCs who de/spawn to be slightly less meaningless than usual – they will still all be distinct, some perhaps from different nations, and you’ll always be able to chat to them, ask questions about the districts/towns, etc. I want engaging with the average NPC to be a useful way of information-gathering, whilst obviously interesting with the fixed NPCs will be useful for their own reasons. I think I can make a fairly large bubble in this case, I’ve done a small amount of prelim work, and I’m feeling confident, though I’m holding off on any serious dev until 0.7 is out.

      Your second question seems to me a question about scale, which I know DF has struggled with – having NPCs you’re interacting with on the “human” scale handle appropriately, just like the NPCs on the “world” scale who you aren’t currently talking to, or who haven’t even been discovered by the player. I recognize this is going to be challenging, potentially very challenging, and I’m currently brainstorming some ways to deal with this, which I’ll talk about once 0.8 is underway (assuming, of course, that I have come up with a solution…)

      • To make sure i understand you correctly: You’re planning to have a few tracked NPCs on the one hand, and random NPCs on the other hand, which make up the majority of encounterable agents (i.e. almost all people in districts)?

        Are the random NPCs based on procedural generation, so they remain the same? If i leave a town, and reenter it, will the same couple be residing in the same house?

        • Correct – the “crowd” will be the reality bubble, but intermingled with them will be distinct and more important NPCs, although my other idea (and I think this is quite new) is that in some cases, talking to a reality bubble NPC might “turn them into” an important NPC. I’m not quite sure how this would work, and I’m still sketching out the basic idea, but my logic is that you might then be able to bump into a “random” NPC you met again in the future, and I think that could be very cool for letting players build up a selection of people they know, without having to literally store 5m+ NPCs.

          As for your second question, yes, but that might not be explicitly stated or tethered. By which I mean, in a town, a house might only have an explicitly-assigned NPC if you talk to a random and then they get assigned a house. In a town, with a far smaller population and map, probably no citizens will be the reality bubble, and all will be stored.

          • Thanks for the explanations. Well, here’s the promised info on what we came up with in turn. Quite a few things actually overlap with what you have in mind, so where possible i’ll use your terms.

            I’ll divide my explanation into two sections: representation, which is how in terms of code actors are generated, stored, as well attributes and degree of mutability. The other section will be AI mechanics and processing – so, how those datastructures are used, and in which circumstances.

            —–

            Just like you, we were planning to have “tracked” characters, as well as procedurally generated ones. The later would – unless the circumstances demand something different – use a static seed, so static attributes wouldn’t have to be explicitely stored, just to ensure permanence. Those procedural chars would however still have a few important mutable and persistent properties – like position, hitpoints, player-relation (!!!) and similiar.

            So, unlike your completely despawned and then recreated random chars, ours were more like permanent instances, that do save lots of memory, by making most (but not all) attributes derrived from a procedural seed. Obviously, with many thousands of chars (incl monsters), just those few mutable attributes still could mean a lot of memory. We however were going to implement this in C, so we could highly compress things. For example, player-relation really doesn’t need to be more than an 8bit value, so i.e. all procedural NPCs of a town, could store their player-relation in a single array of 8bit integers. This way, we’d be able to make the most important stats mutable for many thousands of chars, without memory usage explosion (and thus cache-trashing).

            Those procedural instances – similiar to your ideas – could be promoted to “tracked” chars, when neccessary. In fact, the only way for a procedural instance to cross loadzone-borders (i.e. leave a town), was to promote it to a tracked char. Tracked chars would store their original seed, so they could once again be demoted to procedural instances, if neccessary (in the process of course losing their custom attributes and inventory).

            —–

            Now, as for the mechanics – strictly speaking, our solution as well was “based” on a reality bubble. I’m putting based in quotes, because it is modified and extended so much, that it doesn’t behave anymore like a typical reality bubble. A conventional reality bubble is an on/off affair – either something is 100% simulated and inside the bubble, or it is outside and not simulated at all. Our approach instead had multiple degrees of simulation, based on distance as well as time.

            To understand this, i first need to explain how our AI would have worked, because it lays the groundwork for the mentioned degrees of simulation. An agent would have a list of tasks. Those tasks in turn would be divided up into a series steps needed to accomplish the goal. Those steps in turn were states in which the AI has to do many individual actions (i.e. go-left, go-up, open door) to finish the step. So, to summarize:

            1. Tasks
            2. Steps to accomplish current task.
            3. Actions to finish step.

            AI for steps as well as tasks would have to be implemented twice: Once for full normal simulation, and another time as a cheaty “quick-calc” implementation, that also supports partial completion. For example, if a step involves going from A to B, then the quick calc implementation would have to support jumping to the halfpoint between those two locations.

            As a sidenote: The above might imply highly complex and sophisticated AI – and yes, for selected NPCs it can be used for this. However, for more basic AI tasks, like just randomly walking around, such a task would involve just one step and a few lines of HL code. So, while it supports complex AI, it can (and would) be used for “stupid” AIs as well.

            You probably guessed by now, that the “gradual simulation” i talked about earlier, is just that: Simulating on an action-level, step-level or task-level.

            The benefit would be, that the entire world can move on, even when the player is far away: Things close to the player would be fully simulated. Things a bit further away but inside the same loadzone (i.e. district) could be simulated step-accurate. Actors not too far away, but outside the current loadzone, could run on a background thread, that gradually loads actors and checks off tasks. Actors far away, would only be processed in very long intervals (i.e. once per gameday).

            ——

            Now, as for how this might relate to URR, which is coded in python – and from what i could gather, does not make use of CPP support: The to me most urgent concern, seems to be mutability of the primary attributes of random NPCs. I’m talking about location, hitpoints, gold, player relation (important! what if i punch an NPC in the nose, leave district, reenter it?) and so on. It seems you don’t want to (or can’t) make use of CPP, the the issue of efficient storage arises. My buddy pointed out that scenarios like this are exactly what databases were created for. What do you think about i.e. including SQLite, and then having a file per district (thus, mountable and dismountable – like loadzones), to store such mutable primary attributes?

          • Very interesting. I see where you’re coming from in terms of deriving NPCs from a seed rather than being “purely” procedural each time they appear, and I do see a level of logic to that; however, even if not in a programming sense but in a gameplay sense, I think my intention is reasonably similar. The process by which an NPC is spawned will not draw on a seed, but will draw on a huge number of factors instead – civilization, culture, history, climate, part of the world, the district you’re in, whether that civ keeps slaves, or is militaristic, or whatever – so NPCs will be similar within a civ, though that civ’s policies will affect whether they have lots of “foreigners” around, or not.

            Multiple degrees of simulation is exactly what I have in mind. One for your map tile, one for surrounding map tiles, then one for everywhere else, or something like that. The tricky part will be ensuring the consistency between the two (as I think I mentioned above, I know DF has had a lot of issues with this) whilst also making sure no level of resolution is “better” or “worse” than the others – i.e. do NPCs move faster when you’re on a certain level or not? As you say, some things for more stupid AIs need to be abstracted – an AI in your district will path along the roads, but an AI half-way around the world can just treat each district as an empty space it can move through.

            As for solution, I am disinclined towards introducing databases or anything outside Python, purely for reasons of cognitive overhead and learning loads of new information and methods that I have no idea about right now (I’ve never touched SQL). For the time being, I honestly don’t know. It’s something I am going to think about and brainstorm and consider whilst I work on the far simpler 0.7, and hopefully reach 0.8 with a good idea of my masterplan. Hopefully. As a basis, though, I’m hoping to stick with just Python, but I’m going to investigate what exactly this would mean…

          • Since this game seems to have lots of noble houses and families factions can be considered too.

            If you punch a commoner in the nose he’s not going to like you and neither will his drinking buddies. If you assault a lesser noble depending on the circumstances their faction might take offense or secretly congratulate you.

            Mechanically it boils down that if you harass an area the area itself will form some negative opinions about you and while it would be great for a peon with the same name and scars to accuse you.

            All things considered core gameplay is more important than a street vendor remembering a repeat customer.

          • Agreed, guy; I think there might end up being “hidden factions” like, as you say, different groups of workers/citizens in different cities and the like. I really want an incredible amount of depth in NPC interactions, even down to the point that each civ’s NPCs might have different greetings, or religious greetings/farewells which are all generated, they speak in different tones, that kind of thing.

          • @guy:
            The problem is that an entire district is quite a lot of drinking buddies. Might be personal preferences, but i’ve grown to hate games, where entire towns from one moment to another magically hate you, just because you assaulted one nobody. Not only does it break believability, it also makes the option to piss off someone (via whatever means) a broken feature, since it makes entire areas unusable.

            I’d rather have them not remember anything, than a broken implementation of memory. But then, random NPCs become kinda hollow. Most of immersion with regards to AI is based on acting based on memory. Sure, them complex and detailed memory is a bit much to ask, from random people, but them at least remembering like/dislike for a while, is the minimum bar regarding NPC immersion.

          • @ Lyxar, those are some *very* interesting points, and I agree with the distinction you’ve drawn. I am in 100% agreement over everyone suddenly hating you – I want to implement much more gradual scales of angering people from a civilization, or becoming a persona non grata within that civ, etc, and I think the factional element will help. At the same time, though, a level of clarity is needed – if you aren’t doing the “hit one person, everyone hates you” model, you need to know WHO will be pissed off if you hit person X, or at least have a reasonable idea. As you say though, the best AI interactions come from recollection, developing a “rapport” with that NPC, etc. The challenge is going to be ensuring that that can happen within large, busy, dense cities (and towns/fortresses/etc)…

          • It’s fantastic to see so many ideas, some of them came to my mind, but it is not wonder that many of us drew the same conclusions.

            Like 2 years ago i got the idea of defining different “zooms” namely: kingdom, province and city. I discarded it but i think is a good idea for handling a big number of entities. With this approach, you would enqueue events and apply them depending on where the player is.
            For example, let’s say the character revisit a town who visited last time one year (ingame time) ago. Since then, the son of the king was born (kingdom event), a war between two nobles started (province event) and the town has suffered from outlaws and looting (village zoom). When the player visit the place, those are applied.
            This has a big advantage. A player hardly will notice a difference in one npc when there are like 5 millions of them. At this scale, changes must be greater than “random old died, random citizen is married” or player will not be able to tell the difference them. In DF this would work because you don’t have to follow millions of them, but maybe players expect now bigger changes when revisiting known locations.

            Another important point is that, if you only aim for “realism”, soon or later another game will make it better. Nowdays, a game will survive until one with better graphics is release. This emphasis is being spread in world generation (http://procworld.blogspot.com.es/) and even ai (http://intrinsicalgorithm.com/IANews/2013/08/working-with-storybricks-on-the-ai-for-everquest-next/). One man game will not be able to beat a study full of talented programmers big budgets, but a single gifted man can easily come up with great designs that no studio will ever think in. If bringing life to your game is based only in making it looks realistic, soon or later a better game will appear that makes this exactly, but better (Who will play GTA3 when GTA4 is better?). Then, why some old games are still played? Nostalgia, sure, but also good designs that survives for decades. Despite its technical limitations, they came up with good mechanics that made the game justificable for later generations. Maybe you come with a good design for ai that is not “realistic” but still more enjoyable than the realistic ones. For example, since you are well read about Borges. In many of his short stories it is stated the most man are the same man. Imagine in your world that a King is, a the same time a beggar in a remote kingdom, and some sort of vendor in another. This could save some memory and produce some interesting gamedesing-wise effects, like if the king dies, that beggar would die. If you stablish a good relationship with this very beggar, that King could feel an irrational simpathy for you, etc …

            These are some ideas, sorry for the long post. Your progress always make me jealous and impressed at the same time. You are gifted with the best quality, the perseverance. Good luck with this game, and think a little about making things not just realistic, but enjoyable.

          • I totally agree, zoom level is the only way to really handle it. As I say, I expect I’ll have something like three levels of resolution – the map grid you are currently exploring, maybe the 5×5 grid around that map grid, and then “the rest of the world”. As you say, important events have to be highlighted, but the history system is already good at doing this, so I’m confident that won’t be too tricky to distinguish the NPCs who “matter” vs the random mass of plebs. As it were.

            As for AI, I have so many ideas about how I want that to work right now. I haven’t settled on one, and some require slightly more “integration” with other parts of the game than others, but I’m confident I’ll come up with something different and interesting. As you say, design is what stands, and I firmly believe the overwhelming majority of games which stand the test of time do so for that reason, not for anything to do with graphics or, as you say, the vague idea of “realism”.

            Your King/beggar example has just given me a VERY interesting idea…

            Don’t worry about the long post! And thanks. Enjoyment/interest/mechanics are *always* my primary concern over realism, especially since I’m not seeking to make a “simulationist” game (despite some strong elements of that)!

  3. I found a bug. My world generation got stuck at “Ruins.” I can see a brown C followed by an orange F. I’m on Windows 7. I downloaded the .zip version. I extracted it.

  4. Found a bug. When I climb up walls in cities and, while on the roof of the walls, attempt to enter another area, the game crashes.

  5. It looks altogether impressive and incredible! I didn’t play it yet but I certainly will in no time I hope.
    Holy sh!t, I waited so long for this version ^^ Now that you’ll be in full-time development, browing this blog will be even more awesome. I can’t wait for all the thngs that are coming…
    I say it in advance but you did an awesome job!

    • Well thank you! Ha, yeah, me too, it’s good to have the damned thing released, be onto a much smaller version to work on next, and get back to proper/full weekly updates too. Next week’s blog entry is going to be a “proper” announcement of full-time development, and then from then on, should be onto 0.7 updates…

      • At last, I tried 0.6 just this afternoon…
        Just wow.
        The only city I explored (not completely entirely tough) took me like 1h30/2h just to clear the fog of war. This is so huge and coherent at the same time. I felt like every district was what it is supposed to be and it is reflected perfectly in the urban setting… It’s really f***ing good seriously. Now I want to see other cities but it takes sooo long to get to another one on foot =) (is there fast travel?)

        I can’t wait for 0.8 with NPC’s…. The world will feel so alive.

        • Awesome! This is excellent to hear, thanks for the great feedback. I assume you’ve been using ‘l’ to ‘l’ook at some of the stuff in the districts like the signs/doors/etc for various buildings? There is of course fast travel, hit ‘T’!

          • Yeah, of course I ‘l’ooked everything I could, it’s georgous ! Farms are really well made I think, there is so many different colors involded it’s like My Little Pony aha but it’s really good, I really liked them .
            Oh for the fast travel, maybe I overlooked it in the guidebook, sorry!

          • Hahaha, glad you like the farms! Not to worry, it’s easy to miss stuff in the Guidebook atm, though I’ve tried to condense all the important keys into the “Controls” bit, as I think that’s probably the best way…

  6. Pingback: Ultima Ratio Regum v0.6.0 Adds Cities, Fortresses, Coins

  7. Pingback: Ultima Ratio Regum v0.6.0 Adds Cities, Fortresses, Coins | TechGump

  8. The FOV and the viewing area are too small and it is very hard to quickly have a marginal overview of the topology of the town also after walking through the main streets.
    I think that, also if you are not directly facing them, you should be aware of your (less detailed) surrounding.

      • He probably means peripheral vision. Like you could see a monster out of the “corner of your eye” but couldn’t identify it until you look at it directly. Or you could see signs but wouldn’t be able to examine them until you looked at it directly (instead with your peripheral vision). That’s what I think he means.

        Anyway, great job as alway. Can’t wait to see what the future holds 🙂

        • This makes sense (and synchronizes with the second comment below), and thanks for the nice feedback! Very glad you like what’s there so far – I have some other things on my plate for a little bit, but I can’t wait to start on 0.7, and I’ve already got a large portion of it planned out…

  9. I was thinking about having a 360-degree FOV to be used to retrieve the main immutable map elements (streets, walls,trees, . . .).
    It may be more complex to be implemented but you can consider that, after enough knowledge of a town, you can feel the real shape of a house only by seeing one wall.
    The 45-degree fov instead may be used only to spot the mutable details (NPC, objects, inscriptions, stairs?, doors?, . . .).
    BTW, Amazing job dude.

    • Hmmm, interesting suggestion. I get where you’re coming from, but I think that might reduce the overall clarity if some objectives are 360-visible, whilst others are only facing-direction-visible. I’ll give it a shot though and see how it works out, I don’t think it would actually be too complex to trial. And thanks, I *really* appreciate it!

  10. I just wanted to tell you that I really like the complexity of the game, all the details, and I know it is a tough and long job, but keep it going. I can’t wait for the interiors to be implemented and character details to start to work. You should have some donation page like URG game, than share that (small) money with someone to help you out with this. 🙂

    • Thanks a lot! Really appreciate the feedback. I am going to make the donation page slightly more visible for this year as I’m working on it full-time, but I’m afraid I’m never going to hire anyone else to help – this is a one-man project!

  11. Holy mackerel.

    Those screenies are stunning. I withdraw my previous concern over the too-square appearance of cities. When you posted the metacity shots recently, I didn’t realize that those would never be seen in-game.

    This is, for me, the Most Exciting Project in PC Gaming.

    Amazing stuff.

    • Wow, thanks for this amazingly nice message. It’s reading stuff like this that just instantly re-motivates me if I’m ever twiddling my thumbs! Yeah, you’ll never see a larger scale in the game than I’ve depicted in these screenshots. Or, rather, you will see the city layout in the encyclopedia and so on, of course, but in terms of the actual on-foot design of the cities, this is the scale you’ll be seeing that on. Most Exciting Project? That is high praise, I shall make sure 0.7 and beyond will live up to your expectations! Thanks again for this message, it really means a lot to me.

  12. I spent some time messing around in v0.6, and the sheer scope of this game staggers me (in a good way, though!). Even in its incomplete state, URR may be one for the history books. And I particularly liked the ‘choose your civilization’ section in the world generator — I got some wacky combinations (again, in a good way).

    Best of luck with working on URR full-time, which I’m sure will be a challenge. I’ll enjoy following your progress with this program.

    • Awesome, thanks for the feedback – ha, yes, there are some combinations disabled for extreme contrasts (imperialist and pacifist?!) but I’ve tried to leave as many in as possible, variety can only be a good thing (and there are some more ways I’m going to have civilizations differ/vary in the next two releases as well). Thanks – it will be a challenge, especially if no postdoc opportunity presents itself in the near future and I need to devote more effort to job applications and so forth, but I’m very hopeful for what I am get done in the next twelve months.

  13. Hi!

    I’ve found out about your game a few days ago and I’m loving the concept.

    I’ve tried your latest release but the first thing I noticed is that it’s difficult for me to read. Even using the 12×12 it’s a little bit discomforting to me to read, the font is still too small for me. I wear glasses and I have tired eyes due to a baby daughter that doesn’t let me sleep well, so I’m not the average person that will play the game. But if it’s not too much trouble, I would really appreciate a bigger font, one that would allow to use the full screen in a 1080p display (keeping the 4:3 ratio, no need for widescreen).

    I’ve tried to resize the 12×12 image in the game’s folder, but that didn’t work.

    Is this something doable? Is this something that you could patch in? Since this is a game based on a lot of reading, it’s really important to me.

    Best regards,

    Ângelo

    • Hey,

      Thanks for the feedback! Interesting – I shall endeavor to add a 14×14 font in the next release, though it’s going to require a fairly large resolution in order to handle it. It’ll be a bit of a slog to redraw all the custom languages, but that’s not a big issue, I’ve done it for two other font sizes already! You’ve actually touched upon an issue in roguelikes in general, questions of readability (and also colour-blindness and the importance of colour in understanding the content of classic roguelikes) – there isn’t really an ideal solution, especially since in this case the ‘in-game’ window cannot be resized and the UI is specifically designed to have certain dimensions, but I’ll certainly throw a 14×14 font into the mix. Hopefully that’ll do it.

      • That would be great! Sorry if this isn’t as simple as resizing the font image, though.

        I’ll be looking forward for your next release, until then, I’ll keep checking out your weekly updates. They’ve been very interesting.

        Merry Christmas!

        • Not a problem, it shouldn’t be that much work if I can find a good font map to use as a base line (I’m sure there are many 14x14s out there). And thanks! Let me know what you think about 0.7 once I start posting about it in the New Year, and hope you’re having a good winter holiday too!

  14. Pingback: 2014 Retrospective | Ultima Ratio Regum: The Roguelike

  15. I played the newest version recently. I really like it, and I can’t wait to see what comes out of this project. However, being a bit of an astronomy nerd, some things struck me as odd with the planetary generation window:

    The first thing is that I noticed that some of the planets that are further away from the sun can have orbits shorter than those closer to them. According to Kepler’s third law, a planet’s orbital time is directly proportional to the cube of their distance, so orbits that are further out always have longer times. This is only something that somewhat bothers me, and does not affect anything really.

    The second thing is that I can’t view the properties of the major moons. It would be kind of nice to know that sort of thing, especially considering the next thing on this list.

    Thirdly, I kind of feel that it’s weird that Earth (and, apparently, the Sun) is exactly the same in any system, always orbiting once a year, always rotating once a day, always with the gravity of one g, always with a large moon (although it’s widely believed that our large moon was a helping factor with the development of life). It would be interesting if these properties could differ at all, maybe the Earth could be a moon of a gas giant. The properties of the Earth would affect gameplay, but they shouldn’t differ too much, or it would adversely affect gameplay. A day as long as a year would probably not lead to as interesting gameplay.

    That said, I like the expansive color and graphical range that this game has (especially when compared to games like Dwarf Fortress). I think it really helps the game stand out, and it makes the screenshots gorgeous, as well as more readable. I can’t wait for future versions of this game, and I thank you for choosing to work on such a wonderful project!

    • (Also, I think the planets and their properties would be a cool basis for religion, and things like Kepler’s Laws would be interesting discoveries!)

      • Thanks for these very interesting comments! Right, well, the planets… it is not impossible that I’ll remove them in the future, or keep them but have them randomly generated by the game rather than letting the player go about selecting a system they like the look of (this second option is far more likely). All interesting points on planets though – as for changing the Earth, I realized that a “good”/”bad” Earth would encourage people to grind/reset until they got a good Earth, and I want to avoid that, so Earth will always be totally Earth-like (regardless of the conclusion I reach about planets, but as I say, I will probably keep them but just make them fully random). It’s funny you mention the planetary religion idea, since such a thing is probably going to be added in 0.7! If not, 0.8, depends on timing. But yeah, I think that’s a very logical variation for religion, and it’s in the works. Anyway, glad you like where the game is going! Do let me know what you think of 0.7 in a month-and-a-bit : )

        • Thanks for the reply! I can see where you’re coming from with the Earth-grinding. I think I’ve read somewhere that you will be putting a specific story in the game. Maybe have a sort of ‘sandbox’ mode that does not have that story, and then let the Earth be random then?

          Anyway, I’ll be sure (due to the magic of Twitter) to check out 0.7 when it comes out.

          • Indeed so, there’s a specific theme/narrative/”quest” (though I dislike the third of those terms in this context); alas, I am not going to implement a sandbox mode, as the game is being specifically designed around having a clear purpose, finite time/resources, etc! And the idea of having this incredibly detailed world which the player actually *cannot* fully explore really appeals to me in the historical context; there will always be mysteries, always be unexplored corners of the globe…

  16. This question might have come up before and probably will come up again but I’m asking anyways. In a nice polite fashion (because there are people who demand), I ask, Will this game be open source, and, if so, will a person who understands the language it was written in be able to change it, and if so when?
    I’m personally interested because I think it would be cool to see how you did all this.

    • You are correct to guess it has come up before – I appreciate you asking, not demanding (since a striking number of people feel entitled to open source software these days!), but I’m afraid the answers are: nope, N/A, never. This game (and all I make after it in the future) are going to be thoroughly closed-source, I’m afraid. You can get some inkling of some of the systems by reading the blog, but the blog is honestly much more focused on “what I’ve done” rather than “how I’ve done it”, largely because writing about the latter just interests me far less, and I don’t want to give everything away : ).

Leave a Reply

Your email address will not be published. Required fields are marked *