Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411517 Posts in 69377 Topics- by 58431 Members - Latest Member: Bohdan_Zoshchenko

April 27, 2024, 09:53:34 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsDwarf Fortress meets The Outer Wilds? "Ultima Ratio Regum", v0.10.1 out Feb 2023
Pages: 1 ... 8 9 [10] 11 12 ... 53
Print
Author Topic: Dwarf Fortress meets The Outer Wilds? "Ultima Ratio Regum", v0.10.1 out Feb 2023  (Read 177727 times)
Games Inquirer
Level 4
****

I love video games.


View Profile WWW
« Reply #180 on: August 01, 2013, 10:37:23 AM »

Great!
Logged

Check out my amateur blog in Greek or English.
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #181 on: August 01, 2013, 12:56:33 PM »

After 7 months of development, and assuming no game-breaking bug presents itself, I will be releasing Ultima Ratio Regum v0.3 this Saturday!
Logged

jO
Level 4
****


Adventure awaits!


View Profile WWW
« Reply #182 on: August 01, 2013, 12:58:47 PM »

After 7 months of development, and assuming no game-breaking bug presents itself, I will be releasing Ultima Ratio Regum v0.3 this Saturday!

 My Word!Toast Right
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #183 on: August 01, 2013, 01:53:35 PM »

Oh great!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #184 on: August 02, 2013, 03:28:48 PM »

Closed pre-release playtesting is a lifesaver. That is all I am going to say.
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #185 on: August 03, 2013, 05:53:36 AM »

Ultima Ratio Regum v0.3.0 released, after seven months of work!

Head to http://www.ultimaratioregum.co.uk/game/ to read about and download it!

Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #186 on: August 03, 2013, 07:35:14 AM »

Tiny bug found in earlier version; updated downloads page with 0.3.0b. Save files in 0.3.0 totally compatible!
Logged

s0
o
Level 10
*****


eurovision winner 2014


View Profile
« Reply #187 on: August 03, 2013, 07:39:11 AM »

well damn

gonna d/l this beast ASAP
Logged
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #188 on: August 03, 2013, 08:29:23 AM »

well damn

gonna d/l this beast ASAP

A wise move, sir. Let me know what you think!
Logged

s0
o
Level 10
*****


eurovision winner 2014


View Profile
« Reply #189 on: August 03, 2013, 10:41:18 AM »

so far im impressed how beautiful the game is and how much effort apparently went into the "look" screens in particular. puzzles are pretty tricky and tbh i havent solved one yet but i think i sort of get how theyre generated.

i think the controls could be streamlined though. two suggestions:

1. make the grab button always automatically grab the object the player is facing. if there are multiple grab-able objects in the same square bring up a list

2. the look button should let you look at things outside of your FOV. just make the character turn around automatically.
Logged
Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #190 on: August 03, 2013, 04:58:15 PM »

so far im impressed how beautiful the game is and how much effort apparently went into the "look" screens in particular. puzzles are pretty tricky and tbh i havent solved one yet but i think i sort of get how theyre generated.

i think the controls could be streamlined though. two suggestions:

1. make the grab button always automatically grab the object the player is facing. if there are multiple grab-able objects in the same square bring up a list

2. the look button should let you look at things outside of your FOV. just make the character turn around automatically.


Thanks for the feedback Smiley. The puzzles are generated independently of the clues, and i'm going to write a bit about how they are generated for a couple of future devlog/blog updates.

1) Interesting - I hadn't thought of that kind of system, but I can really see the advantage. I'll need to sleep on it, but I like the idea.

2) Nooo! Turning around takes in-game time, and the direction you face will be very important in combat later on. I wouldn't want someone to accidentally turn around when they didn't mean to because they were trying to look at something (as it were), and then get killed or lose a potential attacking turn because of it. Looking should take 0 turns, but that means it has to be only things in your line of sight.
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #191 on: August 08, 2013, 03:53:18 AM »

AND NOW, a cross-post of this week's devlog update (http://www.ultimaratioregum.co.uk/game/2013/08/08/viewing-direction-and-multi-layered-tiles/), about an aspect of ziggurats you may or may not have spotted:

Most roguelikes have a single z level and a single perspective. What I mean by the first of these is simple – each floor of the dungeon is flat, and there are never objects you’re too “high” or too “low”, vertically, to see. You cannot be too low to see over a particular barrier, and nor can you ever be too high to see something hidden below a ledge, for example. What I mean by the second, however, is that tiles look the same irrespective of the angle they’re viewed from. Viewing a wall tile from any angle is always a wall, whether you’re in the chamber the wall makes up, or the corridor that the wall is just one side of. Viewing a door will always look like a door whichever side you view it from. Obviously there may be modifiers – spells of effects that reduce your line of sight, or cause hallucinations, or similar – but the objects remain stationary in your view under normal situations.

URR is a little different. Originally I only had z levels, and that means certain areas would have to look different. This is much the same as Dwarf Fortress. Areas significantly above the player print as a filled-in ‘^’ icon; areas above you produce a ‘v’; whilst your line of sight is obstructed by areas that are too high above the player’s current level. This needed a lot of work to implement because the characters that need printing on each tile are not fixed but relative to the player’s height. However, there’s also a second aspect which is becoming increasingly important – tiles which look different from alternative angles, not just from alternative heights. In this first screenshot inside a ziggurat, you’re in the room with the relevant clue, and that displays correctly. That’s obviously what’s meant to happen, and it does so fine.


However, it is possible for the player to get behind this inscription and view it from the back. This could lead to the possibility that depending on the generation of the level, you could see a clue from behind before you actually reached that room with the clue! If the wall containing a clue was also a wall of a corridor leading to the clue, then you’d get to see the clue early (odd, but not a big issue), but also the player character would be able to magically read an inscription through the wall, which I deem to be a real immersion-breaker, and also warn the player about the location of a puzzle room in the dungeon. At the moment that final aspect doesn’t matter, but in the future with resource management and potential enemies, that kind of foreknowledge about the terrain might matter. So, I had to find a solution to this.

I considered what exactly the problem was; seeing the inscription tile, without being in the room the inscription refers to, should not show it. My first trial simply made the game notice which wall the clue was on, and print appropriately. If it was on the southern wall, any player north, north-west, north-east, west or east of the clue would see the ‘?’ whilst any player south of the clue would see the brick icon. This resulted in this:

Which worked great. What this meant, however, was that being below the inscription, even if you couldn’t actually see it, would have it reprint. Moving across the horizontal or vertical axis for a clue would make its appearance change even if there was no way to view it from behind. This worked to fix the original bug, but made other possible situations rather less elegant. If you were north of a north-wall inscription but couldn’t see it, it would still reprint. This meant that moving around would randomly keep redrawing the visible inscriptions according to each axis for each inscription that you crossed. As above, this did prevent the reading-inscriptions-through-walls error, but there’s really no need to hide the inscription in this case because you cannot view this from behind. I needed a system that would do what was shown above – inscriptions viewed from behind vanish – but only if they can be viewed from behind, so that the image below could also occur:


Without changing from the above code, the inscription to the south of me would vanish, for no good reason. So, I returned to the process and iterated it again. I added in a new piece of code that had it check whether that particular square can even be seen from behind. So, if an inscription is on the southern wall, it checks if the south-western, southern or south-eastern tile from that tile are “open” to the player, and therefore can be seen. If any of these registered as being open, then it would revert to the solution in the second square – being behind it print the wall instead. However, if they are register as closed – in the third picture it is on the northern wall, and the NW, N and NE squares are all walls – it doesn’t need to print anything new because you can never view that inscription from behind. This solution ensured that only in the very, very rare situation where the inscription can be viewed from behind will it print a wall instead.

This is part of a much wider requirement for the game. There are multiple other types of tile that have to display differently based on the player situation. For example, doors can only display if the player’s height is less than or equal to the door’s location. For example, if there is an area with a height of 20, and levels 18/19/20 contain a three-level door, then standing atop that tile must hide it, whilst being anywhere below it must show it. This means a hefty part of the rendering code is basically for “exclusions” – for showing things if the player is at certain heights, or certain angles. Most tiles can be trivially displayed regardless of your angle, but a few tiles of these sorts require special treatment. Indoor areas, because they lack height, are significantly simpler because nothing has to be rendered specially to take account of the player’s location on the z axis. I haven’t yet decided how to handle things like bridges that you can walk under, but it’ll probably be handled like walking underneath tree leaves. I don’t yet know how many other aspects like this there will be, but I’m sure more will arise as time goes by. In the mean time, however, version 0.3.1 will be released in the coming week with a set of minor bug-fixes, and will be the last version until 0.4 later this year, in which – I am proud to announce – you will be able to die. I’m hyped.
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #192 on: August 09, 2013, 10:00:53 AM »

Adjusted in-game inventory; categories grey if empty, and white if not empty:

Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #193 on: August 11, 2013, 06:43:50 AM »

Version 0.3.1 released! Changelog and download link here:

http://www.ultimaratioregum.co.uk/game/2013/08/11/urr-version-0-3-1-released-on-to-0-4/
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #194 on: August 13, 2013, 06:31:05 AM »

For a single night's work so far, I've made a surprisingly large amount of progress on trap generation. Should have something to show for it before too long...
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #195 on: August 17, 2013, 01:20:10 PM »

Planning to put out 0.3.1b tomorrow, all being well - a few minor fixes to a few rare puzzle generation bugs, and a couple of other things cleaned up. This TRULY SHOULD be the last update before 0.4!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #196 on: August 18, 2013, 02:53:11 AM »

0.3.1b released with a few final small fixes - get it at http://www.ultimaratioregum.co.uk/game/downloads/. Devlog update approaching...
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #197 on: August 18, 2013, 04:45:47 AM »

Uploaded a big devlog entry about URR, Cult:Awakening, Kickstarter, and other stuff. Thoughts appreciated:

http://www.ultimaratioregum.co.uk/game/2013/08/18/the-roguelike-community-kickstarter-cult-and-urr/

(Next week I'll be starting a retrospective series about a lot of the coding/design of 0.3!)
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #198 on: August 22, 2013, 05:23:32 PM »

"Trap smoke. Don't breathe this!" (WIP)



Made huge progress with traps - will be posting some screenshots of them in action soon!
Logged

Ultima Ratio Regum
Level 7
**


Game Studies Lecturer, "Ultima Ratio Regum" person


View Profile WWW
« Reply #199 on: August 24, 2013, 04:01:28 PM »

I’m now starting a little retrospective series on the last release. My approximate plan is to this week start with puzzle/riddle generation (part 1), finish it off with part 2 next week, then move onto a post about generating ziggurat interiors. We’ll probably then have an entry about designing the extra languages – aesthetically, not in terms of code – and at some point later, when languages are fully implemented, I’ll be talking about them.

So, this first entry will detail the design goals of the puzzles and the process of creating the puzzle solutions, checking the solution will be valid and assigning clues to them; next week’s entry will conclude this two-part series by covering how clues are generated and written by the game, and how to ensure clues are clear, even if they are cryptic (two apparently contradictory goals).


I had three objectives when beginning the process. These will also be applicable for future forms of puzzle too.

Firstly, all puzzles should be solvable on the first try. There must be no trial and error. Some puzzles may, later, come with traps of varying severity and lethality (traps will likely be integrated into puzzles for 0.4); they must be avoidable with perfect play. This is not to say they might not take a long time to solve, but you should always be able to submit the correct answer first time. If there is any ambiguity, there need to be more clues, or the puzzle needs reworking. Given the clues, puzzles can be cryptic, but they must never be ambiguous.

Secondly, the puzzle must have only one solution. This is not just because having multiple solutions makes a puzzle easier, but also because getting the software to recognize all solutions that meet the clue requirements on the fly, rather than upon the generation of the puzzle, was a far more challenging task.

Thirdly, all puzzles must use the smallest number of clues possible. That is to say that if the game provides you with four clues, but one is superfluous, it should be able to remove that clue and keep paring down clues until you have the bare minimum required. This once again increases difficulty, but also reduces the amount of data (potentially duplicated data) the player needs to process.

There are three stages to the puzzle, of which the second stage is the major focus. The first stage is deciphering the riddle – for example, understanding that “the creature of poison arrows sits north of the many-legged one” means “a frog is north of a spider”, which we’ll talk about next time because those phrases are generated quite late in the process. The second stage is working out the placement of all the different blocks based on the clues you’ve been given (which, as above, should be only just sufficient to solve the puzzle with), and the third stage (the most minor) involves maneuvering the blocks into position. The third is just a minor Sokoban puzzle in some situations, so let’s skip over that one.

The first stage in generating a puzzle is to determine how difficult a puzzle should be placed. There are two sizes of ziggurat, “medium” and “large”. I originally intended to have “small” ones as well, but I found them a little too small to really feel like a full dungeon (using “dungeon” in the broadest sense); whilst that feeling would decrease in future versions once I add more room types, for the time being we’re just going for medium and large. A medium ziggurat has four floors and a large has five. There are five different “levels” of puzzle, 1-5, of which level 5 are considered “boss” puzzles and can only be placed on the penultimate floor (so the third floor in a medium, or fourth floor in a large). The final floor always houses either a clue, or a secret item – in later versions there will be far more variety and these peaks will include treasure, loot, weaponry, various other items, and potentially “boss” level NPCs who have also made their way into that same ziggurat. For now, however, three ziggurats contain secrets, whilst the others contain clues directing the player towards those with secrets.

The floor the puzzle is being generated on determines the level of puzzle; harder puzzles appear on higher floors. It is weighted to give you a logical progression of puzzle difficulty in each ziggurat, but also to allow for unusually difficult puzzles to rarely appear on each floor (similar to “out of depth monsters” in Dungeon Crawl). I will focus on the placement in the later entry of ziggurat dungeons, but the game basically draws a route from door -> stairs or stairs -> stairs and places rooms of appropriate difficulty along that route. Some ziggurats will have a tougher combination of puzzles, some easier, but given that I’m making a procedurally generated game I certainly don’t mind a little variation, and once other factors are in play – such as traps in 0.4! – difficulty should equal itself out more easier than with just a single challenge from the puzzle rooms.

The next stage is to pick a puzzle. There are several for each level. For example, Level 1 puzzles can be 2×1, 3×1, or 4×2. Level 2 can be 2×2 or a “cross” (like the five dots on a die rotated 45 degrees). At the higher end, the Level 5 boss puzzles can be 12×1, 3×3, 5×2 or a “star” (3×3 with the middle removed but an extra pressure pad on each edge), as shown below:


Once it has chosen a puzzle shape, it then selects correct blocks at random from a series of all blocks. So, if we have a 2×2 puzzle, it might select a Full Moon, a Snake, a Spider and a Winter Tree. Full Moon might be classed as block a, Snake as b, Spider as c and Winter Tree as d (the puzzle being ab on the top level, then cd below, to form the 2×2 square). The game then picks from a variety of what I’ve been called “clue orientations”. For 2×2, for instance, it may pick a particular corner then give two definite orientations next to it. So, if it picks the top-left corner, it would generate a clue (details next week) that says the top-left is on the east of the top-right and north of the bottom-left. It would then know that the second clue needs to relate the bottom-right tile, but because the earlier two clues are directional, this final clue doesn’t need to be.

In any case where a non-directional clue can be used, the game prefers to do that because it’s automatically more difficult. Saying “X is west of Y” is simpler than “X is opposite Y” and having to figure out whether that is north, south, east or west according to the rest of the clue. However – and 0.3.1b fixed a few issues like this – it soon became clear you simply had to have some directional clues. For example, the 3×3 grid is symmetrical in all four orientations, to simply saying “opposite” for all clues would mean the clue could be solved in four orientations. I felt this both made the puzzles easier, and possibly more importantly, would actually be a lot harder for the game to check if there were multiple solutions. For more advanced sets of pressure pads, there are a large number of potential methods by which the game can produce the clues. For example, for a 3×3 grid, it might create a clue for the top row, a clue for the bottom, then go from there; or it might create a clue for the top-right corner, a clue for the bottom-left corner, then three more; or it might create a clue for the three in the middle (vertically) then work out from there. Obviously the larger the pressure pad pattern, the more clue orientations there are, but the harder it was to make sure all clue orientations can be solved. Despite my best efforts 0.3.0 had a few that couldn’t be solved, but those were all fixed for 0.3.1′s release. Lastly, each puzzle can only contain a particular block once, so you can never get two of the same block in one puzzle, although variations upon a theme – ziggurats of different sizes or trees of different seasons – are allowed. This is again to be remove ambiguity – if there are two frogs in a puzzle, there might be multiple solutions, which means trial and error might come into it, and that was unacceptable according to the design plans at the top of this entry.

Thus, once it has selected it blocks and gone through a number of possible permutations, it then develops the clues. Next week I’ll be going over this process, and the tricky balance between keeping clues cryptic, but also unambiguous.

Also, 0.1.3c is out with a few small bug fixes, and one big one which nobody spotted but I realized was there, which I’m afraid breaks save compatibility. ENJOY, INTERNET! Download it at http://www.ultimaratioregum.co.uk/game/downloads/
« Last Edit: August 24, 2013, 04:11:44 PM by Ultima Ratio Regum » Logged

Pages: 1 ... 8 9 [10] 11 12 ... 53
Print
Jump to:  

Theme orange-lt created by panic