Taking the Plunge

One of the other things I’d been working on was swimming (haven’t really tested it yet), and in the course of working on it I revisited falling, which I had worked on years ago when coding flight movement.  In the Ikosa framework, falling is a type of movement, albeit a (largely) uncontrolled one.  What I was trying to bridge recently was the transition between falling and falling into water (and falling through water), and ultimately sinking (that is, if you aren’t swimming, but are in water).

So, here’s the narrative:

1) i had to alter my playground setting to add water and a big diving board platform; and move my test creatures (wizard, spider and animated object) up to it.  The following picture is from the POV of the “wizard” (using a largely unpainted greatsword wielder figure) standing at the edge, waiting to step off the platform

Deepest water I've made yet.  I had to make it in two layers to get different light levels.  Logically the water, walls and ground extend outward "forever", only my viewport is clipped

quite a drop, at least the water’s fairly deep

2) the character takes a step off the edge (into a region unsupported by gravity), and immediately gets to roll a reflex save to avoid falling.  If she succeeds, she gets to void the movement.

I could hit the roll button, but then i'm not guaranteed a fail

she’s going to fail anyway, i wanted to test falling

3) Like climbing, the falling is sent as status back the the user controlling the character.

They are actually queued per user and shipped once the processing engine goes idle, like when it has additional prerequisites for step to continue

Since there’s nothing stopping the sequence of steps, these seem to appear all at once (more or less)

4) There’s actually a couple of falling steps and pathways depending on whether the liquid falling continues past a single 5 foot cube, but in this case the water is deep enough that damage is requested and (potentially) applied on the entry into the second 5 foot cube.  At this point the system uses the fall distance accumulated from the original falling movement to determine how much damage to give.

The platform is 40 feet high

In this case: 2d3 non-lethal. Falling into at least 10 feet of water reduces fall distance by 20 feet, and converts the next 20 into non-lethal with reduced dice size.

5) This UI shows (but doesn’t pop) on the host UI at the moment.  I haven’t worked client-server mechanics for a game-master specific UI notification as of yet.  The GM needs to click “Edit” (very old UI I haven’t played with in years) to get an editor dialog as shown next.

I already took a big step toward a GM client in making a client that could handle multiple characters

a bit bare bones, but presumably the GM has been following the action so far and know why he’s clicking the button

6) After clicking OK, the damage prerequisite is met, the damage application step is processed and the client is notified, with the result’s showing on the log and the character sheet.

There's probably a post I could write about conditions and health points...

Just a (damp and brusing) flesh wound

7) Finally a visual from the character after plunging and sinking.  This image exposes a small deficiency in the visualization system…namely that under water screen masks (should be a bluish hue) are only applied directly against a surface boundary at the moment, and the character is actually only adjacent to a surface edge (the edge of the platform)

My previous underwater tests were based on very narrow and shallow water in which every cell was next to a boundary surface

those shadings on the side of the wall are light levels diminishing with depth


Climbing Mount Probable

So, I did manage to get climbing basically working a little while back.  Here’s a quick run-down:

1) walk the spider to a wall

01-Spider

Spidey rocks. He fills the same role in testing climbing that my pet gargoyle fills in flying.

2) switch from Overland to Climb then begin a movement straight up (Shift+S)

3) Immediately make a climb check

02-ClimbCheck

This pops on the client of the user controlling the creature.

4) even though I’ll only have to make that at least once every move action (or if the difficulty changes past my previous check’s value) I’ll get bored quickly rolling that quickly, so I change the Climb skill to a take 10 for 10 rounds

03-Simplifying

Turning on take 10 sort of throws off the UI at the moment.

I also switch accelerated movement on, with a climb of 11 and a difficulty of 15 for the surface I can afford it

Also, check out the information passed back to the client in the log on the change of status.

04-LoggedStatus

Finally when I get high enough I look down on the “wizard” and animated crate below.

05-LookingDown

The walls and floor extend outward to int32.maxValue units (only my viewport is clipped). The humanoid figure down there is fairly close to 0,0,0.

Pretty good, but I don’t have bonuses for being wedged in a corner or with opposing surface yet.  Not sure there’s going to be much call for climbing in the “Alpha Quest” maps, but there should be a spider or two.


A Web of Spiders

I haven’t been idle.  As usual, I’ve been busy.  A great deal of the busy has been work related, but I also spent a good deal of time trying to work on climbing movement and the monstrous spider.  I also threw in a couple of other critters: wolf, black bear and worg.  The wolf (and worg) led me down the path of the trip action (and from there sunder and disarm, where I am currently finishing up) since one of their features is “natural trip”.

Alright, first the movement diagram (the release of Visual Studio Community Edition has brought class diagrams back to me):

Movement Class Diagram

Movement Class Diagram

I’ve had LandMovement and FlightMovement for quite a while, link movement is used in by the system to find links between rooms, and fall movement is transient on falling.  Swim movement and burrow movement shouldn’t be much different from flight movement in a very basic sense, but climb movement is very “skill-based” and deals a lot with the conditions of the local terrain and gravity.

Anyway, back to spiders…here’s the set of “sheets” for a small 1 Power-Dice spider.  (There’s actually a tiny version if the first power-die is partial)

Basic Stats

Basic Stats

Skills and Feats

Skills and Feats

Qualities

Qualities

…all working fairly well.  I haven’t implemented the web-net attack, nor web-sense, nor web-sheets, nor bonuses for moving across a web (yet).  Attack damage sizes, poison difficulties, hunter/web-spinner differences are all handled for all sizes of spiders up through colossal (with a couple of caveats…)

Large still has Finesse

Large still has Finesse

My large monstrous spider still has weapon finesse bite, so its attack roll is one better than the SRD spider.  I hadn’t accounted for bonus feats vanishing when a monster progresses.  If I find more creatures like this, I’ll consider revamping how bonus feats from creature species work.

Huge spider has different bite attack modified

Huge spider has different bite attack modifier

My huge spider has a bite attack modifier one less than the SRD spider (Note: weapon finesse doesn’t even matter any more here, as the strength score outstrips dexterity at this size and greater).  I cannot account for why the huge spider in the SRD gets a +9, so I am assuming the SRD is in error and my calculation is correct (mine is calculated purely from the application of the rules via the system).  After this point, the gargantuan and colossal spiders match the SRD without divergence.


Slot Machine…

SlotPrep

Here’s what I was really working on when I mentioned slots a few posts back.  Workshop setup of spell slots.  I’ll capture a picture of casting a spell in the client a little later.

Also, with about 10-15 minutes of time and existing model fragments, I put this together:

DriderUnpainted


The Itsy Bitsy…

Spider

I’ve been meaning to put together the model fragments (and the whole model) for a spider or awhile.  Ta da!  Now I just need to get Climb Movement in the game engine fully implemented (and various web actions and effects) so the spider can be more menacing.


Slots of Luck

No; not a random chance thing, nor a gambling thing, nor even a mush-mouth attempt to say a common phrase.

I’ve got it in my head to make sure Wizards and Clerics can have prepared spells when being edited in the workshop application. So I started (re)-looking at what I had done. Apparently I hadn’t done that much, and what I had done was a bit Byzantine (apologies to Constantinople, but your courtly operations became an adjective for a reason).

The whole set of Caster Classes have been back on the drawing board. But when I’m done with this little bit, I should be able to prepare standard spells, specialist spells, and cleric influence spells within the workshop so that I can run simulated tactical encounters with more than just weapons and magic items. Plus, I’ll be able to confirm spell targeting without the use of a wand.

As is per usual, my time is crunched by normal work, my sister’s baby-shower (the guys are going to get together also), the premier of Doctor Who Series 8, and a possible trip to Hershey Park to compensate for an abortive trip earlier this summer because my brother-in-law had to work on Saturday.


BaseMonsterClass.StepDownSize

Alright, first a little explanation: the title refers to a method in the BaseMonsterClass that handles changing the creature’s size down one step, such as going from Medium to Small or Small to Tiny. Now for some background: I have been working on targeting and activity building for a few weeks now. I’m pretty comfortable with how it’s shaped up (more on that later), but while using it I discovered a little problem with the melee-strike range for the animated objects that fall into the “tiny” category.

An animated object with 1 power-die is small, an animated object with a partial power-die is tiny. The system and workshop handle this by allowing the creature to have an option when editing the 1st power-die to pick a partial power-die instead of a full one. The BaseMonsterClass has the capacity to use standard or custom size ranges to control and modify the body when the size should change due to power-dice change in the editor. StepUpSize worked just fine, it uses the size range information to add additional values to physical creature ability scores and natural armor. The natural reach is, however a fixed value (not a change value).

So…when I wrote StepDownSize, I copied StepUpSize and pasted, using the previous size range and subtracting them out (I just had to change the additions to subtractions). However, the natural ranges were not something that could be size reversed, so I ended up assigning the old larger size reach to the smaller body. Tiny animated objects could reach 1 cube away. Simple enough fix once I realized it…


Misfire

I have a targeting system and activity builder I’ve been working on to pick targets for actions. One target type that I’d been working on a lot over the last month was attack targeting. I’ve got it fairly well along, so I figured I’d go back and apply a similar design principle to awareness targeting.

Attack targeting requires making attack rolls and needs to know certain things about the type of attack such as whether the attack is with a hand held weapon in melee range versus a reach or ranged weapon, and the effective attack launch points. Awareness targeting requires a simple selection of creatures or objects of which one is aware. I already had a basic system that used all the things the actor is aware of in a drop-down list, but wanted it to work more like attack targeting in which if I pre-select items, they are the only things that show in the list.

Well I eventually got the two fairly similar, but hadn’t worked out all display characteristics for the selection list items. So I was testing and picked the first two items in the list for my two magic missile wand test. I hadn’t quite realized I had targeted myself until I didn’t see any missiles visibly flying to targets, but the tell-tale impact splash was centered on my camera.

Dutifully I rolled both missile damages, then watched as my display window went black…I had knocked myself unconscious and dying.

Yay!


A Bone to Pick

Skeleton3

Although I’ve been doing a lot besides making models over the past month, I just thought I’d share this bit of skeleton with a working rib-cage. I’ve actually been working a bit on the targeting process, and will post some images of that in a bit, just want to make sure the auto-aiming of pre-selected attack targets is where I want it to be.


Skeleton Model

OK, no rib-cage yet, so I threw some kind of leather armor over him…

skeleton

better render and altered fragment parameters so I can swap roll and yaw axes (on the sword)

better render

He’s mostly the result of testing out parameterized fragments, with a little bit of the skeleton face and head I produced a month or so ago. Working with Skeley has helped me fine-tune some things in model construction and see where some impedance barriers to smooth asset creation are.

The second picture is direct from the model editor, where the field of view is apparently slightly better. I also made it possible to swap roll and yaw axes on fragment nodes, so I could more easily roll the sword (which is oriented so that it rolls around the z Axis instead of the Y axis)

Also, he keeps me from working more on the targeting system in the client…