Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: 1 ... 19 20 [21]

Author Topic: Iron Testament - an ancient "open world roguelike" (pre-alpha)  (Read 77940 times)

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #300 on: December 17, 2015, 01:32:30 am »

that feeling when you will never be a roguelike developer

Never say never. I'm totally self-taught, I certainly didn't think I'd be ever working on a project this big. URR's dev is also totally self-taught if I remember correctly, and his project is doing very well. I think we both started using the infamous python + libtcod tutotrial.

I've been working on and off on a world generator this year in C++. I noticed that at the boundaries between biomes the colors blend nicely on your maps. How did you go about doing that? I've tried just taking the average of a tiles colors and variations where the surrounding tiles have more or less weight in the calculation. However, mine all result in some ugly looking colors instead of a nice gradual shift between biomes.

I don't think I'm doing too much differently. When I assign colors to biomes, there's a base color modified by the height of the tile, so even at this first-pass level there's a fair bit of variations in colors, which are roughly tied to the elevations, making them sort of smooth to begin with. Then I do another pass for shading, where tiles get lighter if they're to the right of a lower tile and darker if they're to the right of a higher tile. Finally each tile's color averages with of all surrounding tiles' colors.

I should probably put the shading pass after the smoothing pass, but I like the way it looks as is.


As for updates to the project, it's moving slowly, but moving. There's been some code refactoring in preparation for adding some new goals into the AI. It's cool to see the different bandits move around to gather resources for themselves and build themselves a little building, but other than that not much happens in the world right now. I'd like to build up to a stage where there are other interesting things happening and give the player a chance to jump in on one of those. After that, there'd still have to be even more groundwork laid before it would be a solid game with a decent enough player experience, unfortunately. I'd like to get there at some point, but this being a hobby project means I don't have a consistent enough time where I'd know when that will be.
Logged

galluci

  • Escaped Lunatic
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #301 on: February 19, 2016, 01:01:02 pm »

Yeah, what you and the URR developer are doing is truly inspiring.

Also, ptw.
Logged

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #302 on: February 29, 2016, 12:26:13 am »

Yeah, what you and the URR developer are doing is truly inspiring.

Hey, thanks! It's encouraging to see people interested in the project.


Lately I've taken a diversion from the main part of the project to do a rewrite of the language generator. It currently can go more in-depth than the old one, and has some tighter rules about what constitutes a valid, readable word. I'm even testing the ability for it to create compound words which kind of have their own etymology.

Here's some sample output for how the creation of place / region names may work, in 3 random "languages" I just generated:

Sample place names in Gyadza (language 1)
Gèmu        "black mountain"  from gèmnam ("black") and udzu ("mountain")
Gèmdzave  "black woods"     from gèmnam ("black") and dzavam ("woods")
Tadzu        "blue mountain"   from ata ("blue") and udzu ("mountain")
Tadzave     "blue woods"      from ata ("blue") and dzavam ("woods")


Sample place names in Nöyì (language 2)
Thäya        "black mountain"  from äthä ("black") and ëya ("mountain")
Thäyath     "black woods"     from äthä ("black") and yathyou ("woods")
Shrìjya       "blue mountain"   from shrìja ("blue") and ëya ("mountain")
Shrìjyath    "blue woods"       from shrìja ("blue") and yathyou ("woods")


Sample place names in Êbrûch (language 3)
Jabág        "black mountain" from jabûpt ("black") and ágûlv ("mountain")
Jabûsh       "black woods"    from jabûpt ("black") and bûshglûz ("woods")
Glûpág       "blue mountain"  from glûpûsh ("blue") and ágûlv ("mountain")
Glûpbûsh    "blue woods"     from glûpûsh ("blue") and bûshglûz ("woods")
Logged

Antsan

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #303 on: February 29, 2016, 09:01:32 am »

Generating compound words? That sounds awesome. Care to explain how you do it? If you'd be fine with that maybe I would copy the algorithm to implement it the language generation tool for worldbuilders that I am writing.
Logged
Taste my Paci-Fist

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #304 on: February 29, 2016, 10:29:25 pm »

Generating compound words? That sounds awesome. Care to explain how you do it? If you'd be fine with that maybe I would copy the algorithm to implement it the language generation tool for worldbuilders that I am writing.

The compound word part is currently not crazily sophisticated. It grabs the constituent words from the dictionary (and creates them if they're not already in it), and then looks at each word's root. Word roots themselves are usually the first syllable, but there's a little logic (and more to come) to try to choose the most "salient" part of a word. Anyway, then it puts the word roots one after the other, and tries to prevent any weirdness from occurring (such as a huge, difficult-to-pronounce clump of consonants).

The result is what you see in the sample languages and place names above. There's definitely some improvements to be made to the logic, but it's kind of cool to see it working already.


The actual "language" generation process is much more complex. It starts with phonemes and per-specified rules for how phonemes can fit together. Each language has different valid phonemes, different probabilities of each phoneme occurring, and rules for what constitutes "valid" combinations of phonemes (although it's heavily biased in favor of how English works, just to keep everything readable). To generate words, it picks a bunch of phonemes or phoneme clusters to put together into syllables, and then a bunch of syllables together to form words. Finally, languages have different ways of representing sounds (letters), so when it comes time to display the words, phonemes are converted to letters through that language's particular orthography.
Logged

Antsan

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #305 on: March 01, 2016, 04:37:49 am »

Oh, that's quite different from what I'm doing. I use Markov chains (several, actually, per word generated – gives more flexibility) and I thought I'd remembered you used those too. I'd need to write some algorithm to isolate syllables first or change the Markov chains to accept syllableized words in the first place (so I'd generate Markov chains for different classes of syllables which would probably require a filter that recoginzed how much a syllable belongs into all the classes and so on and make Markov chains on how classes of syllables follow each other).

Your phonemes are probably restricted to English ones, too? I discarded the idea in favor of just letting the user supply an alphabet. If your system somehow actually would be configurable through an interface beyond that, I'd love to take a look at it.

Thanks either way!
Logged
Taste my Paci-Fist

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #306 on: March 01, 2016, 08:44:25 pm »

It might be worth trying to separate phonemes from plain letters. English has something like 46 phonemes, but we use only 26 letters, so it can really throw off Markov chains if you just use the orthography.

I actually do use a fair number of non-English phonemes, but the generator tends to be biased against using them. When it does use them, most of the time it converts them to English letters in the orthography portion of the code. The "dz" in the sample I posted above is one of those phonemes (ʣ, a voiced alveolar affricate).

I'm keeping it relatively simple for now, because the game's tileset is currently limited to the 256-tile libtcod fonts, so there's not a ton of options for representing non-English phonemes yet. Once I settle on a font for the game (would love to hear people's suggestions for easily readable 16x16 or 8x16 tilesets!) it will be easy enough to add in non-English characters. I do want to be cautious about using an overwhelming amount of these in normal usage, because I wouldn't want to force it on people with dyslexia, or those who just are not interested in crazily non-English-sounding words.

I'll probably expose all the data to a text file, and let people load in custom languages or parameters too.
Logged

MoonyTheHuman

  • Bay Watcher
  • I think the DEC VAX hates me.
    • View Profile
    • hellomouse
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #307 on: March 06, 2016, 01:28:24 am »

There must be easy modding.  There has to be.  Make sure it has that,  and when a working release is open...  Woo!

Clownmite

  • Bay Watcher
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #308 on: March 10, 2016, 02:44:14 am »

I've been wanting to figure out Google App Engine for a while now, and I reached a reasonable stopping point with some of the language stuff, so I made a little page that will spit out some of the language output:

http://lang-gen.appspot.com/

There's bound to be some weirdness in there, and the generator's not finished by any means, but hopefully some of you find it interesting.
Logged

BijelaSmrt

  • Escaped Lunatic
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #309 on: October 09, 2018, 08:02:45 am »

Is this still alive or is it dead ?
Logged

Lightman

  • Bay Watcher
  • The groboclones are looking for you.
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #310 on: January 02, 2019, 07:57:24 pm »

Is this still alive or is it dead ?

No replies/developments since 2016... probably dead.  :(
Logged

Lukecell

  • Escaped Lunatic
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #311 on: January 06, 2019, 12:00:27 am »

Clownmite sent me a link to the GitHub repo a while back, he didn't say anything about distributing it, and since it's dead anyways I doubt he'll really care https://github.com/j-coppola/it
Logged

Kyzrati

  • Bay Watcher
    • View Profile
    • Grid Sage Games
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #312 on: January 12, 2019, 08:25:22 am »

Aw... this died? I thought it might get worked on occasionally every year or two. I followed it since its early days, and even included one of the screenshots in my talk at the Roguelike Celebration this year! Too bad, but I guess it was quite an ambitious project, and only a tiny handful of them survive the years necessary to see them through :(
Logged
Cogmind - Sci-fi Roguelike (devblog) | X@COM - The X-COM RL | REXPaint - ASCII art editor | Patreon

Lukecell

  • Escaped Lunatic
    • View Profile
Re: Iron Testament - an ancient "open world roguelike" (pre-alpha)
« Reply #313 on: April 08, 2020, 01:18:16 am »

Sorry for the very late necro-post, but I want to help people install and compile this game in the future. I spent all day trying to get old dependencies to work, and I don't want anyone else to go through that again ::).

Use the latest version of 32-bit 2.7 Python on Windows. Only 32-bit python will work for this version of libtcod.

When installing pattern, install pdfminer separately using pip install pdfminer==20140328 . Additionally, follow the instructions on this page to get mySQL, a dependency of pattern installed: https://stackoverflow.com/questions/26866147/mysql-python-install-error-cannot-open-include-file-config-win-h

Finally, to get numpy to work, you need to use an older version, pip install numpy==1.16.0 should work.

Have fun playing/developing
Logged
Pages: 1 ... 19 20 [21]