The Mad Trist
Tuesday, September 4, 2012
Running Dungeon Crawl Classics RPG: Part 5
Sadly, enough time has passed that I no longer remember the specific details of the adventure, and like many campaigns, this one ended with that first adventure.
Sunday, June 24, 2012
A Brief Geometric Indulgence
Gaming maps have always fascinated, and yet, bothered me. I was raised on a solid diet of SPI hex maps wrought at the unequaled hands of Redmond Simonsen. I especially loved the maps for War of the Ring and the DragonQuest supplement, The Frontiers of Alusia. So moved was I, in fact, that the last 4e campaign map I created was an attempt to capture the feel of those maps (with somewhat mixed results).
For smaller areas, the hex grid is a nice, if old school, way of measuring distance without worrying much about the inherent distortion caused by projecting the face of a 3D world onto a 2D surface. But the larger the map, the more the distortion matters, and the more it bothers me.
I came across an OpenGL demo called HexPlanet while browsing an article on Board Game Geek, about spherical hex maps. That led me to this article as well, which has a nice tutorial on geodesic grids.
The following screen shots are from my ongoing XNA 4.0 attempt at achieving something similar. For the record, this was actually written using Silverlight and it's somewhat hobbled version of XNA.
The cartesian coordinates of the icosahedron are actually fairly simple. An icosahedron with an edge length of 2 has 12 vertices: (0, ±1, ±φ) (±1, ±φ, 0) (±φ, 0, ±1). Since this is going into a 3D framework, I want to start with a base icosahedron where the vertices are actually a unit length from 0,0,0. You can get those values easily enough by normalizing a single vertex and extracting its values:
// Golden ration constants
private const float Phi = 1.618034f;
// These values are chosen as if one had normalized a vector with the coordinates
// (0, ±1, ±φ)
// (±1, ±φ, 0)
// (±φ, 0, ±1)
private const float PhiNormalAlpha = 0.5257311f;
private const float PhiNormalBeta = 0.8506508f;
Those values are used in place of 1 and φ to generate the initial twelve vertices.
The end result, is something like this:
But wait, I can hear you say. That's a dodecahedron! Where is the icosahedron we were promised? Rather than use the icosahedron directly, we use its dual polyhedron. That means placing a face at every original vertex. This is because the faces of the icosahedron are triangular, and as we subdivide them, they remain so. The dual polyhedron of the tessellated icosahedron forms a hexagonal grid, however, except at the location of the original vertices, where pentagons remain.
The remnants of the icosahedral heritage is preserved in the fact that no matter how far we subdivide, there will always be twelve pentagons.
Initial terrain is merely split between water and land without further refinement. That is, a hex is either land or water. As we subdivide, we introduce different terrain types (forest, desert, mountains, etc), at a level at which the hex cell size is appropriate.
Further tessellations refine things by adding icecaps and water depth.
I came across an OpenGL demo called HexPlanet while browsing an article on Board Game Geek, about spherical hex maps. That led me to this article as well, which has a nice tutorial on geodesic grids.
The following screen shots are from my ongoing XNA 4.0 attempt at achieving something similar. For the record, this was actually written using Silverlight and it's somewhat hobbled version of XNA.
The cartesian coordinates of the icosahedron are actually fairly simple. An icosahedron with an edge length of 2 has 12 vertices: (0, ±1, ±φ) (±1, ±φ, 0) (±φ, 0, ±1). Since this is going into a 3D framework, I want to start with a base icosahedron where the vertices are actually a unit length from 0,0,0. You can get those values easily enough by normalizing a single vertex and extracting its values:
// Golden ration constants
private const float Phi = 1.618034f;
Vector3.Normalize(new Vector3(0, 1, Phi))
// (0, ±1, ±φ)
// (±1, ±φ, 0)
// (±φ, 0, ±1)
private const float PhiNormalAlpha = 0.5257311f;
private const float PhiNormalBeta = 0.8506508f;
Those values are used in place of 1 and φ to generate the initial twelve vertices.
The end result, is something like this:
But wait, I can hear you say. That's a dodecahedron! Where is the icosahedron we were promised? Rather than use the icosahedron directly, we use its dual polyhedron. That means placing a face at every original vertex. This is because the faces of the icosahedron are triangular, and as we subdivide them, they remain so. The dual polyhedron of the tessellated icosahedron forms a hexagonal grid, however, except at the location of the original vertices, where pentagons remain.
The remnants of the icosahedral heritage is preserved in the fact that no matter how far we subdivide, there will always be twelve pentagons.
Initial terrain is merely split between water and land without further refinement. That is, a hex is either land or water. As we subdivide, we introduce different terrain types (forest, desert, mountains, etc), at a level at which the hex cell size is appropriate.
Further tessellations refine things by adding icecaps and water depth.
So where do things go from here? Honestly, I don't know. I would like to work toward the original "feel" in the map first shown above for my own reasons.
Wednesday, April 25, 2012
Running Dungeon Crawl Classics RPG: Part 4
Attack of The Crocodile
The first combat began as the character unfortunate enough to have a entered the game with a grappling hook, pulled the body of the sorcerer ashore, much to the chagrin of the crocodile that was preparing to feast upon it.
Looking at the crocodiles stats (which I grabbed straight from the D20 SRD) relative to the 0-levelers, it was pretty clear that for every attack it made, it was going to kill a character. DCC didn't really provide much guidance on how many opponents could comfortably engage an opponent in melee combat, I fell back on the AD&D 6 like-sized opponents. I had no plans to use miniatures with so many involved, so in this combat, and the others that followed, I simply took notes about whom was engaged with whom. I allowed the others to simply shoot or hurl ranged weapons into melee. DCC has a pretty straightforward rule for firing into melee, and we all (players included) were rooting for friendly fire.
As the croc came surging out of the inky depths, it gained surprise. I had decided beforehand that unless the group took precautions, that surprise was a possibility. The surprise rules in DCC are, in my mind, a touch sparse, and I suspected they allowed only for a single surprise round, but I could find nothing that actually said that. Admittedly, I may have missed it. Having gained surprise, the croc chomped the first handy character, and with first blood now spilt, we had our first casualty. It was time to roll for initiative.
Each player had made 4 characters using the great 0-level generator at Purple Sorcerer Games. Of their own volition, they had also given their own groups names-- and as the first round of initiative was ticked off Team Awesome headed straight away from the crocodile, leaving the Hand of Gary to be the first to descend on it. The Hand was now engaged, along with the now hastily-named Team Missing Man, poking at the crocodile with an assortment of awls and shovels.
Tuesday, April 24, 2012
Running Dungeon Crawl Classics RPG: Part 3 (the end of the intro)
Jumping ahead just a touch, the missing piece of the intro were the remnants of the "copious notes" that the sorcerer was taking while on board the Seaward Howl.
The first was a map, now water-damaged and blood stained from his ignominious end at the hands of the Overseer:
This represented his labors of the last two weeks circling the island and coalescing that with info from other sources.
For this particular piece of info, I wanted the players to be able to correlate the location from the earlier sketch of their surroundings to potential locations already ascertained by someone else with more knowledge than themselves. I purposely swapped the orientation of the two maps though, since none of them had any idea where they were, or really which way was which. Since none of the characters involved could come up with an applicable skill for navigational knowledge, I left this as an exercise for the players.
Taking a look at the full map, I marked, somewhat obliquely, two points of possible attack: the shiny orb next to the volcano on the left, and the orb hover above the concentric pit in the upper right.
Taking a look at the full map, I marked, somewhat obliquely, two points of possible attack: the shiny orb next to the volcano on the left, and the orb hover above the concentric pit in the upper right.
Second, we had a page from some tome of forgotten lore:
In the handout version, the lower right-hand corner was torn to hide the missing end of the final sentence. The older among you will, perhaps, recognize this as the except from the AD&D Dungeon Masters Guide for the Codex of the Infinite Planes. The intent of this handout was to clue in the players that the sorcerer the perhaps seeking something that would give them the power get off the island without having to face the slavers in combat. I relied on that fact that most of the player's in the game had been playing since the late 70s.
To be clear, I should have "distressed" this piece too. It was also soaking in the sea and a pool of sorcerous ichor. The simple explanation, though, is I ran out of time to prep. Ah, real life!
But wait...this info is floating in the water still....what harm could come of pulling the sorcerer's body ashore?
To be clear, I should have "distressed" this piece too. It was also soaking in the sea and a pool of sorcerous ichor. The simple explanation, though, is I ran out of time to prep. Ah, real life!
But wait...this info is floating in the water still....what harm could come of pulling the sorcerer's body ashore?
Running Dungeon Crawl Classics RPG: Part 2
Since I am a fan of the "Player Handout" I decided the players needed a bit of visualization of their surroundings to get the ball rolling. I gave them a quick sketch map of the area that was visible to them from the point that they had washed (or swum) ashore. They were currently at the spot marked on the beach.
The black flag indicated where the Seaward Howl went down and the two other flags marked the spot to which the other ships had backed off during the storm. I wanted them to realize, without me telling them, that the threat of the slavers was far from over. I also let them know that two lifeboats were ashore with them. An overgrown path skirted the base of the hills and led into the jungle. The map covered an area of approximately 6 miles x 6 miles.
Also from the beach, the body of the slain sorcerer could be seen floating just a bit further out from lifeboats...
Sunday, April 22, 2012
Running Dungeon Crawl Classics RPG: Part 1
I must admit, when I first read the Beta Rules to Dungeon Crawl Classics RPG, I was a touch put off. There are several things that rubbed my modern gaming sensibilities the wrong way--race as class, sparse skill support, and the inevitable decline of wizards into, well to put it bluntly, hideous mutated freaks.
But the more I read it, the more I liked the flavor, and the more I understood what Goodman was trying to do here. I was especially intrigued by the Funnel. For the uninitiated, the Funnel involves letting each player run 3-4 characters, eventually "thinning the herd" due to the fragility of the 0-levelers, until each player has a suitable character (or characters) to choose a career and advance to first level.
Our group was going to be large, and given that there ended up being 9 of us, we had a horde of 32 characters ready to roll over whatever I set in front of them.
I wanted to capture something of Aaron Allston's Treasure Hunt along with a bit of Isle of the Ape, so I emailed the following intro to the group via email:
The Wreck of the Seaward Howl
Life has not been good lately.
You are all captives of Overseer Zharek,
travelling aboard the Seaward Howl for parts unknown. Some of you have
been onboard only a month or so; the not so fortunate, for the last three
months.
The Overseer could not be a crueler man.
Transgressions, both real and imagined are dealt with quickly and severely, and
few of you have escaped a daily lash. None among you knew your destination, but
if this was merely the lead up, then perhaps death is a better fate than what
actually awaits you at journeys end.
Over the course of the trip, you have left
cooler climes behind. The past two weeks, however, the voyage has slowed….those
of you whose forced labors brought you on deck saw the ship approach what
seemed to be an impenetrable bank of fog stretching for miles in front of the
three ship convoy.
A man in the garb of the order of the
Imperial Streth-- surely a sorcerer of some ability--stood with the
Overseer and his navigator, often in heated argument…and always taking copious
notes.
Over time, the ships crept into the fog bank,
moving slowly but decidedly towards an island cloaked within the fog. From a
distance, the Isle appeared to be a pile of jagged mountains sprinkled with
smoking volcanoes. At night, these cones gave the place a dim hellish glow.
And the weather was tricky. Surely Azi Dahaka
was toying with the Overseer. Still, at the sorcerer's direction, the
ships moved closer to shore, ever to the Overseer's visible agitation.
Azi Dahaka must have chuckled as the
inevitable sudden thunderstorm arose, its squalls pushing the Seaward Howl
inexorably forward...
The Seaward Howl was cast upon the
reefs and split. Flying into a rage, the Overseer cursed the sorcerer,
and ran his sword through the doomed enchanter piercing his skull from beneath
his chin to the back of his skull. As they fled the Howl, they tossed
his body into the sea. Pelagia take you all, the Overseer had
sworn, as he left you and your fellow captives to perish in the sea.
But the sea did not take you. Somehow a small
group of captives working on deck managed to free the rest, and as the storm
bashed the Howl against the rocks, one group made for shore.
Now you are washed ashore on this god
forsaken place, with what meager possessions have drifted ashore with you. The
place is hot and foul smelling and you are all on the edge of starvation and
dehydration. The storm is subsiding, but none of you feel any better…
Subscribe to:
Posts (Atom)