Download

BLOG       DOWNLOAD/ABOUT         LINKS         CONTACT

4 May 2017

Released: LoSt #11 (Mercury Bubblegum)

Catch of the day
This is an interim release, preceding a hefty rewrite of some of the systems. I wanted to start refactoring from a clean cut, so to speak, so I'm publishing what I have to date.

In other words, LoSt is still in alpha. Compared to #10, this version contains some bug fixes and a bit of content. The most spectacular feature is perhaps that you can now gain followers by choosing the "Populist" shtick.

I'm about to redesign big chunks of the world generation algorithm, in part to fix problems which have become apparent in testing, in part to accomodate plans I have for bounties (quests) and other features. Bounties will also be tied up to a system for the passage of time (including healing and skill advancement), so there may be some exciting prospects on the horizon, even though I as a developer will have to do some untangling to get there.

Comments are always appreciated, on appropriate forum threads, per email, or you can fill out the in-game survey that I added as an experimental feature in this version. It'll be interesting to see whether that garners any response, and if I can use it to guide and motivate further development.

As always,
Minotauros

CHANGELOG

BUG: Couldn't pick up lead slugs when pockets were full
BUG: Buggy inventory interface if pockets were empty
BUG: Critters turned invisible when spending props
BUG: Could see through walls at certain angles
BUG: (Serious) bug that made game pick invalid kits
BUG: Bug that printed nonexisting plants and obstacles
BUG: Spitting bush had forgot how to spit
BUG: Some instances of NPCs getting stuck repeating one action
BUG: Crashed because game tried to draw outside the screen
GAME: Player can now start with up to two shticks
GAME: Some props can be used directly from inventory (experimental)
GAME: Prompt to abort extended actions when hostiles enter line of sight
GAME: Commandline options to set world seed
GAME: Scrollable menus (needs polish, but should work ;)
GAME: Cleaned up the log area a bit
GAME: Can save multiple characters in the same world
GAME: Default field of vision now set to 11
CONTENT: Renamed "derringer" as "pepperbox gun"
CONTENT: Fleshed out animal species a bit
CONTENT: Weapon prefixes
CONTENT: Added some skills, props, places and critters
CONTENT: Backstory generator now spits out terser texts
AI: Added more bias switches: annoy, please, exalt
AI: Action calculation for fields of battle plants should be quicker
AI: Gain followers (experimental)
AI: Most beings now set to stay at home or roam their native region
AI: Toolwielders now better at choosing their weapon
VAR: Added an in-game survey
VAR: Various tweaks and fixes

8 February 2017

Idea that will never be a 7DRL

Please excuse this quite silly rant about my old idea for a 7 Day Roguelike.
TL;DR: In the end, it's practically randomized, anyway :P

#DogmeRL 7DRL


A Dogme 95-inspired Roguelike, featuring:

No ASCII!
No message log!
No keyboard interface!
No random maps!
No permadeath!
No grid-based tactics!
No item identification!
No MacGyvering your way out!
No resource management (consumables, healing, food clock)!
No hack'n'slash!
No rpg system!
No dungeons!
Modular gameplay!
Emphasis on story!
Play as a party!
The full Roguelitelike experience in one package!

Check and mate, suckers!

I've long wanted to make an Anti-RL that "breaks all the rules" for what a RL is. It struck me now that it would be ideal to combine with two other things I've been wanting to do, namely learning a bit of Godot, and making a game for my kids (targeted age around 6-9).

In the end, I would aim to make something that doesn't fit the genre definition by any stretch, while retaining that good ol'e RL feeling.


Tail of Eugor

For the actual game, I figured the basic interface is a touchscreen Roguelite with minimal text and easily graspable (hopefully deep/fun) gameplay.

The scourge of elephants
The setting rips off various sources. Take a silly mangaish/fantasy universe like Mario, Sonic or Lego: Ninjago, throw in some White Wolf's Exalted, mix with Tove Jansson's Moomin (and more obscure references) ... I decided to just go ahead and make the heroes furries :D So you have this magic stone age world inhabited by tribes of biped animals wielding magic just cooling it with gods and spirits who still tread the earth of this young world. In the rivers and wetlands dwell frogs and hippos, striking secretive deals with daemons of the depths; whilst elephants rule the plainlands from their walled cities of byzanthine bureaucracy, but fear the wild mice who roam the woods. You get the general drift.

On the list of anti-features, some almost give themselves, some merit more consideration.

EUGOR: Featuring
Modular Gameplay™
INTERFACE: We're on a touch screen with graphics, so no ascii or keyboard. We don't want turnbased, gridbased tactics, but we do want modular gameplay. So let's make it a bit like a jrpg (bear with me). There is a walk/explore mode where you tap wherever you want to go on the map. NPCs walk around in real time. If you bump into an NPC or feature (or if an NPC bumps into you), you engange that being (bump a person to speak, bump a monster to fight). This engagement can be handled in a separate mode with alternating turns for combat/actions. Put on top: an overworld mode to travel between the different maps, designed like an overworld in a typical Nintendo console game, with each place a node, and paths between those nodes.

NO HACK'N'SLASH: Since it's for kids, I don't want combat to be the main way to solve everything. Sure, some spectacular fighting scenes with earthquake hammers and the like, but it might be better to give the hungry lion a pancake to make it happy. Maybe it will even join you on your quest!

NO IVENTORY HANDLING: Instead of inventory, the player collects "gifts" (objects, skills or characters who join your party). Your gifts determine what you can do, depicted as icons in a menu. You can always try to use any gift in any encounter? If you have Icarus Wings, you can use them to fly over the river or escape from a fight. If you have Persuation as a gift, use it to calm your enemies or get special favors from friendly NPCs, etc. Gifts may sometimes not work (angry bees won't be persuaded, troll immune to sleeping magic), and gifts are not comsumable. The gift Itching Powder would have infinite charges, it's just a thing your toon can do. Throughout any one game, you'll just get a handful of gifts, so there's no looting and no identification subgame. While there is leeway for some "easter egg effects", there should be no "complex interactions" like dipping, throwing or collateral demolition.

Uh … Follow the
dotted brick road?
NO RANDOM CONTENT GENERATION: The biggie. I'm actually planning to cheat on this one :) I would venture to replace random content generation with (drum roll) stochastic content generation! It would be deterministic, but provide replayability akin to randomness, by dynamically generating the world based upon the player's choices :P

First of all, each level/node you visit is prefabricated. If "elemental temple" is a place, you always get the same layout, with the same designated spots for your acolytes and abbess, your braziers and you vortex of elemental doom. Each place should be a small screen, so the "temple" is really just a little shrine that your avatar can cross in less than ten strides..

Second, the overworld map is predetermined, divided into four zones to visit. From the starting zone are borders you can breach to enter Zone A or Zone B, the midgame zones. Here you need to prepare and to find the key to enter the fourth and last zone, where the endgame takes place. It could be structured a bit like one of those exemplary analyses of Zelda levels, with bombs to breach weak walls, branches to make you feel like you're choosing your own way while carefully guiding you past mandatory choke points, etc. The midgame zone you choose to enter first should be set as the main branch, with the remaining midgame zone tagged to remain as an optional bonus branch.

Third, the player gets to choose some parameters at the start of the game. This is where it starts getting stochastic, as we're doing the equivalent of setting a random seed. Consider the following:

«Just send me the money»
"Eugor was a young …
    1) frog 2) mouse 3) elephant 4) fox 5) chicken
… who lived in a …
    1) cabin 2) town 3) shrine 
… by a …
    1) river 2) ravine 3) mountain 4) great wall
… Eugor's neighbor tribe were …
    1) frogs 2) mice 3) elephants 4) foxes."

That gives a little more than 4^4=256, a fine, round number of starting positions. Your choice of species will set a starting gift, like frogs can swim, mice are fast, whatever. Your starting map ("cabin", "town" etc.) has its predetermined follow-ups, so if you choose "cabin" it has paths to "woods" and "town", and if you choose "town", you get "shrine" and "ferryman" as followups. Choosing to start in the town means you won't get the shrine or ferryman later in the game, but are guaranteed to come across the woods and the cabin. A level like "natural source" will play out differently if you're sent there to talk with a guardian, or to steal a treasure, and whether that happens in the early or late game. Also, factors like climate and player race may affect which species inhabits a particular place (facing slow, mighty elephants or quick, crafy mice makes a difference).

Off to see the wizard, biatch!
Visiting the swamp or the desert first might become a strategic choice, since it determines if you'll be facing salamanders and scorpions or spiders and platypuses.

Envisioned on this scale, with 4 zones, I'd probably need around a dozen locations. The game should be scaled to a small proof-of-concept, taking less than an hour to win. Still sounds more like a 7 Month Roguelike to me. It can be done, though. The hard part would be to get the design just right.

I might actually give it a shot (but probably not as a 7drl) if the right conditions arise, as I've really been wanting to check out Godot for mobile games, and I would love to make something silly like that, that my kids (and other random peeps) might enjoy playing.

As always,
Minotauros

11 January 2017

In the works

Pick up smithereens
I'm hoping to get #11 out of the door within (quite) a few weeks. Since the release of #10, I've been trudging along, adding fixes, tweaks and content. I'm currently wrapping my head around two major additions for the next version: A proper starting settlement, and a basic system for bounties ("quests"). Both of these complex tasks imply various changes and additions that need to be done to the system, and they are tangled into each other as well, since the starting settlement will naturally be where you pick up your first bounty. Development is still at an early enough stage that fairly important parts of the engine are missing or incomplete. Once I manage to pump out some interesting settlements, for instance, it should be trivial (system-wise) to add more content and variation to them. Trivial, I say, knowing that the really time-consuming part of development is often designing and balancing content.

I put road generation on halt when
it started throwing swastikas at me.
Regarding settlement generation, I've been trying out different strategies: Settlements as blobs containing houses and points of interest, settlements starting from a single point and spawning outwards, or popping up along random roads, or as climate templates … The results have been unsatisfactory. Given the current map digging routines, really made for wilderness generation, it's been difficult to achieve the kind of division of space that a settlement should have. What's more, the settlements have to be tactically interesting, as they will set the stage for duels, robberies and other events later on. At the moment, I'm considering using prefabricated blueprints to a large extent. It would break my heart to see the same starting settlement again and again, but something quite static might provide a spring board for more testing.

Adding bounties is also a tough nut to crack. I want to get it as right as I can from the outset, to avoid having to come back and make too many major changes afterwards. Thus spake the optimist. Bounties touch upon many other aspects of the game, from map generation to skill advancement. I'm talking about proper story lines here, not just dumping some goon's head at the local tribunal to collect the cash reward (you can already do that in #10). As with settlements, I'll probably add something very simplistic for now, just to sort out the basics, like how the game world should spawn and know about bounty-related places, having villagers disperse rumors about active bounties, getting an interface for rewards/resting/experience, and so forth.

Hunted by kerebears
A detail I'm currently pondering, is simply how to present a bounty to the player. I hope to avoid dialogue trees, and have been envisioning a game with the player as "the silent type", and NPCs shouting out chat lines as appropriate. If that's going to work, it's pertinent to avoid the typical trope of NPCs just throwing random quests at the player upon arrival. It might just be a question of writing the right pieces of dialogue. For instance, a bounty to join a hunters' club could be presented by way of a kid sitting outside, proclaiming how he'd like to be a member, if he could fulfill the membership requirements (bringing in a random named animal, for instance). It's not Ibsen, perhaps, but I guess it would be acceptable in a crpg, as a way to inform the player of a certain possibility space.

Here and now, I may sidestep the issue, slap a Wanted-poster up on the wall of the jailhouse or post office and see where it takes me.


Also in the works is a travelogue mode, that zooms out on the map and gives the player access to various utilities (setting waypoints, logging rumors and bounties, etc). I may not need this for #11, but it's going to be a boon as the game world gets more involved.

As always, Minotauros

16 December 2016

Fragments of principles of prop design in LoSt

Abstraction

Props (and skills) are slightly stylized representations of a characters resources. This stems from back when LoSt (Boot Hill RL, at the time) was a cardgame/RL hybrid. I didn't want the player to become too much like a "paper doll" with assorted inventory. Some learnable skills may assume you to have the necessary tools at hand, as some props assume you possess the necessary skills to use them.
 

Encumbrance, inventory space

All the dead dudes …
I never much cared for detailed weight systems. Instead, LoSt sets a fixed limit to how many props a critter is allowed to carry. Inventory is capped at six slots, which is just enough to get by. To simulate encumbrance, some items are tagged as "heavy" or "stackable" (light). Heavy items impose a penalty on your initiative, making them practically impossible to carry during combat. Stackable items are consumables and commodities: If you're holding a stick of dynamite, you might as well be holding five. Stackable items only take up one inventory slot (per item type), regardless of how many you are carrying.

I'd rather a sledge-pick.

Wearables, containers, more tools and actions …

… building houses, skinning animals, modifying items and mailing them to your future incarnations, gambling, rail laying, light landscape gardening … Who can tell if and how they will appear?

Lead slugs

Lead (♄) is the most important prop in LoSt, doubling as money and ammo. As a symbol of prosperity, it could even be used as a stat akin to karma. Instead of a food clock, a system where the player spends 1♄to rest each night?


Current list of props in LoSt

Glogious death awaits!
Salt crystals, emeralds, rubies, corpses, heads, lead slugs, spirit stones, dynamite, bricks, barb wire, smoke bombs, adrenaline shots, the beads of poverty, prayer books, ladders, lynchers' marks, dice, loaded dice, sledge picks, bowie knives, kiri knives, swords, whips, chainhooks, cats o' nine tails, javelins, spear throwers, sixshooters, pepperbox guns, pistolknives, triguns, game rifles, sniper guns, periscopes, field glasses, rubble, gravel, smithereens, dust, timber, splinters, shards, cigars.

Wishlist and ideas

Shotguns (fire several buckshot i randomized directions), punt guns (like a shotgun, but ten feet long; perhaps for crowd control or safaris), gatling guns (mounted mayhem), stockmarkers (burnmark cattle and people), tripwire and fuses (detonate dynamite from a safe distance), booze and drugs (it all starts with an innocently puffing cigar; fancy becoming an amphetamine addict or ingesting the poison seeds of holy plants), chloroform, tonics, poisons and antidotes, sandbags (why not?), ropes and lassos (for sure!), badges, books, lanterns, pliers, lead ore, caltrops, instruments, stilts, bear traps, nets, eggs, mummies, letters, mirrors, chain and tackle.

All that stuff.

As always,
Minotauros

6 December 2016

Released: LoSt #10 (Bloodshot Vista)

All hope was not lost!
Development is snailing along. LoSt#10 is the interrim release I had hoped to achieve before summer. It will probably be the last alpha release, before the meat of the game will start appearing. I'm still getting all basic systems in place, but #10 is still a big step forward from #9. NPCs have started to speak, and there are shops dispersed across the land, as well as a very basic bounty system (finding it can be considered a kind of an easter egg at present). There are also world building routines that will place the occational settlement, although these culture centers are still very flimsy, with not much to really see or do.

In any case, please try it out if you are interested. All and any comments are welcome.

Upcoming ...

Some features I hope to work on for the next few releases:


Perform steps in random order
* AI: I need to settle some basic AI needs. Proper pathfinding will be in place, letting people use doors, walk around ponds. They'll also be picking up stuff, objecting to theft, and adhering to other defined causes and states of beings.

* UI: Tidbits of UI are planned, and will become necessary. Scrolling menus is one thing, but also some kind of game log to track your character's progress. Also in the works is a zoomed-out view of the map to allow quick travel in explored areas. If I get inspired, I might start working on a mouse interface, but I think it's better to focus on gameplay at the moment.

* Settlements: The big thing in LoSt #11 will be to breathe some life into the settlements. It ties into several features that need to be finished. First of all, I need to streamline the map generation a bit, and define some good settlement blueprints/templates. Second, there must be places of interest, and the locals should feel a bit more alive. In addition to at least a few plot hooks (available bounties/questlines), there must be some shops and etstablishments (randomly including gunsmiths, pharmacists/medics, oracles, assassins, pawnshops). Also, something like a saloon where you can rest, furnished with a bar and perhaps a self-playing piano (depending on how complex the bias/reputation system becomes, we can whistle for features like emergent bar brawls down the road). The town can be seasoned with interesting places and encounters. There might be a village green with a park or pond, a church/shrine, a post/mining/police office, soldiers in barracks, gardens and animal pens, animal baiters who take bets, maybe even baiting animals against humans, (mad?) scientists/naturalists who want rare specimens, landscape photographers who stray into the wild, some random person has a treasure map, or is a junkie, or secretly wants to kill someone else in town, or has the habit of entering empty houses to burgle them, or loves dogs, or hates children.

* Factions/reputation: The Land in #10 is pretty war-strifed. Goons and settlers skrimish. One task ahead will be to make the map a bit more settled, with settlers mostly staying in their towns, and bandits camping in the wild. It will be possible to interact and gain reputation with any factions. If you gain a positive reputation with mudfaced goons, the settlers and law-kids might want to lynch you, but you can still get trade, healing etc. in scattered bandit camps across the land. Further down the road, more factions will come. Law and crime factions will have more organized structures, in addition to various societies, from scientists to monks to queers to carnies to cults. The current AI supports factions quite well: recognizing which factions another being belongs to, liking/disliking beings which belong to certain factions or act in a certain way. As I add more sophisticated behaviour patterns, I should be able to model some interesting semblances of drama and tidbits of story. Engine-wise, I still have to add a detailed system for fluctuating reputation. More time-consuming will be to write the content, defining and balancing achievements/bounties and other trickeries hidden behind the rosepot.

* Bounties: There must be a few bounties to be had in the starting settlement, and some others spread across The Land. They range from petty (templates "my <puppy> got lost in the <cave>", "100Pb for the head of Luci Borges") to more involved stuff later on (kill the four desert masters to become the undisputed champion of The Land, prevent/perpetrate genocide on a group of humans or animals, discover what really lives beneath the lead mines, act as a mediator/monger between settlers and natives …) I'll have to start with something simpler, basic fetch/bring/escort quests, and all that. Some bounties can be pretty open ended, with many moving parts (randomly mix elements like locations, NPC templates, and other special conditions: "Defeat the mad barber in the abandoned sawmill, who has kidnapped the mayor's uncle"). Others may be more handcrafted, but allowing for story emergence. You may get hired to protect an establishment against an awaited attack, and might solve the task by barricading and waiting out the attack, or sneaking into the enemy camp. Hell, you should even be allowed switch and aid the bandits in the robbery, triggering a favorable (or backstabbing) response, with many interesting adjustments to your reputation. To provide reward/encouragement, I've been thinking about tying up bounties with skill/character advancement, instead of a traditional system with experience points. Different types of quests and quest givers yield different rewards (more "moving part" that can be randomized on each playthrough). A hermit might tell you about herbs, or a banker gift you with a very fine pistol, or a master duelist teach you the art if you just prove your worth first. I have been thinking about modeling this around a time system that I believe to be pretty unusual.

* Time: An important feature in LoSt is that wounds tend to be very deadly, and with no available source of healing. I want to add a system for resting, for which the basic template will be "staying in a saloon". In a way, resting is my idea of something instead of a food clock. To rest, you have to pay a certain amount of cash (or fulfill some other criteria, depending on where you're trying to lodge), and the game world fast forwards several days, at the end of which you start out with all wounds healed. Depending on how grievous your wounds are, and the status of all pending bounties, the game might calculate an effect/event that occurs during the period you spend resting. The event could be just a simple string, and could often just gloss over a period of quiet, or provide the player with options to advance the plot or character. If you come back triumphant with barely a scratch, you might be rewarded with a skill advancement of your choice. But if you come back with 0Pb and a gun wound, you might develop a bad reputation or foible. What's worse, the guy you set out to kill in act I might come back in act II, with a plan for vengeance. Since the player must rest to heal, they'll want to make each rest count. The yardstick pace for a starting character should be to win one bounty, then rest, and then head out for a new adventure. Longer streches of time could also be passed doing seasonal work, training with a master or living in the underground city of fools.

If you think this sounds convoluted, you haven't heard the half of it. The art will be to keep the story suggestive and the system open ended, connected with factions and all the other "moving parts", to achieve a semblance of direction action/plot.

As always,
Minotauros

11 March 2016

sense of place (ii. out of the dungeon)

Welcome to the second installment of this article series about map generation in LoSt. Part I covered the basic anatomy of a place. The topic of this post will be climates, and some things to consider when creating an overworld-based Roguelike, such as my game is set out to be. The rant that follows may please some in part or in its entirety; there's no "tl, dr", in any case.

Meanderings 

þe olde labyrinthe
Let's start with a digression, namely the topic of labyrinths, in a meandering attempt to reach the actual topic at hand, as it were.

Early European culture distinguished two main types of labyrinths: "unicursal" (with a single path leading circuitously to the center) and "multicursal" (having branching paths, only one of which leads to the designated goal)1. In modern times we typically include a third category of "network labyrinths"2.

We might attempt to establish a fourth kind of labyrinth here. Let's call it a "deterministic maze": It has several paths, all of which lead to the same endpoint. A curious specimen in academic labyrinthology, deterministic mazes are quite frequent in video games3. Consider how the exemplary level designs of Zelda are structured as deterministic mazes: In addition to a (meandering) main path, there are shortcuts and detours available. These, however, are carefully constructed to ensure the player's passage through certain waypoints (culminating with the boss). Likewise, story-driven games tend to gravitate towards one fixed ending (or a few), like a stream might bifurcate around a great rock, only to converge on the other side.

The traditional Roguelike dungeon falls under this category of deterministic mazes. All roads lead to Yendor. And yet, procedural generation shines at its brightest when behaving more like a network labyrinth, which is to say, when the completely unexpected occurs. After all, what could be more like a network-maze of thematic associations than Dwarf Fortress?

I'll make one last point concerning historical labyrinths: The maze King Minos had Daedalus construct for the Minotaur, served as a prison, to keep the monster trapped within. Conversely, the labyrinth is also a fortification, built to keep trespassers out. Most Roguelikes emphasize this last aspect of the labyrinth, as an impenetrable stronghold to safe-keep the universally coveted MacGuffin. The motif of descending and ascending with the amulet, as featured in games like Rogue and Nethack, is actually a quite striking image. However, it was clear from the outset that I wasn't going to take LoSt in that direction.

Out of the dungeon! (screenshot: LoSt #7)

In part, I wanted a less clearcut world than provided by the genre classics. Instead of the player vertically piercing a main dungeon, I wanted plots with broad horizons, unfolding around different locations on the map: inside houses, atop steep ravines, deep within thorn forests, on the makeshift streets of desert settlements … Rather than the concentric circles of some "Caverns of Chaos", I envisioned a network maze, like the myriad connections of a root system, or perhaps even that megalithic mythic maze, but splintered, turned microlithic by erosion or earthquake.

So, I bid you farewell, unending fields of nadir … for now … Fun fact: Versions 5-7 of LoSt did play out in a dungeon (the goal was to break out of confinement), and I am planning to reintroduce caverns and mine shafts at some point. But when that day comes, the underground biotope will only serve as one of several climate types, not the center of the world (as is literally the case in most RLs).

Drawing the line(s)

Turning away from the dungeon level as the measuring stick of map generation entails leaving behind a kind of thinking one finds in for instance Andrew Doull's Unangband Dungeon Generation. And yet, rereading Doull's articles after all these years, they still inspire with their zen-like attention to fundamental design principles. Much like the pilgrim who must traverse the maze before reaching that vantage point where he finally achieves overview of its many winding paths, I find myself prompted to reexamine the inner workings of deterministic mazes, as I try to extricate myself from their manifold confines.

Games use deterministic mazes for a number of gameplay-related reasons. Globally and locally, the structure can grant the player a sense of agency whilst keeping the designer in charge of the game's progression. Some important aspects that a typical RL might contain in deterministic mazes, include:

  • Scaling difficulty: The player descends ever deeper into the game world, and is faced with ever more challenging obstacles. Most RLs simply assign a numerical danger level to different monster types. The danger level of a generated level typically depends on the current depth, the player's level, or a function of both.
  • Pacing progression and loot distribution: Just as the dungeon gets more dangerous, so the hero grows in strength, acquiring experience and better equipment. Some games design early levels to teach the player certain skills, or supply the character with certain props/abilities, which will be needed later on. In RLs, where each challenge might have several solutions, it is often a question of keeping the character appropriately powerful at any given time. Features like side-quests can also be used to ensure that the player has access to particular artifacts and resistances. This not only serves to balance difficulty, but even provides the player with an incentive to move on. After all, unearthing shiny loot is a core experience in most Roguelikes.
  • Keeping the story in line: The world is organized so as to preserve narrative coherency. Granted, most Roguelikes skimp on the story, but let's take ADoM as an example. Before reaching the elemental temples, you are guaranteed to speak with the dying sage (who blocks your passage at an earlier level). This dialogue provides your character with an incentive to raid the temples and retrieve the orbs. In Rogue, and many successors, the vertical dungeon is presented as a goal in itself, with a storyline consisting of nothing more than a text snippet ordering you to head for the center of the labyrinth.
  • (Surely, I'm forgetting something here …?) 

early experiment with "deep" climates
Some of all this must be emulated in an open world. In particular, the difficulty curve must be scaled by making sure that the top-tier baddies (and assorted goodies) won't show up too early.

When it comes to "keeping the story in line", the construction of an open world must strike the balance between narrative linearity on the one hand, and a more, if you pardon my French, "rhizomatic" narrative structure on the other4.

Keeping that in mind for later, I was presently more concerned with making an open map that also provides meaningful thresholds in the game space.

./lost/kits/desert_life/climate.yug
Currently, the world generator in LoSt starts out by dividing the map into roughly hexagonal zones and designating a climate type to each zone. The method is really quite blunt – I am very little interested in huge topological maps that make sense from a geological viewpoint5 – world generation begins by setting a climate for the centre zone, and basically flood fills from there, calculating a climate for each new zone on the basis of its preexisting neighbors. During this phase, zones can also be prepatched to contain specified "places of interest"; a feature which will be used to situate settlements, special locations, boss fights, etc. The world generator is stored as a data kit, so it can easily be expanded and judiciously randomized. It will be able to choose between many small templates (for climate map generation, water distribution, locations …) and combine them into unique composite themes for each world. As the game progresses, each new zone is generated on the fly, and put to sleep once the player reaches a certain distance.

what was the thread, again?
Regarding the looming question of how to put thresholds in an open gameworld, the examples of games having already done this in various ways are too numerous to start listing.

In LoSt, I'm experimenting with what I call "deep climate" types. A deep climate is a derivative of a basic climate, spawned in pockets within the bigger region. In their basic layout, deep climates provide a threshold by hindering the player's movement somehow: "Deep deserts" might be an area overgrown by thorns, or just a deadland with a looming ziggurat in the middle. "Deep plains" might be wild groves, oases ruled by ferocious animals and plants, understood in part by native people, but where no life-lovin' settler treads. The idea is to use these deep climates to set up barriers between the opening and the mid-game. Overgrown areas can be constructed as half-way mazes, with uneven "corridors and rooms" dug through an otherwise dense carpet of vegetation. Different kinds of deep climates will offer different kinds/degrees of impenetrableness. You can always wade through thorns at decreased speed, but it's harder to trick your way around a narrow mountain pass.

Deep climates zones will also spawn more dangerous encounters than the basic climates. They will feature fiercer cousins of the critters you find in the basic climate, or larger packs with more and tougher alpha individuals, in addition to particularly nasty critter types exclusive to the deep climates. I hope to use these deep climates  as antechambers/buffers/passages to "vaults" and other special locations. Should I succeed in that venture, I may actually have done little more than replace the concentric RL dungeon with a slightly more loose network of glorified "deterministic mazes". And yet, that's still a place to build from, I guess.

Did I go a full circuit with this whole labyrinthine post, and end up about where I started? I should probably be content with that tiny advancement, a whiff of something slightly ellipsoid.

As always,
Minotauros


1 As Penelope Reed Doob points out in her study The Idea of the Labyrinth: From Classical Antiquity Through the Middle Ages, unicursal designs were curiously used to illustrate texts describing the multicursal labyrinth of myth. The earliest labyrinths were unicursal, and seem to have been something like fertility rituals, where the devout would pass through a spiraling maze – much like we organize airport waiting lines today. In any case, the kind of multicursal designs we know from children's comics and coloring books, is a modern phenomenon.

2 The very idea of the "network labyrinth" implies a winding maze in itself. The term was coined by Umberto Eco, who described it as "a tree plus an infinite number of corridors that connect its nodes." (From the Tree to the Labyrinth) This kind of maze connects with a multitude of modern concepts, from data clouds to deconstruction, whilst retaining an aspect of a particular medieval idea of the labyrinth as a metaphor for laborious/hard-gotten knowledge (even if substituting medieval "circuitousness" with modern "rupture" as the source of epiphany).

3 Streching the definition of a deterministic maze, we could hold Pacman as an early example: A maze with no center has as its endpoint the state of depletion after Pacman has covered all its corridors, gobbling up all the pellets. Pacman's concept of "covering the entire area" is really borrowed from the ancient unicursal mazes, but set instead in a maze of branching paths.

4 I'm not implementing bounties (quests) yet, but keeping some of this in mind: hoping to opt out of fixed quest lines, perhaps by implementing bounties as part of the factions found within the game world. Let's say you're assigned a mission to capture a criminal. The task should be solvable in different ways, but it should also be possible to ignore the mission, or join the baddies instead, or fail, yet live to see another day. I expect finalized versions of LoSt to have no win condition (but several possible plot hooks to get you started). This will ideally make it possible to recover, at least story-wise, from committing a blunder such as making your intended ally your lethal enemy.

5 A tiny bit of topology is high on my todo-list, but it will pay more attention to the rules of drama than the rules of science. I am thinking of adding an intermediate step in map generation, after the climate zones have been defined, but before quest locations are placed, where the game will put natural borders in the form of water and cliffs. Rivers and lakes will be straightforward enough, simply continuous bodies of water patterned across the land. Cliffs will be implemented as a map feature, so the game won't keep actual track of relative elevation etc. A cliff hex will be defined with a slope in one direction. It has the property of sliding everything that lands on it in this direction. Barring any special skills or equipment, if you try to scale a cliff from below, you'll just be thrown back where you started, but it'll be possible to jump down the cliff from above. Cliffs will also provide special cover, giving advantage to shooters on the high side. Once the functionality of cliffs is sorted out, they can be distributed around the map, both in "encounter-sized" chunks, and in great walls that form an initially impenetrable barrier: to reach that summit, you have to take the winding mountain road, crawling with baddies.

7 March 2016

sense of place (part i)

One of the features I'm working on right now, is map building. There is a lot to be done here. I need locations, starting with a small frontier settlement. I need the different biotopes to stay more distinct, as well as blending more seamlessly together. I need a map that makes sense, which can be used to tell a story.

So to clear my mind, perhaps, throw out some ideas, I'm going to write a bit about map generation in LoSt. I'll be covering some of the game's principal design decisions as I go along. In this series started in the midst of the 2016 7drl frenzy, let's hope for a modest first article, just to lay out some basics and get the ball rolling.

Kitting up

The data is stored in homebrew module files of what I call kits. Each defined kit can spit out an instance of a certain class (eg. a critter or a place template). An important feature of kits is that they can look up and invoke other kits semi-randomly.

On the implementation part of things, most classes share certain functions and features, by inheriting a basic class that I call FlagThing. I suck at OOP, so bear with me. FlagThings are used to keep track of everything, store things like variables (a house may store a $dweller1 and $dweller2, its inhabitants, who in turn know that house as their $home). "Everything" is a FlagThing, from place templates to skills to critters, and even kits in themselves. They make up a kind of network of parents and children, emanating from a "world" FlagThing at the root of it all.

What's in a place?

Regarding the grid, suffice to say that it's hexagonal, and that, in addition to single coordinates, I keep track of "superhexes" (clusters of ~16 hexes; and then of course you get your hyperhexes and ultrahexes).

Speaking to world generation more specifically, the world consists of layers of places: The map as a whole is treated as a single place, containing several smaller places, called landscapes. Each landscape is a continuous field of hexes which share one climate and one name. They in turn contain smaller places: a house, a cluster of plants, a circle of totem stones, an animal or human encounter … Some of these places even contain within themselves subplaces or encounters (a wandering desert animal, a family seated to dinner in a house). Basically anything that spawns a being on the map when it is generated, is understood to be a place.

When a new place is generated, the first thing it does is to find and occupy some open space within the confines of its mother place. While some places use blueprints, most places are circular at the moment. Upon generation, they can fill parts of their interior to percentage values, like a basic house or a lake, put instances of inhabitants and subplaces, and do other interesting stuff.


   place bungalow template
shape "circle"
size (4,6)
get $wall ['dirt wall']
get $gate ['closed door']
room_fill {'wood tile':100}
edge_fill {'$wall':100}
edge_put {'window'(0,2)}
edge_put {'$gate':(1,1)}
end

   place salt pond
shape "circle"
size (2,5)
edge_fill {'water tile':50}
core_fill {'water tile':99}
brim_fill {'water tile':75}
end




   place hermit house
inherit "bungalow template"
get $hermit (['cri'],['persons'])
get $thing (['prop'],['loot','tools'])
core_put {'$hermit':(1,1)}
core_put {'$thing':(0,2)}
end


The routines for place generation are sound enough. Next steps include establishing more meaningful relations between places. That's a topic I hope to cover in my next post.

As always,
Minotauros

Some experiments are
just pure failures