Sunday, May 28, 2023

Traveller 5: QREBS as a rules agnostic tool

Of course, being a developer, this translates as a "loosely coupled service" to me. Meaning we can use this concept in pretty much any game.

First, the definition for those who may not have the T5 rules (and sorry if I'm repeating myself - I seem to recall I may have already posted something like this before)

Objects. Any item which is subject to QREBS is called an object (or a device, a piece of equipment, a machine, an item, or an apparatus). QREBS is primarily concerned with devices and machinery, but it can also be used (judiciously omitting some parts of the system) with plants and animals, artwork, even books, drama, or music.   

Multi-Component    Objects. Where several objects are combined into a larger item (for example, components combined to become a ground car), the proper use of the QREBS system is to treat each major subsystem separately.

And the actual acronym stands for and how T5 calculates it:


As noted in the rules, this is not something you would use a lot, just as necessary. For instance, you go to the junkyard to pick up a cheaper replacement part. The quality may be the same, but perhaps the safety factor is lower. There are also rules for checking for things breaking down based on the reliability  and quality, and how often you need to check. But for most items, the following applies:
 The most common roll for any of the QREBS values is zero (or 5 for Quality). If values have not been created or calculated, the standard values apply. The most common roll for any of the QREBS values is zero (or 5 for Quality). If values have not been created or calculated, the standard values apply.

 Hopefully within the fair use rules: 

Quality is a measure of the consistency of workmanship, merit, value, or worth of an object. It directly reflects the time period between reliability downgrades. Quality is a measure of the consistency of workmanship, merit, value, or worth of an object. It directly reflects the time period between reliability downgrades. 
The other aspects have their similar definitions. The point is the application of these very optional rules. For me, I can see this translating into a fantasy game as-is.

A well-crafted sword will have a higher-than-average quality, meaning it is also less likely to break down in the middle of a battle, and you check less often for that. How that would translate in game mechanics is that I'd do one of two things. As most games give "excellent craftsmanship" a +1 generally to hit, I'd do that. Or adjust the critical fail so that, if the game mechanic such as in The Fantasy Trip where your weapon breaks, I'd give a saving throw. 

The Reliability score is how often you check for the thing to break down basically, so there is overlap in that the reliability can be adjusted by the quality. 

Anyway - let's create 3 swords and apply these rules to them to see how that could work in a game.

Our barbarian Snorg goes to the bazaar, and there is a weapons dealer hawking his swords. TFT has a sword at 8 gold, OSE at 10 gold. We'll average the 2 for our discussion, so that 9 GP is the "standard" price of a sword. And I'll grab 3 random swords from Dyson's Book of Swords, which I backed on Kickstarter (because I like to use what I get, and it can also be some more game prep!). Having 50 swords, D100 works for every 2. 

  • Sword 1: Shadowcutter. +1, +2 for all creatures that live in the darkness.
  • Sword 2: Lament's Edge. Forged on a distant plane. On the primary plane (which is all we'll stat out to begin with), it is a +1 and +2 against magic users.
  • Sword 3: Krakenguard. +1, +4 against sea monsters (and something our pirate Elf would really want, so perhaps she has a bounty on that)
And while my original intent was to do all 3 swords, it makes this into a much longer post. So we'll just stick with first. And also note that, as per the usage description, this type of thing is really only for extraordinary circumstances. It is not something to be done with every usage, but something that can add flavor beyond just a basic mechanical adjustment.

Shadowcutter



Quality: 8. An above average sword, hence the +1. Though technically the Quality Mod is Q - 5, or +3. And huh, if we share that +1 between normal foes and then the +2 for creatures that live in darkness, this actually works out (and yes, I did actually roll that). This also determines the period for how long that item is good for. While this certainly applies to technical things, it can also apply to everyday items, even swords. This sword should last at least 3 years before having to check the reliability. I'd go with 3 years of actual use - not just sitting in a scabbard. So it should last quite a while.

Reliability (flux roll): 2. Better than many, Shadowcutter will indeed consistently give you the +1/+2 DMs when attacking. 

Ease of Use (flux): -3, hard to use. Shadowcutter was created by the Gahe for a one-armed Drow, so the balance is off for most people (unless you've lost an arm). 


Bulk/Burden (flux): 1, slightly unergonomic. See the note above. It requires a custom scabbard.

Safety (flux): 1, better than some. Unless you are a creature that lives in darkness of course!

Shadowcutter QREBS 8 +2 -3 +1 +1

+1 against regular foes, +2 against creatures that live in darkness. On a critical fail, rather than having the weapon break, its reliability and quality is reduced by 1. When the quality gets to 5 (average reliability) the +1 goes away, and the +2 gets reset to +1. 

So hmm, not sure it really brings anything actually useful to the game like this. Though it does allow you to age weapons when badly used perhaps. But I can see this as a potential thing when looting: roll a quality check (2d-2) and based on that curve, establish the quality of the sword. The other attributes may be useful or not, and honestly, possibly adjusted based on who the weapon was made for vs who is using it. For instance, a great sword made for an Orc is going to have really bad ergonomics for a Gnome trying to use it. The Fantasy Trip sort of handles this via the minimum strength required to use a weapon, which is a simple abstraction. But we're Traveller players: we love crunchy bits! 

Anyway, it was a way to re-read some of my Traveller books, try & bring in stuff I've got, and explore some possible mechanics for additional chrome. 

Software update (for those interested)

I've finally managed to get some tests in for my Traveller world explainer. For personal projects, this is pretty much overkill. But I really wanted to learn more about testing in .NET programming as I may have to start doing some of that at some point. In Rails, we used Rspec and just ran the tests, either the whole set or specific tests. What's cool about Visual Studio is that, if I name the tests correctly, it knows which method is getting tested! And I can run just those tests, and in the editor, can see the results. It is pretty cool actually, and a lot more developer friendly once you get it started.


I'll finish my method for "is this a valid (Classic) Traveller planet" then add in the actual trade codes. Then I may think about a trade roll as well. 

And yes, as you may have gleamed (and I may have mentioned already) I did get another job. Interestingly, I have three tech stacks they use: .Net, Rails, Filemaker. Which is a fairly odd combination, so it seems this job is custom made for me. While the benefits package is pretty bad, the pay is actually better than I was making. It is a hybrid job, meaning that I'll be in the office 3 or so days a week, and home 2 days. Though the 1st couple of weeks I am going in everyday to get used to things. And they honestly need more developers, so hoping I can get the developers from my previous company to be able to come over and work there. There is oddly a lot of shared domain knowledge between the 2 jobs, though the new one actually has a factory they own vs using ones in other countries as partners. It has been a surreal experience so far in how things overlapped like that.

Monday, May 22, 2023

Mythology and Pantheons: The Elves of Windemere Crossing and the Goddess Ran

As I am reading a book on Norse mythology (I had no idea Odin had several sons!) I think I'll pull some of those gods and goddesses into my own little fantasy world. The pirate Elves that run the Silver Pirate (and there are a number of half-Elves when I re-read that) may often use the curse "Let Ran take them down!".

In Norse mythology:

Ran is a goddess and a personification of the sea in Norse mythology. She is the wife of Aegir, the sea god, and the mother of nine daughters who personify waves. She is frequently associated with a net, which she uses to capture sea-goers and drag them into the depths of the ocean. She is also seen as a protector and a guide for those who travel on the sea, and a symbol of the vastness, mystery, and transformation of the ocean.

For my world, she is a separate pantheon than the one I started 40+ years ago in college. She has 9 daughters who personify the waves. I'll try to explore that later, seeing as there are many waves from the smallest ripple to a tsunami that can take out a city.

But for our Elves of the Silver Pirate, Ran is both a blessing and a curse. They pray to her for safe voyages, as well as blame her for sailors lost at sea. Now at the edge of a desert, the Elves do not pray or offer many observances for the goddess. They are frustrated with the curse that brought them here. The cacklemar (a fat seagull looking bird) is nicknamed Ran's Messenger. Being fat and unable to fly, Nomehi Wiridea, the inn's owner, still offers the bird mackerel she has shipped from the ocean, praying to be allowed back to the sea. The cacklemar is an odd bird found in the Wex's Drift supplement. If my players ever get to an ocean, I'll use that as it seems like a lot of fun. In the meantime, the Silver Pirate NPCs know about the Drift and it may come up in conversation or as rumors. Along with the Amazons - Nomehi has her suspicions about the Burgermiester of Windemere Crossing.


AI generated sea goddess

Now we've nine daughters to deal with if I really want to expand out the pantheon for them, though I may stick with the Norse myths for the Sea Elves gods and goddesses, or at least my interpretation of those myths. Do the Elves deal with Aegir, the god of the sea? Or is he just a sea god of a particular sea?

Which brings to mind: are the gods and goddesses universal in my world, or do they have some sort of geophysical or cultural ties to a more restricted area? If I recall, Tery Pratchett's gods and goddesses depended on their followers' faith for their strength (and actually, that is a is pretty common idea across a lot of history and fiction, I just remember it being specifically mentioned in his books). While I have my central pantheon that I am bit by bit fleshing out, there can be many others out there as well. 

Where this also comes to mind is that my next game (the OSE game I've been slowly prepping for) has a druid, and I've asked the player to come up with that druid's specific religion or god or whatever. Part of my shared world-building process. He is very imaginative so  I am sure he'll have something good that I can hang some game hooks off of.


Friday, May 19, 2023

Traveller World Explorer - Automatic Updates or How to Do Databinding and ObjectNotify

Sorry - a far more technical-sounding title than I usually use. Basically, software is an interesting thing: often we have the data (stored in a database, locally, or just transient data the user is accessing) and have to show that on the screen. Most systems have a way of handling the persistence of data (getting it saved off to wherever it is to be saved off to). For web applications, this is a bit trickier and usually involves more stuff behind the scenes than the consumer of this data knows about. Fortunately, there are several frameworks that can handle all this fairly seamlessly for you. 

And there are some notes at the bottom of this post about the Traveller RPG as a framework. It won't hurt my feelings (and I'd never even know!) if you skip to the end and ignore all the software explanations.

Actual explanation getting started!

Anyway, the same thing applies in my little world explainer: while I am not actually saving off any data (yet!), we do have the concept of the world via the UWP representation. All these fields (starport, size, atmosphere and the rest) need the representation on the layout. Easy enough with a text field (though in MAUI this is really a label - tough for me as there used to be an actual text box...things change). But behind the scenes we need to interact with this data in order to explain our world.

Way, way back when I started with Windows GUI software, you had to extract each piece of data from the associated object it was attached to, something like:

string starport = TextBoxForStarport.Text (or often .Value or something like that)

With the more current ways of doing things, both in the web and local applications, you generally databind a model to the layout. What this means is that each object can be associated with a field, and so we no longer need to grab each thing, we have them all via the model.

In this particular case, I wanted to have the explanation come up more automatically. That is, click the explain button and it should display that data. Originally, I'd do this by creating the text, then assigning it to the label, and somehow update the layout. However, the .NET framework has a lot of things to help automate this so that we don't have to manually update things and the framework handles it for us. I never could get it working before, but after poking around I did find a really nice class that I'm using to get this to work. So now I just update the world's explanation field (which is not persisted to the DB, assuming I get to a DB at some point) and the layout automatically displays the updated value.

In web applications, this requires a lot of javascript usually, and is (for me at least) painful to implement well. Oddly, Filemaker (Apple's version of MS Access) does this out of the box, and I remember how surprised I was about that. For instance, you have a customer record open, and someone else edits that record and saves it. Your layout will be updated automatically. Magic! Okay, not magic to non-developers, but for someone who has been writing code for 40 some years (if you count college and high school) it is really cool.

Anyway, more code to see how the UI looks:

<Label x:Name="ExplainLbl" Text="{Binding Explanation, Mode=OneWay}" />

This bit of XAML code says we have a label, and it has a name in case we want to reference it (though we really don't need to but old habits), and the text for that label is bound to the model's Explanation field. The OneWay mode simply means we get it from the model, and we are not updating the model. Basically, a read-only field (though I think I may have to add that option).

Behind the scenes, we enable this when they click the Explain button:

 private void ExplainClicked(object sender, EventArgs e)

    {

Worlds world = (Worlds)this.BindingContext;

if (world == null)

{

DisplayAlert("Traveller World Explainer Error", "World is not set", "OK");

}

else if (!ValidateWorld(world))

{

DisplayAlert("Traveller World Explainer Error", "World is not valid", "OK");

}

else

ExplainWorld(world);

    }


    private void ExplainWorld(Worlds world)

    {

        int size = int.Parse(world.Size, System.Globalization.NumberStyles.HexNumber);

        int atmo = int.Parse(world.Atmosphere, System.Globalization.NumberStyles.HexNumber);

        string atmosphere = Atmospheres[atmo].ToString();

        world.Explanation = $"Size: {size * 1000} km diameter\nAtmosphere: {atmosphere}";

    }


C# code that handles the button click (and does some verifications) and then performs the explanation if if have a valid world (and I'd like to move that validation to the actual model somehow, and only enable the explain button if we get a valid world). It is that last line that sets the world model bound to the layout. This class uses a base class that, when setting a field, triggers the something has changed event which then tells the UI to update that info. While I've tried in the past to figure this out, I finally broke down and, after some web crawling, found a really nice and easy class to handle it. Though I probably should rename this class to match my stuff, but as this is a personal project, I like to remember where things came from.

Part of that .NET framework is converting hex strings to numeric values. So that A = 10, B = 11, and so forth. We use the int.tryparse to convert from the hex value to a numerical value so that I can simply reference the array of descriptions. This will break down as Traveller uses a pseudo-hex code: they don't use I for instance. However, as the UWP does not include that, we're good. In theory the ValidateWorld(world) method would check all that (or preferably, do that in the UX layer. I know there is a way!) so it won't break. I do need to add more safety checks, and really need to see about testing (another area I am really bad at). And to make this safer, I'd probably instantiate my own Traveller hex to int function (really simple - just list the values like "0123456789AB..." and find the position of the character. Easy-peasy).

I've also started using ChatGPT to help with some of my software: it has actually been useful in a few cases. While I don't see developers being out of a job anytime soon, it does change a number of things.

The Traveller Framework

Finally - what the heck does this have to do with gaming? Well, two things: first, this blog was started when I got laid off the first time more than 20 years ago, and decided to chronicle my stuff about writing software for Traveller. It has expanded way past that as it is more a generalized gaming blog. But also, speaking of frameworks, the original intention of Traveller was itself a framework (as technically all RPGs are, but to me Traveller excelled at this). And the 2nd part is just that: Traveller is itself a framework.

For me, Traveller is the ultimate toolbox for gaming (and I think I've noted that in my COTI signature). The original 3 LBBs let you do anything you wanted to. The Traveller framework, just like a software framework, gives you tools to make things faster and more consistent. An RPG is a group effort for the most part: there is a back and forth between players and referees. What makes that work is the framework of the rules. Later on, as GDW expanded on the Imperium and codified it more, that setting itself becomes another framework to work with. Just as many software projects will have multiple frameworks in it. RPGs can also have multiple frameworks to handle specific aspects. 

Now, being an opinionated developer (as most developers tend to be), I am not always in favor a framework: while it is easier up front, sometimes you need to do things that the framework does not handle well or is even actively preventing you from doing. And then you are fighting against that. In Traveller, the Megatraveller framework of the Rebellion was not something I liked (and I was not playing actively much then either) so my framework is the original version: while I often use the 3rd Imperium background, it has been fairly loosely adhered to. 

Same for the T5 rules: there are a LOT of rules in that 800+ pages. I do NOT like the trading rules and stick mostly to the classic Traveller ones (the Merchant Prince rules, which are the basis I believe for T5's trade rules) are just so dry. There is no flavor. I also use the GURPS trade rules a bit sometimes, but my current players are not really interested in the trading game, so I've not explored those much lately. But other aspects are really great - QUERBS really allows you to customize anything. I may use those rules even in fantasy games, though in pure mechanics it just ends up something like a +1 or something, but we could add chances of weapons breaking and all that with that framework.

Anyways - frameworks are everywhere. Sometimes useful, sometimes they just get in the way.

And finally - I start my new job Monday. It looks to be a somewhat challenging job, plus there is a bit of a commute. Though it will become a hybrid job and I am hoping for just 2 days a week in the office, we'll see what happens. Of course I am nervous: I am not good with change despite working in a field that is all about change (and frameworks!). 


Ads

Hmm, I had not realized they would have been so intrusive...if you want me to remove the ads, please let me know. I panicked when getting laid off, and wondered if I could make any $$ via ads. But they are really intrusive so for the 3 cents I may get a year, probably not worth it!

Edit again: I think I turned off the ads in the middle of the text, so we just have top/bottom and sides. But if it is annoying, let me know. I really do this blog mostly for myself, and for anyone interested in my ramblings.

Friday, May 12, 2023

Organic Towns - A Spreadsheet And More Thoughts On The Overlap Of Gaming and Software

In thinking through the complexities of using the Organic Towns book, I've decided to start with a spreadsheet (which in developer-speak means an application waiting to happen. Though for single use, a spreadsheet is both simple and effective and maybe all I really need)

By starting with a spreadsheet, I can sort of see and play with what kind of data I'll need. I even formatted it a bit...


Fortunately, I know enough about spreadsheets to help automate a few things. As each building has a column for various modifiers, and can summarize those for the various DMs for trade, defense and all that. I've even automated the SP (Settlement Points) based on the population and the various adjustments based on the housing.

=ROUND(SUM(0.1*RC[-4]+SUM(R[10]C[-5]:R[49]C[-5])), 0)

Gives me 10% of the population + all the SP modifiers, the rounds to the nearest whole number. This process informs me how I'd probably set up the database, if I were to do this as an application (and I just may. It is not like I keep starting and stopping personal projects...oh, wait, I do!)

As I see things in schema way too much, I see the big picture as a town is a name and the pertinent parts, then several associated records: history (notes for the various rolls), a join table to associate buildings with the town and what level they are at, and the base table for the buildings themselves and what they do at level I, II & III. If this were to be expanded further, I'd even pull out the benefits and costs to yet another table, allowing us to easily go to 11, err, I mean IV. 

Anyways, a rough back of the envelope schema for buildings, assuming we keep the levels built-in, would look like this:

  1. id - primary key. used when we create a list of buildings for a town
  2. name - House, Brewery, etc
  3. pre-requisites - pretty vague and not really needed for functioning unless we turn this into an actual application or web site. which, hmm, maybe I should get in touch w/Headless Hydra and see if this is something they would like to see...I could do something on the side perhaps.
And in writing that out, realize I'd probably extract out the various costs into its own table as well, something like:
  1. id - primary key
  2. buildingID - foreign key to the building this belongs to
  3. level - I, II, III (though probably 1, 2, 3)
  4. SP adjustment
  5. Crime adjustment
  6. Defense addjustment
  7. population adjustment
  8. Moral adjustment
Anyway, as I think way too much about software and schema sometimes, that is one way of looking at this in case I decide to make an application of some sort for this.

And to bring this back to gaming terms, this is a fair amount of work for something the players don't really see too much of. And it is definitely overkill in many people's eyes. Traveller 5 has the MOARN principle (Map Only As Really Needed), software has YAGNI (You Ain't Going to Need It) as guiding principles: essentially saying do not over-engineer as you are wasting time and energy. As all of you know, I really like world building just for the sake of world-building: it is fun for me, so on the gaming side, it is not a waste of time or energy as it is an enjoyable process. In software, things get trickier. For personal projects, this is not an issue. But at work (and I will be starting to work again very soon as I've had 1 2! job offers so far and have to make a decision soon) this becomes someone else's time and money. And while I do get paid to think, I also get paid to produce a viable product that is actually used. Or at least help lead the team to do that.

Over the years, I've gained a fair amount of confidence about where I think things should be headed to. Both in running games and in designing software. However, games and real life are closely intertwined: just like no game plan survives contact with the players, software does not survive contact with real users. So, over-engineering in either case can lead to dead ends, bits and pieces that are not needed.

Which brings me to wonder: should I apply agile principles to my gaming? While several pieces I do agree with (the primary one of customer (aka player) satisfaction is of utmost importance). But, being an opinionated person, I don't agree 100% with all the principles. The agile method is designed to get things done fast with the least amount of overhead. But for longer-term projects and games, you do need some of that overhead, and the vision for the long-term game. 

As a probably final note, almost thinking about perhaps figuring a way to get some of these meandering posts to be more organized and brought to other internet publications. I may want to start another blog on the crossover of gaming and software development so that I don't bore my gaming readers with all of this. Just a thought that I may let swirl around in my head. I've a feeling that a lot of software developers also game, though most probably game via a console or computer game versus actually rolling the dice, so perhaps the overlap is not as much as I think. And as I read a fair number of posts from software "experts" wondering if I could do the same thing (and I know that more and more of those posts are actually AI generated now, so people are getting really lazy!), but seen through a slightly different lens. As per my meandering career, my educational path has also meandered a bit as I have both an ancient (1986) computer science degree as well as a slightly more recent masters in philosophy (1997). Admittedly most people an equally or even more varied life and career, but I do like to think I am somewhat unique, then realize that everyone is unique. And thank goodness for that!

And a Venn diagram of my world building. I think the overlap is even smaller...


Wednesday, May 10, 2023

Traveller World Explainer - Trade Codes

Trade codes are based on the physical stats out of the UWP. You can pretty much use the chart as-is from Traveller, and a simple text file can give you the resulting trade codes. There are a LOT of ways you can handle this, but as the list is small, and in theory if this text file were available to the end-user (or editable in the software) users could customize their trade code results.

# CT trade classifications

# 2 character code<space>description,size,Atm,Hyd,Pop,Gov,Law,TL,cost effect (purchase)

# to figure it out, just read through the list and that match ('-' means not applicable), the criteria are valid as long as all the criteria matches


# if an additional field is given, it is tech

Ag agricultural,-,456789,45678,567,-,-,-,0

As Asteroid,0,-,-,-,-,-,-,0

De Desert,-,123456789A,0,-,-,-,-,0

Ic Ice capped,-,01,123456789A,-,-,-,-,0

In Industrial,-,012479,-,9ABC,-,-,-,0

Na non-agricultural,-,0123,0123,6789ABC,-,-,-,0

Ni non-industrial,-,-,-,123456,-,-,-,0

Po poor,-,2345,0123,-,-,-,-,0

Ri rich,-,68,-,678,456789,-,-,0

Va vacuum,-,0,-,-,-,-,-,0

Wa Water world,-,-,A,-,-,-,-,0

I generally prefer simple to begin with. And I think this is sort of a variation on how HL7 records work (an old data schema for transferring clinical and administrative data between healthcare providers. I had to convert that to import those records into a system I was a part of years ago. Funny how things stick with you!)

This table is from an older version of the Traveller Tracker, and does look like it may be missing the cost DM. As I am not working on trade (yet!) I can punt that part down the road.

The nice thing is that I could include the tables for various versions of Traveller, so that you can choose which rule set you are using. Again - a future idea assuming that this one moves along and gets to something like a completed or at least ready to share state. And I will note again that this is all in my public Github account here. So you can follow along with my often-bumbling approach. It turns out that MAUI programs have a RAW directory in the resources directory, and stuff placed here gets bundled with the application and can be read. Now, longer term, I'd probably move this sort of thing into the database (SQLite for this application). This would allow us to update the table, and hopefully, not overwrite any user-defined things with future releases. While not a consideration for this project, these are the things I think about. Guess I have been writing software a long time!

An even simpler table is the government table: as the CT ranges from 0..15, I just have a list of governments, and you just grab the one based on the value. Like a lot of languages, the array (or list in this case) starts at 0. I basically snagged all those tables and will use them for some initial lookups. 

And there are text boxes in MAUI, but I can use a label for a display-only set of results. I've added the button action, and while I do have some checks in place to validate a valid world (to some definition of valid) I am currently bypassing those to see how the label looks. And you can see that the port as G is invalid and red. Sadly this is only in the display part of the software: I think I may have to convert to MVVM to have this in the model so that the display gets the model validations. At least I think that is what I have to do.

There are some really nice text tools built-in for editing text. A future phase of this may be to save off your worlds and have your own text for them.

I was trying to get model-level data verification in place, but I think that would be more an MVVM architecture, which currently this project is not. Application architectures are interesting, and like frameworks, can be both very useful and very constraining. But that is a discussion for another post! I did add page-level validation (where a page is like a view for those who are more web-oriented - basically where we are showing something). I'll have to see if I can work that into the actual explanation button action. 

And I need to see about adding unit tests - that was the reason for adding validation so that I can automate all this stuff better. I'm just having a bit of a hard time getting it in place still. 

Some slow and erratic progress. I started this back today as I've had a few screening interviews, and one that I thought I totally messed up I have a call-back for a 2nd interview. And I had an actual face-to-face interview with an interesting and local company. Oddly, they use 3 things (.Net, Filemaker & Rails) that I have that is also not a common shared set of skills. I have had a somewhat circuitous career path it seems! And some of those interviews seem to have gone well, so I may actually have choices to make. Previously I've just grabbed the 1st job that came along: I fear I am often far too much defined by my job. Well, that and I like insurance....

Sunday, May 07, 2023

Organic Towns: Month 2 Settlement Turn, Burgermeister Paoaytie

I still need to automate this process. Though I've already got a few too many personal projects that seem to be stalling a bit (well, there apparently was some mention of depression in my AI summary - and hey, there will be some AI notes at the end of this post)

Last month (technically more than a month ago now, but we'll just say game time...) we started a couple of projects: we started updating the barracks as the town is a bit worried about the roving Orc bands that occasionally attack caravans or even the trade town itself. We also have a few more people living in Windemere Crossing: we added 12 people so we are up to 312 people. This boosts our settlement points a bit, so assuming our math from last month is still valid, we now have 82 total settlement points, adding 1 for those 12 new residents (4 babies and 8 adults, so perhaps a family or two has moved in along with a few others). 

Our morale roll this month has nothing happening - apparently the sounds and site of the barracks getting upgraded have calmed the folk a bit. And those updated barracks will be ready to move into next month! Interestingly enough, the town is relatively crime-free this month: the graffiti has been removed or at least white-washed over. Perhaps it is because we're also going to add a small military unit from the good king Axechest to help with protection of a potentially lucrative tax revenue. Finally, we have a building roll, and we get a house roll this turn: 

It's the talk of the town after Tedonzic Thumper, the town butcher, claims a devil visited his house last night.

I probably should attach the still very much WIP of the Windemere Crossing guide here. It is mostly The Fantasy Trip stats where stats are made, but honestly, thinking if I were to really publish this, I'd pull the stats out to an appendix possibly, keeping the character art and descriptions fairly system-free. Of course, I can't really publish the Fantasy Trip stuff w/o getting permission, though I can use the Open Gaming License for the OSE stuff I suppose. 

Moving back to the town this month, we still have to figure out what to do. And I need to work on the Burgermeister of the town from a previous post. As I really don't need to have stats (she is not going to be fighting anyone other than politics, I'll do a quick write-up for her. In the meantime, having our 84 points to spend, and working on the barracks, we're going to spend some of our resources on beefing up the town guards. This is separate from the civil force of Sheriff Sprigbasher and Deputy Newtonson: these are the guards on the city walls for external security. Though they can of course be drafted as necessary for a town uprising or bar fight. As we do not have our barracks II yet, we can only train the militia, costing us 5 SP and a maintenance cost of 1. Next month we'll beef up to actual fighters. Having real guards is going to eat into our settlement points but will give us a better defense. We're also going to build a guardhouse, which takes 25 SP and will be complete for the next month. The town council decided a more robust police force should be needed as the Crossing is growing, and there are a lot of transients due to the caravans. Though I am curious if the Sea Elves running the Silver Pirate may want to have an inside person on the burgeoning guard force...And they have also decided to start building a town hall, or at least renovating one of the standing structures. Meeting at the tavern does not seem dignified according to Burgermiester Paoaytie (a tall, striking woman who is actually an Amazon, so I will have to re-read my Amazon books I got from a Kickstarter years ago. Oh yes, and does anyone realize she is an Amazon?)

Our summary of what happened this month (and apparently our adventurers are still treking, err, caravanning, to Windemere Crossing):

  1. no moral issues this month
  2. no noticeable crimes this month
  3. Tedonzic Thumper, town butcher, swears a devil visited him (and oddly enough, I am backing the OSE Deviltry book - figure I have all his other things and one of these days will use them! It only has taken me under 4 years to use the Amazon book - see below for our mayor)
  4. the barracks will be completed for Barracks II next month
  5. we started building a town hall to get the town meetings out of the taverns
  6. we added 10 more people, bringing the population to 322 people. We will need more housing next month
  7. we started training a militia for manning the walls and helping with the occasional Orc attack
  8. we plan on hiring some higher-end guards once the barracks are completed
  9. we still have plenty of food
A goodly number of things happened this month.

And I've not posted this as it was in my document, but a small primer on the Respeth Kingdom:
The Respeth Kingdom of which Windemere Crossing is at the far north of, is ruled by King Khermumi Axechest. The capital is a fortress built into Thuluhm Mountain and named after that mountain. This is more than a week’s journey to the east. King Axechest has been raising taxes the last year or so, and wants to expand to the west where there are more gold deposits. However, those deposits are  in the Kingdom of Ismekonia, whose ruler does not want the Dwarves to take gold from his lands. There are questions as to why he is increasing the taxes, but rumors include the possible expansion via military means or digging underground. 
Taxes
There’s a yearly tax and the tax collectors go from town to town. For Windemere, this is late summer usually. The tax people have shown up earlier this year and are asking for more. This is to help fund the king’s army and help pay the Tunnel Master’s Guild to start some initial tunnel building on the western mountains.

Burgermiester Paoaytie Hatheo



A tall, striking woman who appears to be in her 40s or 50s, she is a towering presence in town. At 6'11" tall, she is among the tallest of the townspeople. She only tells those bold enough to ask that she comes from a "beautiful island far, far away but is on a journey to see how the world works and somehow, here I am". If one were to look into her home, they would find an ornate set of leaf armor that is both beautiful and functional (+2 plate armor). She carries around what she calls her staff of office, and under her cloak a sling can sometimes be seen. She listens to the others in the town council though she has used her "Voice of Authority" when things start getting out of hand. Nomehi Wiridea, the Sea Elf pirate captain, is afraid of no one but gives Paoaytie more than a grudging respect. She often carries a book or two, and can be found in her gardens reading or writing when not walking about the town and checking on the people. Quiet yet commanding, she exudes a confidence that is unshakeable.

Paoaytie is actually almost 200 years old and plans another decade or two before moving on again. She is winding her way back to the sea to return home to Elencia, home of the Amazons. She feels she will become more noticed the longer she stays, but as some assume she is part Elf from her grace and stature, she is not overly concerned that someone will figure her out. Amazons are not well known this far inland. She also has an exotic accent that no-one can place, though she speaks and reads Common just fine. There is a sense of a deep culture in how she phrases things.

And I'm going with her name is pronounced as Pay-ee-tay Hat-oh. As I can sometimes barely even speak English, let alone Amazonian languages!

OSE Stats

STR:     10
INT:      12 - speaks and reads/writes Common, but also speaks the Amazonian language, Dwarven and High Elven languages (that 6th level bard does nice language things! and being 200+ years old she is bound to have learned a thing or two,)
WIS:     13 - +1 on magic saves
DEX:     11
CON:     10
CHA:     18 (+2 on NPC reactions)

There are no classes that match the Amazonian concept of the Aristocracy (and as you know, I have a LOT of OSE classes!) While the typical bard in a lot of DnD games is really an exaggerated version, I think bard as a poet/warrior rather than a sex-crazed is the closest we've got. Of course, I could create something, but we'll go with that standard class. There are some exceptions for Amazons: she is trained for plate armor and does have her leaf armor (called Manah in her native tongue) and knows how to use that and her staff (Taka) and dagger (Zenkah). 
OSE Character

The Fantasy Trip Stats

TFT is a bit easier to handle as there are no classes, so we can build our character up. Obviously if she were truly 200 years old, she could have really boosted those stats, but keeping this close to "normal" people type of thing. She plowed all her experience into various skills and magics. She has a crapload of skills and giving her the quarterstaff though technically she needs a ST of 11 to wield. I suppose I could boost that stat as necessary, but going with she is just exceptionally trained. 

Some additional notes for AI and things

This post had no AI help - so that's good. But I also downloaded and running an AI engine that has some cool features - object recognition among other things. It could identify may cats as cats! And why am I doing this? Well, this engine runs entirely on local resources, and has an API so I could hook it to other processes and programs. And again - why? Because I think this could be used in a future job I may have (and I've an actual face to face interview tomorrow, May 8 - wish me luck!). And plus, it is fun! And written in .Net / C#, so something I can actually look at and make changes.


And I also have an idea for another post: the parallels between RPG preparation and software development. And that I tend to over-engineer both! Sorry that the job hunt seeps into this blog, but for me, everything is intertwined. 

PDF - Windemere Crossing WIP

And if you get this far - bonus as promised!


Wednesday, May 03, 2023

The AI-ocoplipse, or, Brave New Worlds, or an Odd Recap

Traveller is all about science fiction. And while the original Traveller really misunderstood some things, it is also an open sandbox for us to put what we want into it. One of the things Traveller looks at which has caused all sorts of fun discussions is their computer rules. They envisioned these huge computers, not seeing where things were really going. Of course, the 1970s were a very different time. 

I actually like the big computer / small ship universe. I like it because it is so very much something I can understand and play in. And I always use the theory of redundancy, access and backups as part of the reasons the computers are so big. And the small ship universe is just more personable: a ship that has hundreds of crew is just too anonymous for me. Well, that and I don't like large crowds! Or even medium crowds come to think of it...

There were some posts on another blog I like, Roleplay Rescue, about how playing now is different from when we played when we were younger. And I've touched on this enough times that I won't bore you again. But, as my job hunting continues, and I read a lot about job hunting as well, I see some odd similarities. There was a Facebook post (I don't use Facebook or any social media other than this blog and perhaps LinkedIn if you consider that social media, which it sort of is) I read in another post. It was from a baby boomer (and yes, I am just barely a baby boomer!) saying that the job market is so much more difficult today than it was, and there are a lot of things driving that. Part of that is we used to go to various places and drop off a resume, and get a real human involved in the process. We would get some sort of a response, and there was some sort of loyalty between business and employees. Now, everything is much more automated, and, having done over 80 applications so far, with only a dozen actual rejections, I feel there is a lot of ghosting going on from both sides.

Which brings me back to why I like the small ship universe: real, live (okay, characters) people you can interact with. And also why I've not used a lot of automation in my Traveller universe, keeping it more to the original, mostly-pulp-based origins where it is the people and their stories that matter. Don't get me wrong - I do love computers and things (after all, I've been writing software for close to 40 years now!), but it is the people that are really important. In both games and real life.

Now, interestingly, I gave ChatGP my blog and asked it to summarize it. I had not realized I had talked about being depressed (and job hunting is a depressing thing, and then realizing I define myself by my jobs more than I would have thought!) it did uncover other salient points. And, to bring this back to an RPG perspective, I may start adding more AI assistants to my Traveller games. Recent versions have added the AI level for few things. T5 brings computers into the modern world: they are task enablers. And while computers are often task enablers, they can also be task disruptors when not working the way they should. However, as assistants, I can see them being useful. I believe the LLM (large language models) and assorted AI processes are going to disrupt our society even more than the internet did. By some pontificators, it may have as much impact as the electric light bulb, or the telephone did. So, lots of unforeseen consequences. Such as having some really odd and unrelated references for my summary - though I do think I'd enjoy a library restaurant!

My blog summary:

I can summarize some key points from this blog based on the web search results I found. Here are some possible points:

- The blog is about the Traveller Role Playing Game and the software the author has written for it as well as his current game progress. It also includes other game topics and personal updates.

- The blog has posts about various aspects of Traveller, such as world generation, ship design, trade, combat, and character creation. It also has posts about other games, such as The Fantasy Trip, Old School Essentials, and Space Gits.

- The blog has posts about various software projects related to Traveller, such as Traveller World Explainer, Traveller Tracker, and Traveller Ship Tracker. The author shares his code and progress on Github and invites feedback and suggestions from readers.

- The blog has posts about the author's personal life and challenges, such as job hunting, learning new skills, and coping with depression. The author also expresses his opinions and thoughts on various topics related to gaming, technology, and society.

I hope this summary helps you get an overview of this blog. If you want to read more details, you can visit the blog at https://traveller-ct.blogspot.com/ or check out the sources I used for this summary below.

Source: Conversation with Bing, 5/3/2023

(1) Traveler Restaurant | Union CT - Facebook. https://www.facebook.com/thefoodandbookpeople/ Accessed 5/3/2023.

(2) The Connecticut Traveler - Blogger. https://cttraveler.blogspot.com/ Accessed 5/3/2023.

(3) Traveler Restaurant: A One-Of-A-Kind Library Restaurant In Connecticut. https://www.onlyinyourstate.com/connecticut/library-restaurant-ct/ Accessed 5/3/2023.

(4) Traveller RSS Feeds : r/traveller - Reddit. https://www.reddit.com/r/traveller/comments/101o7tm/traveller_rss_feeds/ Accessed 5/3/2023.

Source: Conversation with Bing, 5/3/2023(1) Traveler Restaurant | Union CT - Facebook. https://www.facebook.com/thefoodandbookpeople/ Accessed 5/3/2023.

(2) The Connecticut Traveler - Blogger. https://cttraveler.blogspot.com/ Accessed 5/3/2023.

(3) Traveler Restaurant: A One-Of-A-Kind Library Restaurant In Connecticut. https://www.onlyinyourstate.com/connecticut/library-restaurant-ct/ Accessed 5/3/2023.

(4) Traveller RSS Feeds : r/traveller - Reddit. https://www.reddit.com/r/traveller/comments/101o7tm/traveller_rss_feeds/ Accessed 5/3/2023.

And as I like posts with pictures, I asked for small Traveller RPG style spaceships orbiting a gas giant. Not only is AI going to take away my job (hello CoPilot) but the creative world will never be the same!




And if you get this far - congratulations! I know I tend to ramble quite a bit, but in reviewing the post before posting, I realized that I do actually use my liberal arts degree to some point in my various posts. I do touch on society (both real and imaginary) and its issues. Good to see that a philosophy degree, even though I really got it mostly for fun, did open my eyes to looking at things in many ways. It is like discussions I have with my friends, who often have very differing views: we enjoy talking about a lot of things and realize that we all come from different backgrounds. Yet we respect each other and everyone's opinions. We don't have to agree (and we don't on quite a few things!) yet that makes our friendships even stronger: it is because we see each other as people, people who deserve respect. Anyway, sorry, got a bit preachy there!