Saturday, February 26, 2011

Programming Help

I want to test out a fairly simple world generation system I put together for the revised rulebook of my SF RPG, Thousand Suns, but I'd like to do so by being able to generate a large number of worlds quickly. This suggests to me that a computer program of some sort would save me a lot of time. Unfortunately, I know nothing of programming in any form.

Given my ignorance, what do those more knowledgeable about such things recommend? How much effort would it require to slap together a program or applet that does about 10 random rolls in succession, with a handful of modifiers, and spit out the results in a specific format? I wouldn't think it'd be hard to do, but, then, as I said, I'm no programmer and couldn't do it myself.

Thanks in advance for overlooking my utter ignorance of the subject matter.

21 comments:

  1. That would be pretty easy, for a canned set of rolls. But you might not even need to get it written. Tablesmith (http://mythosa.net/wiki/pmwiki.php?n=Main.TableSmith) is a program that will roll things like that, and you can define your tables pretty easily.

    ReplyDelete
  2. It's pretty easy to do in the scripting languages, like Perl. At least, for intermediate programmers. If you've ever written macros for a WP app, you might be able to hack it out yourself with much effort and online Perl references.

    Now, I'm just talking about scripts sending text output to a browser or a text file. If you want the output to look fancier or graphical, that gets harder. I generally don't mess with that, myself.

    ReplyDelete
  3. First, if TableSmith does what you need, it's probably a good choice. Second, however, if you can understand game rules, you can do code. Here's a simple example, using the "python" language:


    #!/usr/bin/python
    import random

    table = [
    'Yellow Sun',
    'Red Sun',
    'Blue Sun',
    'Paisley Sun',
    ]

    print random.choice(table)


    If you have Mac OS X or Linux, you would save this as a text file using some text editor like "Fraise" or even TextEdit (making sure to "Make Plain Text" first). Then, open a terminal (Applications:Utilities).

    type "python", a space, and then drag the file icon (either from the Finder or from the title bar of the text editor) into the terminal window. It would look something like this:

    python randomSun

    press return, and it will print out a random sun.

    Press the up arrow, and it will return to the previous command, for you to press the return key again to get another random sun.

    I'm guessing Windows has something like this, but I'm not familiar with it.

    But that's it. If you want more complex formatting, I might recommend something like Django, which lets you use HTML for formatting. (http://www.hoboes.com/NetLife/pytown/django-beyond-sql/django-beyond-sql_PDF/)

    But at its basic, you can definitely do simple programming of the sort that lets you choose randomly from a list of items.

    ReplyDelete
  4. Yeah, this is what the Perl/Python scripting language world lives for. It sounds pretty straightforward from your description... if you wanted to specify what you need more explicitly (perhaps in email to avoid posting your worldgen params) I'm sure any number of us would gladly provide either a script or (if preferred) the output you desire for the simple enjoyment of it.

    ReplyDelete
  5. Or, to be more straightforward... if you sent me the tables, I could send you both a script and up to several hundred runs of output after maybe 5 minutes of what seems like enjoyable effort.

    ReplyDelete
  6. Geeks, most of you!

    This task would be trivial using MS Excel. If you have Excel, PM me with a description of what you want and I will gladly make it so.

    ReplyDelete
  7. If you're using windows, NBOS software Inspiration Pad is great for generating table results. And it's free.

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. I’ve put in a first installment of a programming for gamers series on the Biblyon Broadsheet.

    ReplyDelete
  10. Beware that some computer "random" functions aren't very random.

    ReplyDelete
  11. Yeah, what the rest said. This is a doddle. Fun doddle. I'm sure you've already farmed this task out, so you don't need me or my skewed perspective (which would use NONE of the languages or tools mentioned above. ;-) )

    ReplyDelete
  12. This comment has been removed by the author.

    ReplyDelete
  13. As noted, this is a trivial task for a developer. The downside is that most solutions would involve you having the scripting/programming language on your system. Given the offers I have seen:

    1) Being given an Excel spreadsheet should give you what you need and most Windows (and possibly Mac) users will have Excel on their machines. You might have to do something as complicated as refreshing the sheet for each run. It would be on your system to use as needed. This would also have the advantage that you could put this up on the TS site for others to use once the revision comes out.

    2) Have someone write a script and send you the output for as many runs as you like. Very simple, though you would not have the thrill of pushing the button to see the results as you desire.

    3) Have someone write a script and put it out somewhere as a web application. This would allow you to run it as you wish. The only limitation would be how long they would be willing to host it, although for your testing purposes, this should not be an issue.

    -Scott

    ReplyDelete
  14. By the way, the UWP generator is linked to the Traveller Map generator mentioned in the comments for your previous blog post regarding mapping software. If you use the UWP generator to generate a map, the map will containg a link back to the random UWP that produced it.

    ReplyDelete
  15. If you're not into the idea of taking the suggestions here (hey, not everyone enjoys writing code) I'd be happy to do this for you: just give me the data in question (the random tables and the rules for using them, in this case) and the questions you'd like answered about it and I'll toss something together.

    I tend to do this sort of thing for fun in my spare time anyhow. I'm actually in the process of writing up all the 'data' content of S&W Complete into both SQL code for MySQL and XML for XML-native databases like Sedna, and plan on doing Labyrinth Lord next (half the reason I'm doing this is to make comparisons between the two, so I need both data sets).

    ReplyDelete
  16. I'll second the recommendation of NBOS's Inspiration Pad. Very easy to make simple tables, and flexible enough to make more complex decisions. I use it for generating entire hirelings for my B/X D&D game, which includes rolling stats, checking qualifications for race requirements, and choosing a class based on the highest stat rolled.

    ReplyDelete
  17. Given a decent specification of the procedure, it would very, very easy for any half-way competent programmer.

    I too would be willing to code it up for you gratis.

    ReplyDelete
  18. You might be interested in something I put together at http://rollon.tiddlyspot.com

    It's a super-simple table-rolling program that's actually just a way to roll a random entry from an ordinary list in a wiki. One nice thing about it is that it's a real single file wiki (called Tiddlywiki) so you can use it for campaign notes, generating the world via rolling and then recording any extra details you like in a free-form fashion.

    ReplyDelete
  19. http://donjon.bin.sh/
    Great generators (Well, I cant speak for the 4e ones, I never tried...). Look at the SciFi section for star system generation...

    ReplyDelete
  20. Wow this takes me back to the early days of White Dwarf and the... Starbase column (?) where they had a couple of pages to type it yourself basic program to generate entire subsectors, awesome stuff!

    ReplyDelete