[PLUGIN] Multi-Use Story Engine (Introduction)

Post and try out addons that are currently in development.

Post » Fri May 06, 2011 6:43 pm

[size=150:29zgkpit]M[/size:29zgkpit]ulti-[size=150:29zgkpit]U[/size:29zgkpit]se [size=150:29zgkpit]S[/size:29zgkpit]tory [size=150:29zgkpit]E[/size:29zgkpit]ngine

Yet another thing I'm working on. Part of MUSE is much simpler to understand, and part of it is a little more complicated. If you choose to ignore the complex part, is basically a large collection of name generators from scifi, fantasy, and real world cultures. It can also generate the names of several kinds of places and several kinds of objects. Everything from african tribal names to feudal japanese and space faring insectoid races. These random names are seeded as well. All of this is pretty easy to understand, and it's difficult to see why I would want an entire plugin dedicated to this seemingly simple function. That's where the complicated portion of MUSE comes in.

MUSE is a prose generator. Not that it generates prose FOR you, but it can help. Whereas GridTree can easily help you layout geological things - MUSE can help you easily layout chronological things. You pass MUSE the current time and a seed, and the general period of the data you are looking for. Period is kind of like, how long each portion of this data lasts - weather would be shorter periods, while things like political changes and species extinction would be much much longer. MUSE will then tell you the current state of the world based on the time you gave it. (If it's raining, who is in control, etc.) So say for instance you passed it the REAL WORLD time, then things would happen while you aren't playing the game. While you sleep. Say you passed it the time elapsed since the game started - then the game would pause while it was closed. There are two modes that MUSE can run in in this way - one generates a markov chain of "states", as I explained above, which describe events. The second method is going to output you a list of numbers. Explaining this one will require a picture, since we call it the "falling elevator", and the picture will explain why we call it that better than I ever could.

The picture is rather large, so here's a link to it. Notice that in the picture, the elevator is as tall as three floors. This represents the list of numbers that MUSE will output to you. As you can imagine, the elevator only travels in one direction, which we call "gravity" but for this example we will call "time", and as it does so, older numbers fall off the top end of the list, and new numbers appear at the bottom of the list. Whereas the first method of MUSE will tell you the state of the world, this could be used for a list of entities that come and go. You can even ask MUSE how old an entity is by seeing where on the "elevator" it currently is. So if these numbers represented NPCs for example, the ones near the top of the list would have more gear since they've been in the world longer.

You can explain them disappearing from the list however you wish. In Void Runner our ships have a small chance to appear as wrecks on planetary surfaces rather than ships if they are on the very top part of the list. This creates a story for the player. For most of the ships however, they simply disappear, and the player needs to fill in the blanks. The pilot moved on to another sector, or whatever.

The main purpose of MUSE is the chronological stuff allowing you to generate procedural events and histories - the procedural names are icing on the cake. I've been working on it for a bit as a side project. I am working on MUSE and GridTree side by side as my time allows and my interests change - so it is quite likely that both of them will come out at around the same time. I figured this also merited an introduction thread since it will be out around the time of GridTree.
B
5
S
2
G
5
Posts: 221
Reputation: 2,272

Post » Fri May 06, 2011 7:46 pm

Wow, they weren't kidding when they said you were working on a lot of plugins! Good job!
B
5
S
1
G
2
Posts: 99
Reputation: 1,575

Post » Fri May 06, 2011 11:23 pm

Arsonide, this is amazing! It opens a whole new world of possibilities.

looking forward for the release of both plugins. They're awesome!
Congratulations on the great work.
B
50
S
16
G
7
Posts: 59
Reputation: 6,365

Post » Sun May 08, 2011 6:14 pm

This seems like it will be quite a interesting plugin. I am looking forward to testing it. :)
B
2
S
2
G
1
Posts: 121
Reputation: 1,092

Post » Tue May 10, 2011 11:37 pm

Construct Community - You're my only hope! Well...I mean not really...but you could really help out. Not to mention have custom names ready for your game right when MUSE is released. The syllable based name generator is complete for MUSE, and it loads from files called "syllable sets". I have created a toolkit to help you make these. The toolset includes a python script that will do all the dirty work for you, a couple of example scripts, and also a very early version of a MUSE application that will let you test your syllable sets. I'm going to straight up copy the readme file here. If any of you have any questions at all, please reply with them.

[quote:3v8737bf]This should help you generate syllable sets for MUSE. I'm releasing it early so the community can contribute sets while I finish the actual plugin. MUSE will actually ship with two name generator actions. One will load from these syllable sets, and another one will generate letter by letter from a set of rules you define. Right now I only have the syllable generator, and I need your help making syllable sets for it! I've made these sets as easy for you to make and test as I possibly can.

To use the Syllable Set Generator, simply fill the text files with your syllables - either put each one on a new line, or separate them with spaces, the generator can detect either or. Then double click Syllable Set Generator.py when you are done. The python script will automatically populate syllables.ini with your chosen syllables in a way that Muse can understand.

A prefix and suffix are attached to the beginning and end of the name if you have any defined. First appears first in a name, last appears last. Middle can appear multiple times, between the minimum and maximum middle numbers. Then of course you can have a name generated more than once between the prefix and suffix if you like.

For examples of first/middle/last: Bo rai cho. El yn dor. Or you can just skip the middle one: Blood letter. Lake wood. Say you wanted to turn that into a modern city district - add a suffix: Lake wood Heights. There's plenty of flexibility here. It's all up to you to flesh it out. I'd appreciate if you guys would post your sets on the MUSE forum thread when you make them so I can get a repository going for the release of the plugin. I already have a TON of sets...but this is something that can only grow larger.

If you are still confused, I have included examples in the Examples folder. These are example syllable sets. I found most of them on the internet. You can make your own and test them with the Syllable Set Tester, or you can find them on the internet and add them. It's up to you. The Syllable Set Tester is also in this folder. It is a very early version of Muse, and it uses syllables.ini to generate names from, so rename anything you want to try out and move it to this directory under that name if you would like to try something with the tester. I have elven male loaded by default.

Anything you make and upload to the forum thread is automatically attributed to you. When you run the python script it will ask you for your name, which is embedded into the syllable set automatically as a comment on the top line. Any syllable sets uploaded between now and the release of Muse will be included in the original release.[/quote:3v8737bf]

Download the Syllable Set Generator!
B
5
S
2
G
5
Posts: 221
Reputation: 2,272

Post » Wed May 11, 2011 1:59 am

This is really amazing stuff Arsonide. You are a plugin making machine!

I can't wait to try this stuff out in a space game!
B
8
S
3
G
7
Posts: 835
Reputation: 5,313

Post » Wed May 11, 2011 5:57 am

Here's a list of "southern" names.
I tried to do a copypasta from some list I found on the net, but I left too many spaces... and well Im tired.
Anybody that wants to format it correctly can have full credit for the "Redneck Names" list.


Edit:
Looks like simply posting the list fixed the format issue.
[url:2fhtrdp4]http://dl.dropbox.com/u/666516/Rednecks-Male.ini[/url:2fhtrdp4]
Image Image
B
161
S
48
G
90
Posts: 7,347
Reputation: 66,749

Post » Wed May 11, 2011 2:04 pm

He's after new syllable sets Newt, not lists of names.

I'm going to have a play with this now.
Incidentally Arsonide, did you base any of this on Umbra's work?
I remember reading up on this for my game a while back, and his was one of the better techniques for implementing this.

Anyway, I'm going to see what syllable lists I can come up with.

Great work again.
Krush.
B
2
S
2
G
3
Posts: 406
Reputation: 2,062

Post » Wed May 11, 2011 3:04 pm

Yeah, but it works, and we wouldn't want to leave out all the Nascar fans. :P

Also list fixed about, replaced with ini.
Image Image
B
161
S
48
G
90
Posts: 7,347
Reputation: 66,749

Post » Wed May 11, 2011 4:46 pm

[quote="newt":1mcbdopy]Yeah, but it works, and we wouldn't want to leave out all the Nascar fans. :P[/quote:1mcbdopy]
Lol. :lol:

Generating 2 names using the same list is interesting, but it does work.
Just ask Jessie Dwayne and Dwayne Jessie. :D
I'm not sure about Bo Bo though. :lol:

Using MUSE as intended, with sets of syllables, is harder than it looks too.
Unless some serious thought is put into it, you end up with all sorts of nonsense.

Maybe it's time to study some existing lists.
Anyone found a comprehensive list on the Internet yet?
I can only find one here and there so far.

Having fun playing with this though.

Krush.
B
2
S
2
G
3
Posts: 406
Reputation: 2,062

Next

Return to Work-in-progress addons

Who is online

Users browsing this forum: No registered users and 0 guests