23 November 2022

Hiatus Update

To anyone who still have hopes for Land of Strangers, apologies for infrequent updates are not something I'm going to give. The year hasn't been booming for LoSt, but the project is simmering, and I can at least say a new release is in the works.

still doin' the work of the lord

Some refactoring had to be done, including porting to updated versions of the Python tool chain, so version #14 will have changes to the engine and interface. Last week I had a fit and added basic terminal support, which went as well as could be hoped. I'm confident that that it will be doable to add more UI tweaks later.

For the terminal mode, the greatest challenge was how to make the hexagons, and how big … in the end I chose the smallest resolution (with each hex 1 line tall and 2 columns wide), to fit as much of the map as possible in a terminal window. With that decided, input and output was easy to implement. Rather than using external libraries, I wrote the functions using ANSI escape codes directly. It's a solution that's portable across major OSes, and workable as long as I don't get too fancy.

While LoSt has been ported to Python 3 and a saner architecture, work on content has been on hold. Ideas are not lacking, and I'm nearing the point of adding stuff back in, as I will get to world generation and NPC behavior, two big topics with pending redesigns ;) It's a really big piece of the puzzle, but necessary to populate the open game world of LoSt. 

In short, once the new engine is off the ground, I can concentrate more on adding content and fun stuff to the game. Current mood is optimistic regarding a working release in the near future. At that point I might make a github repository for LoSt, although I don't know if it interests anyone except myself.

As always, Minotauros

15 January 2022

Slow Results II

The last few years, Land of Strangers' development went into a hiatus, while ye olde questionnaire about content wishes stayed around in the sidebar. Now that I'm hoping to put more time on LoSt again, it felt about time to close the poll ;) We clocked in at 82 voters. (On a side note, I think 82 must be a lucky number in The Land, being the atomic weight of lead.)

I will compare the results to my own wishes and plans, of course, always happy about any feedback from interested parties. It helps understand how people are perceiving the project, and what I might do to further my own plans, increase overall "readability", as well as scratch the potential fan base's itch ;) 

With that said, here are the results in order:

Dawgs (1st – 4th; more than 30 votes) 

38 Mounts and vehicles
37 Camping, survivalism
31 Changing world
31 NPC companions

The contest for gold and silver is tight between Riding and Camping. I think horses and trains are a given feature for a game like LoSt (as well as boats and some oddities, like pogo sticks). Camping/survivalism is a feature I've personally been on the fence about. Seeing that it's a popular wish has of course made me think about possible designs – if so, definitely something in my own, slightly experimental style

… On a shared third place are "Changing world" and "NPC companions", both among my personal favorites. Going ahead, I'm definitely focusing on game world factions and groups, including the possibility for the player to form alliances, gain rumor etc. Being part of a posse should be a feature (and not necessarily as their leader).

Second Lead (5th to 11th; 25 votes or more) 

29 Drinkin' and drugs   
29 Rumors and investigation
28 Non-lethal combat
27 Dice games, gambling
26 Ropes and lassos
26 Tinkering, farming
26 Visions, dream quests

This tier of results have some strong contenders. Some feel genre-inherent in the psychedelic wildwestworld of LoSt, like booze (29), gambling (27), and rope use (26). Others relate to planned open world concepts like NPC companions and changing world (investigation mechanics and non-lethal combat). Regarding tinkering, we'll see – to me, it feels like a feature so prominent in many RPGs that doing anything new or interesting with it really demands a lot of work. It probably won't be a main concern in the next few versions, but I might yet find some fun way to add a tinkering system.

Miscellaneous (12th to 20th; 20-25 votes)

25 Fire and water
24 Calendar, seasons
24 Mines, caverns
22 Aging
22 Construction, base building
22 Dynamite and traps
22 Light and darkness
20 Disease
20 Height map

Some interesting options here; most of these are nifty ideas that can be implemented to enhance simulationist aspects of the game world. Which of these make it to the game, will depend on various factors, like whether they serve as auxiliary features to other content, or if the ratio between amount of work to add a feature, and how much fun it will bring, seems promising. A few are on my definite todo-list despite lukewarm responses in the poll, like a simple system for landscape elevation, at least as a way to create borders and bottlenecks in the landscape with ravines and plateaus.

Backwash (less than 20 votes)

13 Add better interface!
12 Retirement, ghosts
2 Other (Comment)

The "Add better interface" option is actually a jocular throwback to a previous poll about UI, most of which I've haven't gotten around to reacting to, although I've been working on it ::) So the next version will include important features like mouse support and a better graphics engine (another feature high on the todo-list is to add sound effects, and hopefully an original soundtrack). The option to retire player characters and have previous character runs affect later playthroughs did not garner a lot of support, although I can't guarantee that it won't pop up if it feels natural at some point. In the "Other" section, one voter left a comment asking for trading as a feature, and I've got to say it's a good idea, and frankly not overused in open world games, although I'll have to chew on it for a while to see what might come of it. Another voter clicked Other along with every single other poll option, but left no comment, whether that might have been a bot or a very enthusiastic player who simply wants more of everything.

With the poll closed, all that remains is to extend thanks to all who participated. I can now happily get to work on the system for dynamic NPC factions, which should scratch some of these itches. I will keep you posted as work progresses. 

In the meantime I think it's not yet too late to wish you all a happy, prosperous year ahead. Stay Lost, and keep fucking that chicken!

As always,

12 January 2022

Slow results

Me hearties! It's been a whole year with no progress reports on the blog, after I started refactoring the whole project last winter. I've been concentrating on other stuff – publishing a book and also going back to university (starting a course in computer science). So it's been a slow year in development, but on the flip side I've cleared time and headspace to fiddle more with programming in the time to come.

The latest tech
Regarding the current state of the code, I did put in some work last spring, updating the tool chain and reassembling many basic features. What I have at the moment is a slimmed down code base with the base functionality, but no real content. Where I left off last year, it was time to reimplement world generation, and after that NPC behavior. Both of these will see some redesigns, and both are systems I find highly motivational to code, since the game world comes more alive with every step of the road.

I think Roguelikes can make up for their lack in linear storytelling, by making the world capable of generating meaning in its own right. In Moby Dick, Herman Melville writes: «Out of the trunk, the branches grow; out of them, the twigs. So, in productive subjects, grow the chapters.» I'm quoting this for no particular reason other than my immense love of Melville. In LoSt, I want the narrative structure to be less like a tree, but rather a mesh of interconnected roots, or perhaps something akin to what Derrida described as a «dredging machine» (machine à draguer).

Going forward, I'll try to imbue the game world with a sense of direction and vague purpose, by focusing on factions and other forces of influence as fundamental building blocks of the game world. Last week I've picked up the old code base and design notes, and have started some simple prototyping for generating these forces and representing their relations in a graph, which should be used to inform stuff like terrain generation and quest lines. A working system will not come overnight, but should crystallize in not too long if I put in some time and effort.

31 December 2020

LoSt this year

non-obligatory pic of a big croc
The blog stayed literally dead silent this year, reflecting the equally sad fact that 2020 was a pretty slow year in the development of Land of Strangers. But I did recently tell some interested commentators I'd write a status report for the project, and I have grown fond of writing a little piece to sum up the year, anyway ;)

At the end of last year, I had already started refactoring some parts of the code, in particular the graphics engine. Since then, I've been tinkering on and off with the project; albeit, mostly off, to be perfectly frank.

Early in the refactoring process, I decided while I'm at it to port the whole game to Python 3 (as well as the newest version of Pygame). This has thankfully turned out to be a quite straightforward transition; it's mostly a question of modernizing the syntax of print() statements – whether because I'm very pythonic in my style, or just a terribly primitive coder ;) Anyway, the timing turned out to be auspicious, as this was also the year that Python officially discontinued the 2.7 branch (which LoSt has been using up to and including the current public release). 

In spring, I lay down some coding sessions and got the basic graphic functionalities up, to the point that I have working menus and a "@ walking around the map" interface with basic event handling and such. I'm bringing in the old code in chunks, trying to streamline a bit along the way, and planning to put in some small and big redesigns that have been on the project's Todo-list.

In autumn, I've been streamlining how I add end edit random content, hoping to lay the grounds for more rapid development later on. But I try not to get lost in the here and now of making the engine as flexible as possible – try to keep focus on what is needed for game worlds in LoSt, and accept some quirkiness in meeting those needs rather than put in complex, catch-all solutions.

Once I nail the basic functionality of editing LoSt's so-called kits (≈plugins/components, used to define in-game beings and concepts), I can probably pull in most of the already written content, along with basic parts of map generation, to start building on the game in an actually playable state again. lol almost eight years after the initial release of LoSt as a 7drl.

𝅘𝅥  𝅘𝅥𝅮   distill-ay-shun 𝅘𝅥
𝅗𝅥  can … be … fun 𝅗𝅥
Not directly related to user interface, I will be slipping in some design changes with the ongoing update, though I will probably write more about these another time. Suffice to say, the system for health and time, combat etc. gets the hopefully final do-over, and some fleshing-out of (macro scale) world generation, as well as the AI. I also have been thinking about text generation … We'll see what comes of that, in LoSt and/or other projects … 

A lot of this is related to narrative, as I've been thinking about ways to strengthen the game's original setting, as well as giving more direction to play through «quests» and the like. I think my next milestone release will contain a manual (to get most of the non-generative text out of the way) as well as a themed tutorial, probably a nod back to early releases that cast the player as a revolting mine slave (the tutorial should be notoriously hard to clear in itself, and maybe with simple(r) achievements to unlock the basic backgrounds for the «proper game», eg. fire a pistol for the option to start as a duelist/gunslinger, win at unarmed combat to start as a pit fighter/brawler).

Regarding release #14, it may become Yet An Interrim Release™, or more or less fleshed out in certain compartments. I don't have a current time plan, but believe I will be working more on LoSt in the coming months, so it's hopefully on the not too far horizon. 

At the moment, having said that, I think I'll say no more than a happy healthy new year to you all.

As always,

20 December 2019

Status update

Greetings me hearties, here's a long overdue status report from the Land. The year, in retrospect, has been busy on other fronts than development. Since my last blog post last spring, I did start to flesh out rules and effects of alcohol and drugs, making some changes to how the Grit stat (♥) works.

Grit UI outline with wounds from the right and
state («giddy») from the left. ©placeholder art

The new design is using ♥ to track, in addition to wounds, various states of being (including intoxication).

Extending how ♥ works, to accomodate the new designs re: drinkin'n'drugs, affects various game systems. (At the end of the day, status effects will probably be implemented as a kind of data kit. That way, statuses will be very flexible to deal with in the game engine. Different kinds of drugs/poisons, special rules for swimming and sprinting, etc. will all be possible, at least ;)

At some points, elements of the GUI need to change. And frankly, it's becoming increasingly difficult as LoSt's graphics rendering has become an ugly bugly mess over the years. This time, I started to implement some changes I've been thinking about for a while, and the whole graphics engine is currently in the middle of a refactoring.

It means the game itself is in a bit of a limbo, but it's okay. I'm taking my time and making sure the next iteration is designed in a way that will be robust with regards to future plans. By now, I think I have a pretty clear idea of what I need.

Depending on how various factors in my «other RL» (real life) pan out, I may get some more time to tinker on LoSt by the end of the winter, or come spring. In the meantime, I wish you all the best.

As always,

6 March 2019

Say Yes to Drugs

Just say No
to family values,
and don't quit
your day job.

are sacred
and some drugs
are very sacred substances
–John Giorno, Just Say No To Family Values
In development, certain features give instant gratification to implement. From getting "a @ walking on a map" and onward, it's thrilling to see your game take form. Other features require more extensive work before they start to become noticeable in the game. Seeing these grander plans gradually unfold carries a joy of its own, but for motivation's sake, it's good to sprinkle some short term design goals into the mix here and there.

After I announced the feature poll a few weeks ago, some votes have started to come in, and the option that currently seems to be getting ahead, is to add drinking and drugs to the game. Cheers. So, on the side of working on random sites and factions (which I'm starting to realize will be quite a big undertaking), I started to make sketches for intoxicants for Land of Strangers. It's something I can probably add without too much hassle, but with a lot of potential depth.

Starting to experiment with drugs
So, how to implement drugs in a Roguelike? I think it's a point to keep the presentation tight, as fluff-free as possible. Since this is a one player game, it was clear to me from the onset that the character needs a  mechanical incentive to ingest drugs. Another point that felt natural in LoSt, was to opt for random drugs.

Thinking about taxonomies and making plans for drug effects, it struck me that some of the substances that cropped up, would be "drugs" in the wider sense of actual medicines, but with possible side effects. It will be appropriate to add "druggist" saleskids who peddle anything from psycho serum injections and hallucinogenic meat, to painkillers and natural medicine. Additionally, substances that come from plants and animals can be linked to species in the random biomes.

When it comes to random content in LoSt, I sometimes imagine the templates as something akin to tarot readings or solitaires, with "cards" (kit plugins) laid out in patterns. If the reading is for a person, each node or card represents a strength, weakness, or other detail. If the reading is for an objective, the nodes represent obstacles, helpers, ulterior motives, etc. These nodes branch out and connect, and may spawn nodes of their own (as the random artifact gets an effect, the effect gets a random duration). A prop template for a random drug can probably be structured with nodes in about six different categories:

Form/source, method, dosage: Is it a powder, beverage, flower, etc? Some forms are available in nature (raw or prepared biotic/mineral parts), others are synthesized in a lab. Method and dosage indicate how to administer the drug. This data is at least used to generate the drug as an actual prop in the game world, and provide a skeletal "consume" event with pending effects.

Effect: Most drugs should have a (potentially) beneficial "main" effect. There is a subset of pure combat drugs, but also some effects for other stimulants, depressants, hallucinogenics and miscellaneous. Effects of drugs are typically not instant, but have an onset duration/curve, which can itself be randomized.

Side effect: Potential or guaranteed side effect, typically a penalty, like a hangover.

Overdose, extradose: In excessive doses, the substance can have extra potent (side) effects, including death. Overdose effects will need a probability of incurring depending on dosage and other factors. There can also be a possibility of other "extradoses" that could be outright positive, expanding on the normal effect.

Long term effects: Side effects which can be temporary (chronic as long as you keep using) or permanent (even after you quit). Again, I probably need to randomly set thresholds, timers, etc. for each separate effect. Addiction could be classed as a form of this, but may also merit its own category.

Addiction: Drugs are more or less addictive, with more or less severe withdrawal symptoms, etc.

There may be other systems I'm overlooking that should be proper to the drugs as actual props and related events in the game world. But I think that covers the basics. Other questions come on top of the actual prop design, however, including how to put drugs in the game world, and how to present them in the interface.

For intoxication itself, a simple interface may work well. Being influenced could tap one ♥ with a flag describing your feeling. The effects themselves need to be implemented, but a lot can be done with simple status flags. Finer points, like long term effects and poly drug use, will have to be ironed out along the way.

Setting the dials to max random in a prototype generator yields some pretty varied results, like "Murphy (PBUH)", a plant juice to be ingested in the rectum, causing hallucinations, but with the possible side effect of strong and fast on-coming diarrhea. Frankly, that's one of the less weird ones. Transitioning from the prototype generator to data modules will definitely incur some fine-tuning, although hopefully with room for the occasionally utterly absurd.

One thing to make sure of, is that some sane default templates are more or less guaranteed to be generated. For balance' sake, there should probably be at least a few stimulants that increase healing or combat capabilities. We also can't have us a Western without booze, although the drink of choice across the Land may vary from banana wine to corn spirits. Some of the weirder drugs may come with factions and sites of their own, from Delphic cults who gather at natural gas sources to inhale the intoxicating fumes, to outcast colonies that willingly inflict themselves with a euphoria-inducing virus. Other encounters may include junkies/pharmacists paying for rare substances, ranches/pens with psychoactive herds, and other silliness. Sinister drug dealers may be a thing, but there will probably not be any legal sanctions against drugs as such, seeing as how the game plays in a land that hardly has had the time to get any laws at all. There may be abolitionists or a Temperance League, of course, possibly even zealots that sort rather in the general category of "homicidal maniac".

Morality studies in the Land
One funny thing that struck me in all of this, was that the question inevitably cropped up whether it could be alienating or inappropriate towards some audiences to add drugs in the game. I had the same thought about swearing at one point. And had to laugh at myself for questioning this in a game that's basically about killing vaguely defined "enemies". If anything, it shows I'm a product of cultural cliches.

On the other hand, I think the random generator will be spitting out some quite dangerous drugs, so I probably can't be accused of glorifying drug abuse. Regarding ethics as such, LoSt was never ever intended to be a showcase of goodness, and it's rather been a stated design goal to grey out "the alignment scale", aiming instead to focus on factors like reputation and social standing. If the game has an age rating, it's some Parental Guidance shit at least, although I can't imagine most kids would take any damage from messing around with my little game. I think the best I could hope for, would at least be to teach them some naughty words.

As always,

16 February 2019

LoSt Polls: Feature Feeler

First we had a couple of feelers down at Tom's place.
   –T. S. Eliot, The Waste Land

Which feature(s) do you want in LoSt?

 free polls
It's pollin' time again, my bois and gyrls. This round of voting is all about feature requests. I've tried (not with great success) to keep the options at a sane-ish amount, but you're of course welcome to mention other wishes in the comments.

You can vote in the blog's sidebar for as long as the poll is open, or use the widget in this post. (People on phones may not see the sidebar.) So if you have an opinion – informed or not – go ahead and vote, already!

In the meantime, keep reading for my own comments regarding each option, after a word or two about the background for this poll :P

I was happy about the previous poll (results here), and wanted to chug out another one quickly.

What I'm really working on these days, is to add more world factions/influences, with assorted places and plots. Adding each faction is a big task. I've already put many hours into Arken Town, and it's far from finished. Influences like "religious faction", "toppled civilization" and "mafia network" will be even bigger. So it's a question of development strategy which groups to put in and in which order. Some ideas may be too similar to another be worth adding, others just similar enough to slip in with few modifications. Some will require entirely new systems to realize.

For inspiration's sake, then, I decided to ask which new gameplay features y'all would like to see in upcoming releases. I'll probably be consulting the results for the next few releases of LoSt, as always taking your advice to heart while keeping the privilege of the dictatorial vote ;) But if the crowd is shouting for animal handling and underground levels, there could be mining companies digging deep and ranches running cattle across the Land. Heck, maybe even underground cowboys herding cave beasts in that nadirian biome.


Rundown of the options

The options are hopefully rather self-explanatory, but I'll jump at the opportunity to continue ranting for a bit. I think the options can be roughly divided into five parts: Time, Activities, Physics, NPCs, and Miscellaneous.

☞ Passage of time

Aging: Experience as well as adverse effects of age and trauma. Start young and die old, or quit at the height of your fame, maybe to show up as an NPC in another game (see below: Retirement). Or something like that ;)
Calendar, weather and seasons: Keep track of months, with scenery/world changes for each season. Random seasons with special effects? There might be the option to stay at a location for months or years, and gameplay effects of that.
Camping, survivalism: Probably not a flat-out food clock. But maybe something like requiring to rest daily: It could spend 1♄ and carry a small chance of healing a wound. A simple resting interface might offer some welcome pacing, if done well. 
Changing world, news flashes: Events that change the world state. Anything from "bandits besiege monastery" to "you contract green fever". Mainly, these events should appear on the game board, as dialogue and action.

☞ Activities

Construct or buy a house/home base: 'Nuff said.
Dice games and betting on fights: Probably betting by dropping ♄ on the table. Races and fights can be played out on the game map. A simple dice game should also be doable like that. 
Disease: Probably randomized diseases. The basic formula would start at picking values for variables like effect, duration, incubation, contagiousness, and remedy.
Drinking and drugs: The motivation to use anything (including drugs) in the game, should be game related. So intoxicants need beneficial effects, as well as dangers of abuse.
Dynamite rigging, trap setting: Tactical: set up the perimeters before a fight, and lure enemies to your preset bombs and traps. Props and shticks related to TNT and trap engineering.

☞ Physics and world features

Fire and water: Wildfire, burning fuses, volatile matter, flowing water, etc. Swimming and diving probably also falls in this category.
Height maps, slopes and terraces: Maybe simplistic, with terraces as special obstacles. But an altitude system could shine if it allowed for stuff like climbing up on rooftops and speeding trains.
Light and darkness: Wouldn't have to be too deep, some touches to add tactical and aesthetic variation.
Mines, caverns, underworld: Underground levels and lore pertaining to them.
Mounts/riding, wagons, trains, boats…: Probably using a velocity/inertia system, with riding as "merging" the rider and the mount into one being temporarily. For moving platforms, brush up on Galilean relativity.

☞ NPC interactions

Non-lethal combat: When your last ♥ is greyed out, you get incapacitated but not necessarily dead. Depending on who defeated you, they may spare your life, rob you, leave you to bleed out, finish you off, etc. The player could get similar options when winning a non-lethal fight. Could also be put in as functions of the AI, making NPCs run away more often, and/or adding a gesture of surrendering (like dropping your weapon), that NPCs should also recognize if the player does it.
NPC companions: NPC means Non Player Critter (human or animal :) There could be ways to solicit help for single missions, or gain long-term allies. In some cases, enslaved or captive NPCs can be an option. And of course a possible shtick to start out with a dog or equivalent animal.
Retirement, ghosts, legacies of players past: It could be possible to retire characters, who may even show up as NPCs in later games. Actual ghosts is another option. Something like Shiren's mechanism of mailing items to your future selves could also be used.
Ropes'n'lassos: Really a utility feature, but ties in (sorry) with social interaction. From bringing hogtied criminals to the tribunal, to parking your horse, ropes can be an interface helper. Lassos would be non-lethal weapons, and rope physics could be used for tripwires, fuses, nets, etc.
Rumors, investigation, lore gathering: I loathe to put in dialogue trees or spamming the villagers for rumors, but may yet try my hand at this. Look for interesting ways to convey and connect in-game lore and info. From learning about the flora and fauna, to simple whodunnit puzzles. 

☞ Miscellaneous

Tinkering, farming, crafting: The nature of crafting would probably lean on existing content. The game works well without, but it might be interesting to add something here.
Visions and dream quests: Thrown in for good measure.

If you read through all of that, I salute you! If you did scroll down to the bottom, I don't blame you. Now go and tick off some options here or in the sidebar! And walk in peace, and all that.

As always,