User Tools

Site Tools


Sidebar

The material on this site is owned by Samuel Penn, and any queries should be directed there. Most of the material on this site is licensed under CC-BY-SA. You can view my profile on Google+.

Other pages:

index

Roleplaying and Wargaming

Glendale is an old website about gaming written by Samuel Penn. It may contain other things as well, but it's mostly related to gaming in some way. By gaming, I mean the tabletop variety - roleplaying games, wargames and sometimes boardgames. I play computer games, but I don't talk about them much (unless I'm writing them). Since some of the content here dates back to 1996 (when the address was on my bifrost domain at Demon), it can vary greatly in style.

Most of the content on here is entirely original. Some of it is based on material published by other people - e.g., game content for published RPGs or Wargames.

Campaigns Roleplaying Wargaming

News

Improving World Maps

Some of the work that I've done on WorldGen recently has been around improving how world maps look. I'm still sticking to a few basic planet types for now, and the most ecologically advanced so far is the EoGaian world. These worlds are similar to what Earth was like billions of years ago. They are warm, wet worlds which have methane atmospheres, and the most advanced form of life that they have is bacteria, which only inhabits the seas.

This particular world shows barren land, ice caps and mats of bacterial organisms covering much of the ocean surface in the equatorial regions. This latter feature would be a potential random feature this type of world could have. Some fraction of worlds will have one or more special features that make them standout from typical worlds of their kind. The descriptive writeup of the world would include a description of the feature, as well as displaying its effects on the map.

What has also been added is a fractal height map, which is used to provide shading to the surface. Since I've also started looking at the three.js 3D Javascript library, this height map may be useful for creating a bump map to give the world's surface a more 3D feel to it (though realistically, even the highest mountain is going to appear like a smooth plain from orbit.

→ Read more...

· 19 Jan 2018 · Samuel Penn

Star System Map

Work on the world generator is coming along slower than planned, but I'm currently starting work on generating the surface maps for worlds. In the meantime, there's also solar system maps which display the current positions of each of the planets in the system.

What is shown here is a system modelled on Sol, with several inner worlds, and asteroid belt and a couple of outer gas giants. Since the software is a simulation as well as a generator, the current position of the planets is shown according to the current time. At the moment, all planets follow circular orbits, with no real plans to expand on that. Though the map display only copes with a single star in the system at the moment, the back end database copes with binary and triple systems, so there is a plan to add in support for that at some point.

The asteroid belts are randomly generated (but using a fixed seed, so it's the same random belt each time). Individual asteroids orbit with their own period, since that's pretty trivial to do.

The labels show the planet number (I, II, III etc), the planet type and it's distance from the star. There's only a small number of planet types at the moment. Hermian worlds are hot barren worlds similar to Mercury, EuArean worlds are dry desert worlds with thin atmospheres similar to Mars. Junic and Saturnian worlds are different types of gas giants.

Generating maps and unique features of these basic planet types is what I'm currently working on. Actually producing populations and civilisations for the worlds is still some way off.

→ Read more...

· 30 Nov 2017 · Samuel Penn

Sub Sectors

In the Traveller RPG, a sub-sector of space is a 2D region of space measuring 8 x 10 parsecs. 16 of these make up a sector (32 x 40 parsecs). Each parsec is represented as a hex, which may contain a single star system. Similar to my previous version of WorldGen, I'm generating details on multiple worlds and stars in each system - a system can be a binary or triple system, and each planet can be multiple moons.

So far I've added the framework for creating basic star systems with a few planets - just enough to be able to test the sector maps. The first version of the maps is a REST API for creating a static map, an example of which is shown here.

I'm trying to display a bit more information about the star system than classic Traveller maps do. Information on the number and type of stars is shown. The star size determines it's luminosity - D for a white dwarf, VII for a brown dwarf, VI - Ia for dwarf stars up to super giants etc), the colour it's spectral type (red, orange, yellow, blue etc). The planets in the system are also shown - small or large dots for terrestrial or jovian worlds, lines for asteroid belts etc.

Since there's nothing yet to actually populate any of these worlds with a civilisation, none of the world civilisation data is shown. A summary of this will be displayed for the system's 'Main World' (probably based on population and star port type) when I get that far. How much data is shown will probably depend on the scale the map is displayed at.

The next step is a choice between drawing a map of the star system, or starting to write some proper planet generators (by far the biggest task, at least until I get to the economic model). In the meantime, here's some of what's in the database for the map shown ('sss' is a view onto the sectors, systems and stars table).

mysql> select * from planets where name like 'Oyysa%';
+--------+-----------+-----------------+-----------+---------+----------+--------+--------------+
| id     | system_id | name            | parent_id | is_moon | distance | radius | type         |
+--------+-----------+-----------------+-----------+---------+----------+--------+--------------+
| 145754 |    145752 | Oyysa Alpha I   |    145753 |       0 |      162 |   1054 | Selenian     |
| 145755 |    145752 | Oyysa Alpha II  |    145753 |       0 |      177 |     16 | AsteroidBelt |
| 145756 |    145752 | Oyysa Alpha III |    145753 |       0 |      220 |  29000 | SubJovian    |
+--------+-----------+-----------------+-----------+---------+----------+--------+--------------+
3 rows in set (0.00 sec)

mysql> select * from sss;
+----------+---------------+---+----+------------+------+
| sector   | system        | x | y  | luminosity | type |
+----------+---------------+---+----+------------+------+
| Sector 1 | Imu           | 1 |  2 | VII        | T8   |
| Sector 1 | Edytre        | 1 |  3 | V          | F9   |
| Sector 1 | Tupi Minor    | 1 |  5 | VII        | T5   |
| Sector 1 | Ghuquistanu   | 1 |  6 | VI         | M8   |
| Sector 1 | Uman          | 1 |  7 | VI         | M9   |
| Sector 1 | Ghahir Minor  | 1 |  8 | VII        | T9   |
| Sector 1 | Sticanume     | 2 |  2 | VII        | L8   |
| Sector 1 | Thikytsa      | 2 |  4 | VII        | L6   |
| Sector 1 | Epsilon Acylo | 2 |  5 | VII        | L1   |
| Sector 1 | Otu           | 2 |  6 | D          | D8   |
| Sector 1 | Otu           | 2 |  6 | VII        | T6   |
| Sector 1 | Unu Yepy      | 2 |  9 | VI         | L4   |
| Sector 1 | Ghotod Prime  | 2 | 10 | D          | D5   |
| Sector 1 | Alpha Adud    | 3 |  1 | VII        | L6   |
| Sector 1 | Irehi         | 3 |  3 | VI         | L4   |
| Sector 1 | Naditi        | 3 |  5 | D          | D8   |
| Sector 1 | Naditi        | 3 |  5 | VII        | T2   |
| Sector 1 | Beta Hotonu   | 3 |  8 | D          | D8   |
| Sector 1 | Beta Hotonu   | 3 |  8 | VII        | T1   |
| Sector 1 | Oye           | 4 |  1 | VII        | L0   |
| Sector 1 | Anardu        | 4 |  4 | VI         | M0   |
| Sector 1 | Hyxuktat      | 4 |  5 | VI         | M8   |
| Sector 1 | Fity Ybew     | 4 |  7 | VII        | L2   |
| Sector 1 | Ane           | 4 |  8 | VI         | M7   |
| Sector 1 | Dahu          | 4 |  9 | VI         | M2   |
| Sector 1 | Little Eteh   | 5 |  1 | VI         | M3   |
| Sector 1 | Tayensa       | 5 |  4 | VII        | T4   |
| Sector 1 | Iquatu        | 5 |  6 | VII        | Y2   |
| Sector 1 | Oyysa         | 5 |  8 | VII        | T5   |
| Sector 1 | Oyysa         | 5 |  8 | D          | D6   |
| Sector 1 | Shaxifih      | 5 |  9 | VI         | L1   |
| Sector 1 | Noweh         | 6 |  3 | VI         | L2   |
| Sector 1 | Ebuvo         | 6 |  6 | VI         | M0   |
| Sector 1 | Sanabi        | 6 |  7 | II         | M4   |
| Sector 1 | Pheref Mege   | 6 |  9 | VII        | T5   |
| Sector 1 | Satiqugo      | 7 |  1 | VI         | M5   |
| Sector 1 | Ibe Seya      | 7 |  2 | V          | F0   |
| Sector 1 | Ahohu         | 7 |  3 | II         | M7   |
| Sector 1 | Ihodok        | 7 |  4 | VI         | L5   |
| Sector 1 | Ridefteri     | 7 |  6 | VII        | T3   |
| Sector 1 | Epsilon Yda   | 7 | 10 | VII        | L0   |
| Sector 1 | Ghotohihyyi   | 8 |  1 | VI         | M5   |
| Sector 1 | Shenana       | 8 |  2 | VII        | L6   |
| Sector 1 | Hahutuno      | 8 |  4 | VII        | L4   |
| Sector 1 | Wenahlu       | 8 |  6 | VII        | Y8   |
| Sector 1 | Wenahlu       | 8 |  6 | D          | D6   |
| Sector 1 | Odopayot      | 8 |  9 | VI         | M1   |
| Sector 1 | Nefuxdami     | 8 | 10 | V          | G7   |
+----------+---------------+---+----+------------+------+
48 rows in set (0.00 sec)

→ Read more...

· 10 Sep 2017 · Samuel Penn

Generating Star Maps

I'm starting to re-write my Traveller-style star system mapper, and my current step is allowing the creation of a galaxy (or at least, part of a galaxy) from a simple density map. The idea is that you can draw what you want your star map to roughly look like by creating a grey scale image which shows the relative densities of star systems in different areas. Black areas have very few star systems, white areas are densely populated with star systems.

The mapping software will then take that and generate a distribution of star systems across Sectors of space using this density map. The sample image shows dark regions which represent an underpopulated rift, with a bright densely populated region at the top right. The probability of any given hex having a star system ranges from 1% to 95%.

The centre of the image is overlaid with a grid of Sectors that shows the actual generated star systems, with the core Sector (0,0) right in the centre. Using a density map allows the geography of local space to be easily sketched out, and then procedural generation can do the rest.

Though the shown map uses quite distinct levels of grey for testing purposes, any shade of grey can be used, and the map can be as uniform or clumpy as you want (after all, it's just an image).

A similar technique could be used to define different civilisations, types of stars or level of colonisation according to image colour or intensity.

→ Read more...

· 28 Aug 2017 · Samuel Penn

Character Information

Roll20 can be great at allowing the GM to track information on characters and monsters, but I've found that accessing that information can be tricky at times. Having to find the token, open up it's character sheet, and navigate to the correct tab to find some information can be time consuming, and as a GM I'd prefer to have that information available immediately.

Over the last few years that I've spent GMing on Roll20, I've written a number of API scripts to try and make that process simpler. Recently I've been tidying up these scripts to make them more consistent, and also to make better use of the Pathfinder Character Sheets that didn't exist when I started.

There's two main API commands for getting information about a token - !pfdescribe and !pfinfo. The first is designed to output information to the chat window for players. I find putting information here, rather than in another dialog, to be quicker and easier. Running !pfdescribe on a selected token will output the name, avatar image and bio of that creature, merging information from both the graphic token and character. As a bonus, it will also check for status markers on the token, and output condition information about it. For instance, the Goblin shown here is both heavily wounded and dazzled.

The !pfinfo command is for use by the GM, and displays some basic stats about the creature, which also includes any condition effects that apply to it, just like the description. If the creature has special qualities, such as SR or DR, or attack or defence notes, these will be mentioned. It's also possible to add a note to the character sheet which will appear highlighted for abilities which are really important to remember (but which I'm likely to forget in the middle of a game), such as everyone having to make fear checks as soon as they see it.

The !pfdescribe commands also works for non-combat related things. It has three different modes, for three different use cases. If the graphics token has a character associated with it, then it displays information on the character as above. However, if the token isn't linked to a character it can be used to share other types of information to players.

The first is if the token has the same name as a handout, in which case any graphics and text from the handout are displayed instead. In this example, The Celwynvian Charge is a point of interest on a map. My current campaign is set in the city of Magnimar, and so one page consists of a map of the city. Various icons on the map can be clicked on by players to get information on the site.

If the token doesn't match a handout name, then the notes from the token are displayed. This was mainly designed for putting room descriptions on the map for dungeons and the like. It's also possible to reference images from the description, in order to show a picture. For basic text, I don't want to have to create a handout for every room, so instead just have a simple token (in the GM layer) with some text that I can run a macro against. This outputs the room description to the chat window. This allows me to give a quick freeform description of the room, and use the text for a more formal description which the players can read at their leisure.

I haven't got around to putting the scripts into the official list yet, but PfInfo and PfDescribe are currently available on GitHub. PfInfo is the core script which is depended on by PfDescribe.

→ Read more...

index.txt · Last modified: 2014/02/16 15:20 by sam