Author Topic: Land of Strangers  (Read 19724 times)

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Land of Strangers
« on: April 03, 2013, 01:04:58 PM »
Name: Land of Strangers
Developer: Aging Minotaur
Environment: Windows (exe), Linux (deb), Python+pygame

Download: http://agingminotaur.blogspot.de/p/downl.html

Edit: This post left mostly unedited, but the download links should point to the most recent release. Check out later entries for more updated info about the project.

So, I didn't release anything for the 7drl (this year either), but the jam gave me some momentum to start a new project, currently entitled "Land of Strangers". It's a western themed RL that aims to incorporate some board/card game mechanics. I've uploaded a very early version, set in an endless desert populated by gunmen and scorpions. This version should give a pretty clear picture of how marksmanship and card mechanics are going to work, although there's no real game yet. Still, I'd appreciate all and any comments at this point – which is why I am writing this post.

My plan right now is to implement some of the ideas I was kicking around in my head prior to and during the 7drl week. After that, if I can convince myself that the idea scales well, I'll probably expand the game. It may also turn out it should just remain a tiny RL shooter, though.

Some of the current features include:

* Hitpointless/simplistic RL on a hexagonal grid,
* infinitely expandable world map with various enemies, obstacles, etc.,
* inventory-less, skill-less action system,
* pseudo-elaborate system for marksmanship,
* dual wielding revolvers while almost sober!
* Distributed as Python sources or Windows binary (binaries for Linux and OSX coming up)

As always,
Minotauros
« Last Edit: May 13, 2017, 11:46:35 PM by AgingMinotaur »
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Vanguard

  • Protector of the @
  • *****
  • Posts: 1112
    • View Profile
Re: Land of Strangers
« Reply #1 on: April 04, 2013, 07:37:43 AM »
The western theme and board game-inspired mechanics are certainly interesting to me.  Is there a way to reload your gun in this version, or is the initial set of bullets all you get?

How do you intend to prevent this game from feeling unfair when your player has only a single hit point?  Will bullets have travel time?  Will there be a way to attack without putting oneself at risk?

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #2 on: April 04, 2013, 10:19:00 AM »
Reloading is currently done through action cards. Whenever an enemy dies, there is a roughly 50% chance it will drop a starshaped token you can pick up to increase your action repertoire. Some of these grant "Reload". (Hint: Scorpions are defeated without the use of firepower.)

The general idea was to use ammunition to pace the flow of battle, forcing you to discard interesting action cards in order to reload, etc. But the current system probably won't stick. In this testing version, it strikes me now, the player should have started out with at least one "Reload" card :P

Regarding single HP system et al: On the one hand, I want gunfighting to be deadly – not a setting where you take dozens of bullets, and still trudge along – but I might implement some sort of health/wounds, and certainly more ways for the player to fight at an advantage. Right now, the straight-faced goons are very easy to kill (if you have bullets). The game also needs a system for taking cover. As it is now, firing over cacti or scorpions increases the chance of "your shot goes wild" – maybe the penalty shouldn't apply if you stand adjacent to the obstacle.

In any case, thanks for trying it, Vanguard! That in itself is highly motivational.

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #3 on: April 04, 2013, 09:07:26 PM »
Some more thoughts on HP-less combat in a system like this:

A solution I might try out, is to have wounds as tokens. They would be put straight on your open hand if inflicted, forcing you to discard a random action card if you have no free slots. Some such wound tokens may be timed and/or have adverse effects (eg. "stunned for 3 rounds"). Long term wounds could sit in your hand until you get to a doctor, for instance. If all your card slots get occupied by wound tokens, you are overcome.

Currently, the player starts out with 2 open slots (I'm planning that you can increase your hand size later on), so that would give a 2+ HP system. A regular gun shot should probably take a novice down, in any case :P But I could include grazing shots, bleeding wounds, make scorpions less deadly.

Anyway, expect a tweaked version with some balancing and more conent soon.

As always,
Minotauros
« Last Edit: April 04, 2013, 09:10:41 PM by AgingMinotaur »
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #4 on: April 07, 2013, 12:31:18 AM »
To those it might concern: A new release is up. Get it here: http://code.google.com/p/land-of-strangers/downloads/list

I fixed some simple bugs, balanced the game to be easier (you now start out with ammunition, scorpions are easier to kill), as well as added some infrastructure, such as saving/restoring and a main menu. There's also the bare bones of an achievement system in place, inscribed on your tombstone when you die.

Overall, this release should be less deadly than the last one, with a more pleasant UI and at least the semblance of a topography. I hope to give map generation some loving next, and to find out what I can wrangle from this action system. The system needs something like currency/food clock/mana, to regulate the flow of the action cards. Of course, the action card system is envisioned a bit as an alternative to cool-down systems, but if the player ends up micromanaging his repertoire of actions between every shootout, that's no good either. And it can be difficult to scale to a bigger game, since the player can't reliably predict when s/he'll have access to which cards. Imagine, in a game like Crawl, waiting to enter a level where you need a particular resistance, but having to wait until that resistance turns randomly up on your hand. Or maybe not :P

Changelog:

* (Bug) Actors outside current map view no longer renders to screen.
* (Bug) Quick fix: Discarding "Dual wield" unwielded secondary gun,
  even if another "Dual wield" card remained in player's hand.
* Some tiny tweaks, including a new action.
* Scorpions can now be shot.
* Pc now starts with a Reload action card.
* Started implementing main menu.
* Upon death, game resets rather than exiting.
* Saving/restoring implemented (for single save slot, but it works).
* Started implementing simple achievement/statistic system.

As always,
Minotauros

This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Vanguard

  • Protector of the @
  • *****
  • Posts: 1112
    • View Profile
Re: Land of Strangers
« Reply #5 on: April 07, 2013, 07:03:28 PM »
The system needs something like currency/food clock/mana, to regulate the flow of the action cards. Of course, the action card system is envisioned a bit as an alternative to cool-down systems, but if the player ends up micromanaging his repertoire of actions between every shootout, that's no good either.

This looks to be the biggest potential problem in this game.  Being ready for an encounter is a matter of busywork rather than tactics or resource management.  It might be a good idea to include the equivalent of a "rest" command, where the game auto-cycles through your deck until your gun is fully loaded, and your favorite set of actions are in your hand.

Here's an idea: what if you your game had safe areas where the player can freely reload their gun and select which actions are in their hand?  That way the player would still need to manage their deck, but only in situations where it's worth their attention.

This would combine nicely with a mana-like resource management system.  You could put every used or discarded action into a discard pile while in a dangerous zone.  Cards in the discard pile can not be drawn again until the player reaches a safe zone, at which point the discard pile is reshuffled into the draw pile.  That way the player is encouraged to not mindlessly discard their actions - even if they didn't get the card they want, they should still try to make use of it, since they won't get the chance to use it later.

Is LoSt at all based on the card game Dominion?  It reminds me of that a little bit.  You've got a bunch of actions that are enabled by randomly drawing cards from your deck as well as lodestone-like dead weight cards that don't do anything.

EDIT:

Oh, by the way, there doesn't seem to be a way to directly discard the action in the #2 slot.  Pressing shift + 2 goes to the save/quit menu.
« Last Edit: April 07, 2013, 07:06:23 PM by Vanguard »

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #6 on: April 08, 2013, 09:25:05 AM »
Thanks again for your comments, Vanguard. I've also been thinking along similar lines as you ("rest" command, "safe area" where you reset your deck). There are some potential pitfalls, but hopefully I'll work out a system and UI that works. You mention Dominion, and that actually is a source of inspiration. I only played it a few times, but really liked the deck building mechanics1. Right now, I'm having a hard time transferring that kind of logic to a RL on a grid, where timing and spatial perspective is quite different. I'm also afraid some things that are fun in a physical game, can become a hassle on the computer (eg. "I'll just discard these three cards, lay this one down on the board, and trade these four in with the bank for new ones" translates to mashing a dozen keys). So we'll see ... will try to bring some fresh ideas to the table for the next release.

Oh, by the way, there doesn't seem to be a way to directly discard the action in the #2 slot.  Pressing shift + 2 goes to the save/quit menu.
Oh, what a silly bug. Consider it squashed in the next version. In the meantime, I'd wager you can even fix it manually by editing the options file, changing "ctrl_cmds['cmdQ']=[113,27,64]" to "ctrl_cmds['cmdQ']=[113,27]".

As always,
Minotauros

1 I gave away Dominion for Christmas a few years ago, which was when I played it. I remember going to bed thinking: "Dominion+Kings & Things+RL=?" – maybe that is an idea that still merits attention :)
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Legend

  • Protector of the @
  • *****
  • Posts: 650
    • View Profile
    • Email
Re: Land of Strangers
« Reply #7 on: April 24, 2013, 02:37:24 AM »
Really like the sound of these ideas. I'll try to give it a go soon.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #8 on: April 24, 2013, 07:33:07 PM »
Thanks Legend, for your motivational post. LoSt is a bit on the backburner these days, though I've been tinkering and thinking about it a bit. I'm currently unsure if the card mechanics fit the idea of a huge world, that I somehow also try to get at in the current version. (And I do like the idea of developing the setting of LoSt, with wildlife, natural expanses and resources, inhabitants of all kinds, their politics and legends …) A more constrained tactical space might work better, making the cards the meat and bones of the system, not just an extra layer slapped on top of a game mostly about walking, shooting, and bumping. Right now, I have the general idea for at least the next release, hopefully with some actual direction – probably a simple bounty system, where you visit a [sheriff/foo] to collect rewards, rest up, and get new scalp hunter assignments. If that version is more fun to play, I hope to pursue the game. If not, I might scrap either the card game ideas, or the lonesome cowboy setting, or both, and try something else. (I have another idea entirely that I would actually much prefer to make, but we'll see ;))

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #9 on: May 08, 2013, 10:17:00 PM »
Slow working on this, but I have what I believe to be a pretty good plan for the way forward. Stay tuned for a proper game in version 04 8)

In the meantime, I just wasted an hour on a random currency generator, too silly not to use for the game :P Behold:

[ ¢ ] centavo copper
[ ¢ ] bit
[ Au ] gold crown
[ ¥ ] yuan bill
[ Cu ] copper
[ Ag ] silver
[ € ] ecu
[ Rs ] rupee mazuma
[ Ag ] silver zig
[ Cu ] copper
[ ₱ ] peso silver
[ Cu ] zigzag copper
[ ¥ ] yen zig
[ ₯ ] silver drakhme
[ д ] gold dinar
[ ₩ ] cowry won
[ Au ] quasigold
[ $ ] dollar gold
[ £ ] gold pound
[ ¥ ] quasiyuan

As always,
Minotauros

PS. Here is the actual module, for anyone interested:
Code: [Select]
#!/usr/bin/python
# -*- coding: utf-8
import random

# Common, Rare, Mineral: currency names
Common=[("dollar","$"),
        ("pound","£"),
        ("yuan", "yen","¥"),
        ("peso","₱"),
        ("bit", "centavo","¢")]
Rare=[("ecu","€"),
      ("dinar","д"),
      ("rupee", "Rs"),
      ("baht","฿"),
      ("won","₩"),
      ("guaraní","₲"),
      ("hryvnia","₴"),
      ("naira","₦"),
      ("tögrög","₮"),
      ("lira","₤"),
      ("ruble","руб"),
      ("zloty","zł"),
      ("drakhme","₯")]
Mineral=[("gold","Au"),
         ("silver","Ag"),
         ("copper","Cu")]

# Prefix, Suffix: further currency epithets
Prefix=("piece ","pseudo","cowry ","quasi","mazuma ","nugget ","paper ","",
        "soveriegn ","sterling ","zigzag")
Suffix=(" piece"," cowry"," bill"," coin"," chip"," mazuma", " nugget",
        " crown", ""," mint","zigzag")
       

def print_random_currency():
   prefix=""
   suffix=""
   currency=""
   # Determine currency name
   d6=random.randint(1,6)
   if d6<3: currency=random.choice(Mineral)
   elif d6==3: currency=random.choice(Rare)
   else: currency=random.choice(Common)
   if len(currency)>2:
      # print "Currency:",currency
      symbol=currency[-1]
      currency=random.choice(currency[:-1])
   elif len(currency)==2:
      symbol=currency[1]
      currency=currency[0]
   # Determine "cute" pre-/suffix
   if d6>2: d3=random.randint(0,3)
   else: d3=random.randint(0,2)
   if d3==1:
      prefix=random.choice(Prefix)
   elif d3==2:
      suffix=random.choice(Suffix)
   elif d3==3:
      coin_flip=random.randint(0,1)
      if coin_flip:
         sfix=random.choice(Mineral)
         suffix="".join([" ",sfix[0]])
      else:
          pfix=random.choice(Mineral)
          prefix="".join([pfix[0]," "])
   if prefix=="zigzag":
      prefix=random.choice(["zig ","zag ","zigzag "])
   if suffix=="zigzag":
      suffix=random.choice([" zig"," zag"," zigzag"])
   if prefix: pretty_string="".join(["[ ",symbol," ] ",prefix,currency])
   elif suffix: pretty_string="".join(["[ ",symbol," ] ",currency,suffix])
   else: pretty_string="".join(["[ ",symbol," ] ",currency])
   print pretty_string

if __name__=="__main__":
   print "SOME CURRENCIES:"
   print ""
   for i in xrange(0,10):
       print_random_currency()

#Re/Rs (rupee*) *It is common to find a prefix before the digits
#                denoting the rupee currency value written as "Re: 1"
#                (for one unit), or "Rs. 140" (for more than one
#                rupee). (SH: Eller rupie som Rs med gjennomstrøket R?)

# Further note: People and prose discussing money can write it
# shorthand like "5 $", "160 ¥" or more elaborate, using either or
# both of the currency name and epithet: "That'll be four pseudos, you
# brute!", "Want to earn some pesos?", "I pay 100 silver drakhmes for
# the head of Abraham Beston!"
« Last Edit: May 08, 2013, 10:23:27 PM by AgingMinotaur »
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

Vanguard

  • Protector of the @
  • *****
  • Posts: 1112
    • View Profile
Re: Land of Strangers
« Reply #10 on: May 09, 2013, 01:48:25 AM »
That rules.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #11 on: August 30, 2013, 09:46:56 AM »
So, to anyone who might be curious about how this is coming along. I'm probably picking this up again, but I might be rewriting the thing from scratch, aiming at a more traditional RL. The card-based mechanics probably would work best either in a really confined tactical space, or else in a game where you control something like an entire civilization. I considered making the game bimodal, with an overworld-mode to organize your deck in between concentrated shootout scenarios. But that doesn't really fit the bill for me. If I'm to make this, I'd much rather aim for a feeling of a vast prairie/desert world with small settlements, mines, etc. to explore seamlessly.

Right now, I'm considering whether or not to keep the hex grid or to situate it on a regular grid of squares. I love the kind of tactical space offered by a hex grid, but hobbling together a good interface for navigating it is just damn hard, and stuff like houses do undoubtedly fit better on a square grid. I think hexes can work well in a game aimed to be played with a mouse or touchscreen, but I loves my keyboard, so ... I haven't really decided upon this, though, still rattling my brain with arguments for and against.

I'm doing sketches for a general design, where speed/initiative might play an important part. I envision the player acting simultaneously as other actors, with each turn divided into several ticks, which are qualitative rather than quantitative: Acts of pure thought go first, followed by melee, followed by missiles, followed by movement, followed by tool use, or something along those lines. This would be fitted into an otherwise simplistic system: You get to wield one item and wear one or just a few. In addition, I might keep the system with stances that you can toggle, and I'll definitely keep a system of special actions, that will rather have penalties/constraints instead of mana/cooldown – say, stuff like: pass one turn to fire with increased accuracy; fire faster with lower accuracy; do double melee damage at the cost of speed; spend one turn soaking X damage instead of acting.

As far as health and wounds go, I'm probably landing on a system with Body Levels. A typical human would have two BLs, visualized as hearts, or something. Suffering a single melee attack would "bruise" you, causing your "top" BL to blink in the next turn. Being hit again while in this state costs you the entire BL, but if you manage to stay out of harms way, the bruise is regenerated. So being slapped in the face every other turn leaves you unharmed at the end of the fight, but if you get ganged up on or struck repeatedly, you risk losing your precious BLs, which will only regenerate under special circumstances. Firefights should be deadly, so taking a bullet probably pops one or two BLs immediately. Of course, there should be stuff like bullet proof vests (granting perhaps an extra "bruise" tick to your BLs), and intrinsics like "fat" or "tough", that may grant a whole extra BL.

While thinking about all this stuff, I'm also fiddling with some random generation. The currency generator may have to go (if lead bullets are to be the gold standard), but I consoled myself with a random world name generator. I'm also picking up notes for random genotypes that I did for Squirm, originally. So there'll be some kinds of herds for the cowboys to deal with, but they may turn up in different worlds as six-legged bovines herded for meat, or wild ostrich-like fowls whose eggs nomads poach, or underground reptiles who secrete a poisonous oil also precious to the industries back in The Old World. Similarly, I might write up some culture generators to decide upon things like writing technology (do they use paper and ink, stone tablets, or something more esoteric, like quipu or nkisi nkondi?) But here I'm getting ahead of myself. I hope for a more modest release within a few months – I'm going to try out "7 Session RL" as a devel method, trying to finish something within seven coding sessions, but allowing for breaks in between.

(I have no blog, and I must rant. Might as well instead of working today, as I have to pop by the embassy to cast a vote for the Norwegian Communist Party (farting in the wind, it seems, the Conservatives are ganging up with the racist neo-con party FRP to take over parliament this fall) before attending a children's birthday party in the afternoon.)

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

miki151

  • High Priest
  • ****
  • Posts: 264
    • View Profile
Re: Land of Strangers
« Reply #12 on: August 31, 2013, 07:05:44 AM »
Interesting read, please keep on posting (about RL, not politics :))
KeeperRL, Dungeon Keeper in roguelike style:
http://keeperrl.com

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #13 on: August 31, 2013, 10:57:44 PM »
Gotcha :)

A final note on the world name generation. The world name will be used to set the random seed before generating the map, so that two equally named worlds yield the same map. The player will be able to manually set the world name or let the random generator come up with something. Maybe, just maybe, there'll be some system to keep track of what goes down in the worlds that have already been loaded by the player, so that if you revisit a certain world, your previous characters' actions and their repercussions will still be in effect.

The current generator focuses on getting very diverse names for the continent, so that two identical names won't crop up too often (it currentely generates a few thousand names before producing the first dupe). It still needs some work, though, as it now outputs anything from the appropriate, through the interesting and all the way to the downright silly:

Zenith Azimuth. Dust Downs Way. Desert Famished Crumble. Silt Fardale. Thacker's Dust. The Flat Watership. Yoama Gutexum. Pallid Black Ridges. Dancing Wounded Bluffs. The Nelson's Knee. Yonderjack Rutled Galls. The Nance Traitor World. Bodie's Pallid Fields. The Blow Sand-down White. Eaglejack Golden Hills. Settlers Brown. The Adauqua Uhaneuyak. Star Groping. The Benalamam Chauna. The Greenwolf Half Acre Union. Thirsty Elseborder. The Magdalene Orchard Starving. Badmoon Unsown. Astanahnee Gutetuk. Tephxa-yon Shelter. Far Dustful. Shulamoku Wild Bluffs. Hollow Amber. Mak'ac Dolamen. Carbon Moonship.

See if I won't make some mock-ups for hex and grid view, one of these days.

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

miki151

  • High Priest
  • ****
  • Posts: 264
    • View Profile
Re: Land of Strangers
« Reply #14 on: September 01, 2013, 05:19:42 AM »
I like the names. I think they are similar to Dwarf Fortress in that they consist of English words. Could you describe your algorithm? I use a markov chain and it can only produce very obscure names, like: Crematoril, Demiplanem, Abarantis, Underwick, etc.
« Last Edit: September 01, 2013, 05:22:54 AM by miki151 »
KeeperRL, Dungeon Keeper in roguelike style:
http://keeperrl.com