Author Topic: Land of Strangers  (Read 19710 times)

zasvid

  • Priest
  • **
  • Posts: 58
    • View Profile
Re: Land of Strangers
« Reply #15 on: September 01, 2013, 12:47:56 PM »
Oh, I have only now noticed that your western roguelike has its own thread, Aging Minotaur. With the currency generator for all to see. Cool.

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'll provide three arguments for hexes (I think that hexes are great and would love to see more hex roguelikes, even though I'm making a grid based one myself):
  • *all keyboards I've seen have at least one cluster of keys pretty good for hex gameplay (and arguably better for it than for 8-directional grid) - on my current one all the clusters from weasdzx to p[l;'./ are conveniently hexagonal and  Insert/Home/PgUp/ [line break] Del/End/PgDown. There probably are keyboards setup in a different way, but are they more numerous than numpadless keyboards?
  • *in a hexagonal world people might as well live in hexagonal buildings. it's not like no one does in reality!
  • *however, if you are beholden to rectangular buildings the kind you'd see in the Real World Wild West (or maybe Hollywood Wild West), then there's another possibility (cribbed from a hexagon-mapped board game I have) - walls could be (thick) lines going along the border of tiles or through them. Connect centers of tiles. Treat tiles that have a piece of the wall as you would wall tiles, while tiles that have a wall border you can step on, just not cross to the tile on the other side of the border. If it's unclear, I'll try to find some examples if you ask. Of course, you might also want to adjust some fov/lighting algorithms here so it doesn't look stupid if you see a quarter tile inside the building e.g. in a corner

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #16 on: September 01, 2013, 03:38:33 PM »
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.
Those names aren't half bad either, in my opinion ;) Anyway, the algorithm I use is very simple, based on how I generated random content in my childhood, with dice and two-column tables. See the currency generator earlier in this thread for a really simple example.

Starting out: names such as "Far West", "Wounded Silt", "Clay Wastes" are generated from three lists of words – one with prefixes, one with suffixes, and one with words that can be put in both places. These are just randomly pieced together. Adding to that, I put in a list of proper names like "Johnson", "Virgil", that can be used as prefixes. To make things a bit more interesting, I also put together a tiny generator for portemanteau words, that work along the same lines: A list of word beginnings and a list of word endings that are randomly put together, resulting in elements such as "Redwolf", "Starfoot", "Wingless", "Farwhere", etc. Finally, another tiny generator for exotic proper names, once again consisting of syllables that are just randomly put together (two, three, or in rare cases more); this is where words like "Nekenarat" and "Coram" come from.

To get an actual name, I start with a string, something like "<prefix> <suffix>", "<name>'s <suffix>", "<exotic_name> <exotic_name>", "<composite> <prefix> <suffix>". As long as there's a "<" in the string, the engine picks a random element from the appropriate list to put in that place, so that "<composite> <prefix> <suffix>" might yield something like "Boarvalley Barren Rocks". To make sure everything gets a bit out of hand, the lists of alternatives can themselves put in more elements to be randomized. So a valid prefix is "<prefix> <prefix>", which proceeds to choose two random words from the list of prefixes.

Some tiny tweaks to randomize further and clean up, include making sure the same word doesn't show up twice (as in names like "Dust Dust"), putting in a random "The" or genitive here and there, splitting up the exotic names with dashes and apostrophes ("Pum-ana-o Atxhu'ube"), and so forth.

Child's play, quite literally.

@zasvid: Yeah, your arguments are compelling. I did consider hexagonal architecture, but I think that may be too far over the top, even for this outlandish setting. But there's the solution you mention, as well as this fake isometric view, which does however make corners a bit strange, since they all end up having different tactical qualities:

Code: [Select]
. . . . . . . .
 . . . . . . .
. . . # # # # .
 . . # . . # .
. . # . . # . .
 . # . . # . .
. # # # # . . .
 . . . . . . .
So I'm certainly not giving up on hexes quite yet.

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 #17 on: September 01, 2013, 05:18:46 PM »
As zasvid said, I think rectangular buildings are doable. Allow walls to be visually placed on tile border, and effectively occupying both tiles. It would require a demo, though, to see if it works out.

Code: [Select]
. . . . . . . .
 . . . . . . . .
. . . # # # # .
 . .  #  .  #  .
. . . # . . # .
 . .  #  .  #  .
. . . # # # # .
 . . . . . . . .
KeeperRL, Dungeon Keeper in roguelike style:
http://keeperrl.com

Vanguard

  • Protector of the @
  • *****
  • Posts: 1112
    • View Profile
Re: Land of Strangers
« Reply #18 on: September 02, 2013, 10:43:13 AM »
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.

I really like how unconventional your ideas are.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #19 on: September 05, 2013, 09:36:03 AM »
Thanks for all comments, people. That's highly inspirational. I've been stripping away parts of the code that I don't need, and started more or less afresh. I'll be testing out the combat system on a hexagonal grid to see how that works. To make matters worse, I figured I might as well implement explicit facing for my first tests ;D With that feature turned on, line of sight will be panoramic, but turning 60° will cost you (and other actors) half a turn. I made a mockup for two possible ways to do houses, as well as how the side menu might end up looking. I'm making this on a netbook with a tiny screen, so everything is a bit cramped. I'm unhappy about the fact, but with a y resolution of 500 pixels, I managed to squeeze in nine-ten lines of messages as well as fit the inventory interface on screen. This means there won't be a separate inventory menu, it'll all just be unimodal goodness. I feel like the menu needs at least one or two pretty separators or borders, though, to help keep the view orderly. Users with bigger screens will get a more spacious view, in any case.


Concerning the houses, the parallelogram looks kind of funky, but the square one may cause UI problems, as you'll have to zig-zag along the walls. If I skip explicit facing, that needn't be a problem, as the application can simply nudge you in the right direction whenever you're bumping into a wall. If turning should cost time, though, I imagine square houses could get frustrating. So I might go for slanted houses, or drop explicit facing, or end up using a regular square grid, depending on how my tests turn out.

I think I'll also include small animations, for those so inclined. Purists who don't want to wait 0.6 seconds between every turn will of course be allowed to turn off cosmetic effects. This mockup is a bit crude, but goes to show the principle I have in mind (inspired more than a little by this scene from a Harry Potter movie :P you'll bear with my vulgar allusions, and the crappy video quality of that link, but ever since I saw that movie I thought the way they did the marauder's map would make a fabulous interface for a RL, at least if executed by someone with more skill than myself)


I'll keep you posted. In the meantime, keep f*ing that chicken.

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 #20 on: September 06, 2013, 03:27:02 PM »
What about hex houses?  Make everything a hex.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #21 on: October 06, 2013, 12:06:25 AM »
There's a new version up, 04 subtitled "An Anatomy of Melancholy". Mostly, it's another test run, trying out solutions to the interface and an engine for basic interactions (you can throw a die, smash a window, jump, and shoot stuff). The next version will hopefully feel more like a game ;) Download here.

Comments are welcome, of course. I'm trying out some different movement schemes. You can currently toggle explicit facing on and off in the configuration menu. I like some aspects of explicit facing (like how the game always knows what you're aiming at), but it's a hassle to navigate, sometimes. I might settle for "implicit" facing with Shift+direction to change direction without moving – and just skip prompting the player for a direction when s/he shoots or similar. Other than that, I'd be curious as to what you people think of the inventory/action interface.

Remapping the keys are currently not an option, but will be put in very soon, probably for V05. You also have to use the keyboard to control the thing, but support for mouse and gamepad is on the todo-list, and I'm having this in mind as I'm designing the interface.

Controls:
* Arrows, numpad or weadzx to move
* Hold shift to turn in a direction without moving
* Enter: Primary action (A-command)
* Ctrl: Secondary action (B-command)
* Space: Enter inventory/actions menu
* Tab: Toggle between inventory/actions menu
* 1-9: Quick choose menu option
* Esc: Open game menu

Changelog:
* Rectangular houses
* Scrapped action card mechanics, mostly redid engine from scratch
* Introduced explicit facing, currently optional
* Reworked right-hand menu
* UI to navigate menus
* Inventory/action menus: Displays correctly. Wield, drop, etc.
* Basic item usage and a few sample props, including guns
* Basic action interface and sample interactions
* Implemented wounds, testing with thorn bushes and scorpions
* Basic turn/time system in place
* Field of vision
* In game configuration menu and various options

As always,
Minotauros
« Last Edit: October 07, 2013, 05:37:58 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 #22 on: October 07, 2013, 09:12:34 AM »
Update: Binaries are now up for Windows and Linux. The Linux release is in the form of a *.deb-file. I'm curious to see if it gets any downloads :P If anyone gives a shout, I'll look into packing it as *.rpm, as well. As far as OSX goes, it's on the todo-list.

Now I'm more or less at the point where I can start making the actual game, here. Hah.

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

zasvid

  • Priest
  • **
  • Posts: 58
    • View Profile
Re: Land of Strangers
« Reply #23 on: October 07, 2013, 05:04:55 PM »
You've got at least one linux binary download now! :) So far, it's pretty cool.

"Wait" action is sorely needed.

One bug encountered, while trying to change the font size:
Code: [Select]
Traceback (most recent call last):
  File "main.py", line 1269, in <module>
    one_parti(screen)
  File "main.py", line 1207, in one_parti
    cur_parti.one_turn()
  File "main.py", line 1141, in one_turn
    pc_a=self.get_player_cmd() # (event,time_delay,target)
  File "main.py", line 1054, in get_player_cmd
    return self.get_player_cmd(t_delay) # if no command passed yet
  File "main.py", line 911, in get_player_cmd
    elif c=="cmdQ": main_menu()
  File "main.py", line 242, in main_menu
    config_menu()
  File "main.py", line 342, in config_menu
    if submenu_options[sub_b]=="scroll_edge":
NameError: name 'sub_b' is not defined

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #24 on: October 07, 2013, 05:36:49 PM »
"Wait" action is sorely needed.
You're quite right. So far in my own test runs, I've just pulled out and used the dice whenever I needed to skip a turn, but I'll definitely add a proper command to stand still.

Code: [Select]
Traceback (most recent call last):
<snip>
NameError: name 'sub_b' is not defined
Sigh. That should read "sub_c" in the code, not "sub_b" :P On the bright side, a mistake that stupid shouldn't be too hard to fix.

Thanks for playing.

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 #25 on: October 07, 2013, 09:43:20 PM »
Some thoughts and ideas for coming releases (bug and feature request of zasvid already implemented):

On the side of the engine, I'll try not to focus too much on that for the time being. I'd like for the next version to have remappable keys (trivial, but a bit boring, to implement) and a start menu, rather than dropping you right into the game. More longterm plans include adding a function to zoom in and out of the map (scaling to 1:4 every time you zoom out allows me to fit ~16 true hexes in one "superhex") – this can effectively take the place of an overworld with long-distance travel options, without breaking game flow too much.

Leaving fancy stuff like that for later, I'll instead try to add some actual content for the next release. I want to work on the setting and give the map building routine some loving. That stuff is fun to work on, but also much more difficult than just assembling the engine. I envision at least within a few releases to have a game with a moderate scale, where you are assigned a mission in the beginning, something simple, like: You arrive from the Old World on behalf of some mining company to investigate weird (or missing) reports from a lead mining community. This means I get to set up your RL-standard village with a dungeon. Of course, there will be the option to head out into the wilderness to explore a practically infinitely expandable desert continent (which should also be more interesting than now, with meaningful encounters, settlements, and such).

On the bare-bone content side of this, I need more critters, props and abilities. There'll be various human archetypes, from humble proles, to natives, to different kinds of shooters (pistol wielding goons like yourself, mad prospectors firing shot guns that must be reloaded for every spread shot, shooters entrenched in ditches or hidden in trees …). There's also the possibility to expand on the animal life (here I want to do semirandom species based on templates: stuff like "small livestock" (~chickens, pigs), "cattle" (not necessarily bovines, though, might as well be huge lizards), "big predator" (quick or slow, and with various abilites, to spawn anything from alligators to tigers), "game" (your buffalo-likes) – and I wouldn't be ashamed to model something on buzzards or locust swarms, either). Same goes for the fauna (again, plants should be more or less randomized – there might be fruits, berries, roots and shrooms that are medicinal or poisonous, not to mention dangerous plants that sting, entangle, or even walk around; stuff like random growth patterns could also be thrown into the mix, so you might get anything from solitary plants with edible berries and a nasty stinger, to glades of weeds that impair your movement).

There should of course also come new props and weapons into play. I guess a western game needs a variety of firearms, from derringer-like small guns with a single barrel to rifles and carbines fit for elephant hunting, and even cannons and mounted machine guns. Melee weapons will also be added, of course, most of which might also be usable as tools (pick ax to clear rock, etc). Concerning utensils, I might add periscopes and telescopes (temporarily shifting your point of view a single hex or a whole screen away), lanterns, explosives and mining utensils, drugs, flammables, and maybe stuff you can wear (bullet proof vests spring to mind). The list of equipment isn't very long at the moment, though. It's not as if I'm adding wands of polymorph any time soon, but I guess some snake oilers might procure tonics with potion-like effects.

There's also a wide range of skills and activities to consider. Once I have some stuff that changes owners in the course of the game, there'll need to be trade going on, probably using lead slugs as the main currency. Gambling is also a must, and should be more than just automated card game outcomes. Cock fighting should fit the bill, as you can choose which bird to bet on, before the critters are actually pitted against each other in the game. This leaves possibilities for imaginative attempts to cheat and such – which in turn opens up for lynch mobs (rather than the gallows, I think breaking wheels will be the preferred form of execution, and of course taring'n'feathering an option for lesser misdemeanors). For skills, I'm currently envisioning skill trees that grant various feats: Feats of Acrobatics to move around the map more efficiently, feats of Marksmanship to allow stuff like called shots, gun fanning, and dual wielding … at some point, there should also be a system implemented for riding, and maybe for taming wild beasts and almost certainly for driving cattle. And there should probably be a reputation system that shifts peoples' bias towards you (local heroes are loved by townsfolk and despised by criminals, cop killers get bounty hunters on their necks, and so forth).

Still on the fence regarding hunger/thirst. I guess it makes sense in the setting, but I've never been very fond of how food is managed in most RLs. Another issue I haven't really got to consider deeply is how character building is going to be done. I think character development should be based more on acquiring mundane skills and traits than piling up a gazillion magic items and superhuman stats. I might add traits like "strong", "weak" that tweak single properties or grant intrinsics, rather than a stat-based system. If I'm going to have a character creation system, I'm still not quite sure how it will be done. Maybe choose one of several starting archetypes (gambler, drifter, desperado …) and modify with a few traits – or I might let you always start out as a Nameless hustler, and develop the character from there.

Just brainstorming my head off. It goes without saying that a lot of this touches on stuff that will take a long time to implement, so don't expect a sprawling world with a living economy and an advanced culture for the next release. Instead, I'm hoping to have at least a single mission to aim for, with some skills/traits and props in place and a small handful of adversaries, allies and extras (human and animal). I haven't even touched on map generation in this post. Suffice to say, I was recently moved by a comment by Don Van Vliet (in a documentary on the same) – late in his life, he moved out into the desert to become a painter, and mused about how that landscape is extremely subtle. It would be nice to capture some of that subtlety: here a shrub or cactus, over there a far-away mesa, but enabling the player (and adversaries' AI) to take advantage of those simple variations. There can be steep hills (that block movement and impair firing accuracy from the low, but not the high ground), ravines fit for ambushes, etc. Maybe more on that later.

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 #26 on: October 08, 2013, 01:17:29 PM »
Sounds cool.

I approve of your decision to use traits instead of attributes.  I think they're a strictly superior system that can do basically anything attribute systems can, and then some, while avoiding most of their flaws.  Plus, they have more of a "feel," you know?  If your gunslinger is "strong," but not yet "very strong," that paints a more vivid image than if your elf has 34 strength or whatever.

I think that for most roguelikes, it's better to start out with a blank slate character or at least make character creation very brief.  You'll probably be doing a lot of restarting, and it's nice to get back into the action right away.

AgingMinotaur

  • Protector of the @
  • *****
  • Posts: 756
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Land of Strangers
« Reply #27 on: May 27, 2014, 10:20:27 PM »
Land of Strangers v05: "A Shrug and a Fistful"

Those who lived there, called it simply the land. It was the new frontier, riddled with riches and fraught with risks. A criminal in the old world, you left to become a settler on the outskirts of the badlands. The coin economy was measured in lead. During a skirmish between militias and native occupants, you were captured and taken to work in the lead mines. You bare life became the terror of slavery. There's no way but down. Or out.

Finally, a new release of Land of Strangers 8) I'm just uploading the Python source for now (requires pygame to run). I may build binaries of this release, depending on how quickly I get the next release out. Still, it's a tiny game with a win condition now. You play as a mine slave with the goal of escaping into the open.

Download

Source (zip): https://dl.dropboxusercontent.com/u/21560242/LoSt_05-source.zip
Source (tgz): https://dl.dropboxusercontent.com/u/21560242/LoSt_05-source.tar.gz

All and any comments are very welcome, of course. The aim of this release is to try out the basic systems, so there's not much meat on the bones, yet. I need to balance basic combat, especially melee. Going toe to toe with a melee opponent is very dangerous atm, and similarly it's very easy to take down the shooters if you get up close (also has to do with their stupid AI). But I think it's shaping up to become a nice little puzzley RL, with some work on the systems as well as more content.

Gameplay

Navigate the hex grid with arrow keys, numpad, or weadzx. Press "s" to stand still. To aim in a certain direction, hold shift and press the direction key. Actions can be accessed with main key (bound to R as well as Enter) and secondary key (bound to C and Control). There's a context menu that shows either an extended list of actions, or the inventory. Use 1-9 or Space to access to access this menu, or TAB to switch between actions/inventory. Press ? for help :) The keys can be reconfigured in the game. Esc opens the main menu.

UI: Aims to be easy to pick up, so I'm interested to hear how convoluted y'all find it.

Damage: You start out with three clusters of three hearts. And each attack takes away some hearts in one or more of the clusters. A pick ax does (2x1) damage, meaning that one heart ("bruise level") is marked in two clusters ("body level"). A gun does (2x3), inflicting 3 bruise markers in 2 body levels. As long as a body level is not utterly depleted, you regenerate the bruises quickly. An empty body level doesn't regenerate at all.

Time: Each turn is divided into five time ticks (melee is performed before shooting, which is performed before movement, which is performed before tool use). This system, together with health, isn't really balanced yet. But I hope to get it working with a few tweaks, rather than having to resort to a D&D-clone with hit points et al.

Shooting: Shooting far targets decreases your accuracy. There is a system for cover in place, but no actual object to provide cover in this release.

Seed: Name the world "Long Northveld" for a fair tutorial level. It is challenging enough, but starts you out with a slight edge. (Hint: Best opening is to press "Enter" twice :P)

Short changelog:
Code: [Select]
=== V05 (A Shrug and a Fistful) ===

* Various tweaks and fixes, above and under the hood
* Bug: Cache was not flushed when new game started
* Bug: Game crashed when reconfiguring numerical values in the menu
* Bug: In config menu, window can no longer be manually resized
* Added main menu
* Added option to set random seed ("Name the land" in main menu)
* Added command to stand still
* Removed explicit facing and reinforced aim functionality
* Made help message (more) helpful
* Removed confusing scrolling options from configuration
* Added option to remap keys
* Added option to turn bullet animations on/off
* Added option to scale sprites to double size
* Added look function
* Added (and temporarily removed) plantlife
* Refactoring events architecture
* Added wounds and bruises
* Shooting: No accuracy malus from obstacles directly in front of you
* Shooting: Accuracy malus for long ranges, depending on weapon
* Melee: Basic melee system in place
* Content: Simple scenario with a cave generator and a win condition

Plans for the next few releases (and beyond):

* Balance combat, especially melee. Add evasion, parrying, or other manoevres?
* Skills and feats: Modelled on how jumping works now. Acrobatics, gunmanship, martial arts, meditation techniques, dual wielding, etc.
* Make straightfaced goons a tiny bit smarter, avoid being slaughtered in melee etc.
* More opponents and people: Hierarchy of slavers/guards, animals, slaves/workers …
* More melee weapons (slavers' props) and firearms (rifle, pistolsword, duck's foot gun, pepperbox)
* Explosives
* Barrels, sandbags, barbed wire, ditches …
* Some story elements, tidbits of lore about the land, probably framed as NPC speech bubbles, in item descriptions etc.
* Character generation
* Better graphics, probably with (optional) animations
* Overworld (which will be the longterm focus of the game) – with all that entains … ;)

As always,
Minotauros
« Last Edit: May 27, 2014, 10:29:44 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 #28 on: May 27, 2014, 10:56:45 PM »



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

jim

  • High Priest
  • ****
  • Posts: 375
    • View Profile
Re: Land of Strangers
« Reply #29 on: May 28, 2014, 02:15:56 PM »
Impressive! I will give it a go on my long-awaited day off tomorrow. Thanks for the continued development. Westerns are awesome.