Author Archives: xangis

Gardens of the Moon

On Tiu’s recommendation I read “Gardens of the Moon” by Steven Erikson. It also didn’t hurt that it had a recommendation by Stephen Donaldson on the cover (he’s one of my favorites). I picked it up at a bookstore called “Trade-A-Book” that I found while visiting Santa Clara, CA. It was a bit different than other bookstores I’ve been in since it was all fantasy, sci-fi, mystery, horror, and romance, almost kind of a “his and hers” bookstore. Unlike other bookstores I’ve been in, it was all fiction.

Gardens of the Moon is a sword-and-sorcery book in a world of its own, which is a nice change of pace — I’m a little sick of books that rely on things fantasy readers already know about, like Dwarves, Elves, and Ogres and their racial stereotypes. Even so, many “world cut from whole cloth” books tend to be awkward, ill-explained, and not very plausible, and this wasn’t one of them. I guess anthropologists know how to create new creatures and cultures pretty well.

Erikson is a good writer, definitely better than Robert Jordan, George Martin, or any of those other long-winded get-to-the-point-already writers.

There’s really only one thing that bugs me about his style — the way he introduces characters. They tend to come up in a way that their relevance to the story is not at all apparent, and in a way that is disruptive to the flow of the tale. More than once I found myself breezing through the story and then I hit a new character and stumbled in brief disarray before getting back up to speed. Maybe that gets better in his later books.

There are 9 books in the core Malazan Book of the Fallen series, with the 10th coming out this year. I’m hooked, so there’s some work to do…

A Few More Spells

These spells were made to work today:

Cleric

* Dispel Evil
* Dispel Good
* Holy Word
* Unholy Word

Druid

* Gleam of Dawn
* Gleam of Dusk
* Negate Hex

Illusionist

* Magnetism

Anti-Paladin

* Stamina
* Greater Stamina

A Dazzling Array of Spell Fixes

I spent much of the day working on spells, and more than 90 of them have been made to work.

Anti-Paladin

* Fear

Sorcerer

* Sleep
* Minor Paralysis
* Faerie Fire
* Celestial Sword
* Weaken
* Melfs Acid Arrow
* Prismatic Spray
* Immolate
* Shield

Air Elementalist

* Haste
* Wall of Force
* Airy Smith
* Conjure Windsabre
* Wall of Mist

Earth Elementalist

* Wall of Stone
* Wall of Iron
* Earthquake
* Earthen Smith
* Bombard
* Disintegrate

Fire Elementalist

* Identify
* Fiery Smith
* Wall of Fire
* Wall of Sparks
* Flashfire
* Conflaguration

Water Elementalist

* Wall of Ice
* Aquatic Smith

Cleric

* Heal
* Full Heal
* Cure Light
* Cure Serious
* Cure Critical
* Mass Heal
* Create Food
* Vigorize Light
* Vigorize Serious
* Vigorize Critical
* Preserve
* Blindness
* Remove Poison
* Summon
* Cure Blindness
* Cure Disease
* Curse
* Remove Curse
* Continual Light
* Darkness
* True Seeing
* Power Word Blind

Druid

* Barkskin
* Create Spring
* Nourishment
* Lesser Herbal Remedy
* Herbal Remedy
* Soothe Wound
* Moonwell
* Lightning Curtain
* Poison
* Creeping Doom
* Faerie Fog
* Purify

Ranger

* Blur

Shaman

* Lesser Mending
* Mending
* Spirit Ward
* Wellness
* Sustenance
* Etherportal
* Ravenflight
* Pythonsting
* Greater Pythonsting
* Greater Spirit Sight
* Purify Spirit
* Spirit Armor
* Greater Spirit Ward
* Earthen Grasp

Illusionist

* Illusion of Prowess
* Illusion of Incompetence
* Illusionary Wall
* Mirror Image
* Ultra Death Ray
* Nightmares
* Shadow Monsters
* Demi Shadow Monsters
* Shades
* Shadow Shield

Psionicist

* Wormhole
* Energy Drain
* Awe

Enchanter

* Negate Luster
* Illumination

Chances are some of them aren’t perfect, so as always, let me know if you find any glitches.

More Spells Working

I spent a while pushing spell code around today. The following spells have been made to work:

Sorcerer

* Strength
* Dexterity

Cleric

* Bless
* Armor
* Vitality

Shaman

* Fire Ward
* Cold Ward
* Wolfspeed
* Hawkvision
* Pantherspeed
* Bearstrength
* Snailspeed
* Molevision
* Lionrage
* Elephantstrength
* Mousestrength
* Shrewtameness

Anti-Paladin

* Wither

Air Elementalist

* Deny Air

Earth Elementalist

* Miners Intuition
* Deny Earth
* Stoneskin
* Stonestrength

Fire Elementalist

* Deny Fire

Water Elementalist

* Deny Water

Let me know if you find anything strange about any of them.

Working on Psionicist Abilities

I spent a good part of the past week traveling from the midwest to the west coast and back (5 flights total). During airport layovers I took a look at some of Tiu’s psi reports. Since I hadn’t touched psionicist spells/abilities yet it was no surprise that most of them were pretty borked.

I made changes to these spells:
Aura Sight
Biofeedback
Combat Mind
Displacement
Energy Containment
Enhanced Strength
Flight
Inertial Barrier
Intellect Fortress
Mental Barrier

These haven’t been tested thoroughly and may not all work as intended since they were done half-distractedly in various airports (LAX and MSP mostly). No fix for mana use or cast lag yet.

The intent for all psionicist buffs is that they are self-only, don’t stack amount or duration, and you have to wait until they wear off to refresh them. If any of them don’t work that way, let me know.

As always, let me know what’s still broken.

Crash Fixes

* Fixed crash with monk class mobs and barehanded damage skill checks.
* Fixed crash with mob tracking. Track mobs probably don’t work yet, but at least we won’t have crashes because of it.
* Fix for spell learning when players advance levels. This may or may not have caused crashes (was a little unclear from the logs). This means that psionicists and clerics and such should auto-learn spells as they level.

Holy Mother of Awesome: DAoC Emulator

I can’t believe I never heard of this before now, but apparently there’s a Dark Age of Camelot server emulation project:

http://www.dolserver.net/

Unsurprisingly, the most popular server is based on classic pre-Trials-of-Atlantis DAoC.

Not that Bast3 needs more things to distract me from it, but I’ve been tinkering with it a bit, and may eventually put up a custom server. Not soon.

Some Fixes

Made a couple fixes for things mentioned by Tiu:

* Enslaver races added to creation screens.
* Printing move point values twice when they’re low has been fixed.
* Will and sing command processing has been fixed.

There’s still a shortage of connected zones with teacher mobs and a bunch of other things still unfixed…

Heading West

As you may or may not know, I currently live in Columbus, Ohio. It’s a nice enough place to live during the spring, summer, and fall months — the cost of living is pretty low, there’s plenty of economic activity, and lots of things to do for entertainment. Other than the fact that locals treat a silly college football team like it’s the most important thing in the world, there’s not that much to complain about.

With one major exception, of course. The Ohio winters. Ohio has a climate very similar to that of Germany — warm summers that are often too humid, and brutal, snowy winters. I guess that’s why one of the most prominent areas of this city is the German Village.

I’m a mild cryophobe, so when the weather drops below freezing I have a really bad time. In February, we had a new snowfall record of more than 30 inches:

http://www.columbusbestblog.com/news-weather-sports/february-2010-freaky-weather/

I don’t know about you, but more than an inch a day is more than I can deal with.

The wife and I have been planning to cast ‘etherportal’ <elsewhere> for a while, with all possible destinations being very far west and/or south of here (Portland, Seattle, Austin, San Jose and the SF Bay Area). Sunnyvale, California is the winner, and we’ll end up there as soon as things can be worked out (finding work, a place to live, etc.), but definitely before winter.

This relocation will obviously put a dent in the amount of time available for Basternae, but a coder who isn’t afraid to get out of bed for five months out of the year will get more done.

Zone Format XML Schema

I used the Microsoft XSD.exe tool to generate an XML schema file from the zone classes. That probably means nothing to most readers of this blog, but here’s the .XSD for the Basternae 3 zone format:

Basternae 3 Zone Format XSD

No reason really, just in case someone might be an XML tinkerer and wants to try running it through some of their tools, or if some masochist wants to browse it. I’m pretty sure there are some tools out there that will generate a data editor based on an XSD file format, but I’ve never had my hands on one. I have heard that Java and Eclipse have some pretty good XML tools.

Don’t Forget To Multiplay!

Nothing much to report today, but if you’re doing some testing feel to play as many characters as you like, including on different sides of the racewar. No better way to test grouping and fragging and all that related stuff than to stage a 6v6 PvP battle all made up of characters controlled by you. 😛

Bots are cool too, of course. Anything that exercises more of the code more often is all good in my book.

More Zones Attached To The Map

These zones have been attached to the world map:

L’ristrizzen (Drow Elf HT)
Ixxillian (Enslaver HT)
Malch’hor Ganl (Goblin HT)
Autumnglen (Centaur HT)
Plateau of the Temple
Court of the Muse

Editor Version 0.54 Update

Using the editor has inspired a fresh new batch of improvements. Here they are:

Mob Editing

* New mobs now default to having memory.
* Fixed a navigation bug with creating new mobs.
* Fixed a problem that would prevent setting mob sex.
* Added a clone button for ease of creating similar mobs.

Room Editing

* Added the ability to delete room exits from the exit editing screen.
* Increased the size of the title and description text boxes on the room edit dialog.
* Added a clone button for ease of creating similar rooms. This does not clone exit data because things could get confusing very quickly if it did.

Object Editing

* Added a clone button for ease of creating similar objects.
* Added a language selector for objects of type note in the value editing screen.
* Added a flag editor for container flags on objects of type quiver or container in the value editing screen.

Map View

* Added ‘shift map’ buttons to move the location of the room graphi in the map view north, south, east, or west in case it doesn’t all fit on the screen. Since the map view starts at the first room found, puts it in the middle of the screen, and draws the rest of the rooms from there, it may be necessary to shift the map to see what you are looking for.
* Now resizes properly when you click the ‘maximize’ button on the main window.

Walkthrough Mode

* Added ‘look <mob>’ command that shows you the description and any items equipped or carryied by a mob in the current room.
* Added ‘look <object>’ command that shows you the description of an object in the current room.
* Text input and output controls now resize properly when you click the ‘maximize’ button on the main window.
* Text output control now resizes properly when you drag the window size larger or smaller.
* Added the equip command in walkthrough mode. It lets you load an object and equip it on a mob in the current room. This generates an “equip” reset so the object will be loaded and equipped at boot time.
* Added the give command in walkthrough mode that lets you load an object and give to to a mob in the current room. This adds a “give” reset so the mob will be given the object at boot time.

Other

* Added word wrap to the description preview in the extra description edit window.
* Removed the “not implemented yet” message from the renumber command. It worked, but would still display that message, wrongly giving the impression that it didn’t work.

You can get it here.

The Rest of Shandril’s Saga

A little over half a year ago I posted some comments on Spellfire, book 1 of Shandril’s Saga.

I finished the second and third books, Crown of Fire and Hand of Fire. In retrospect, that was a bit of a mistake.

The next two books had all of the flaws of the first book, while repeating the same events and situations over and over again. There were so many dimensionless throw-away characters that it was hardly even worth remembering their names.

Essentially what these books were was a three-chapter plot drawn out into two full-length books. I thought Robert Jordan could drag a story well beyond its useful life, but Ed Greenwood is even more hardcore about it.

It took an act of will to finish Hand of Fire. One can only read about so many near-identical attacks on a caravan before falling into a coma, and it almost seems like the whole point of the book was to use the word ‘blandreth’ as much as possible.

It’s sad when the main characters of a book are so shallow and boring that you hope they’ll die so you can stop reading about them. Two stars for Crown of Fire and 1.5 for Hand of Fire. I hope Greenwood’s Elminster books aren’t this bad.

Zones Converted and Connected

Nauraki was actually the first one to give zone permissions when the Basternae 3 project started, but the converter wasn’t working well enough to convert them way back then. These zones by Nauraki have been converted:

The Plateau of the Temple
Court of the Muse
L’Ristrizzen (Drow Elf HT)
Phiadnae Flats

The Village of Shadowfall by Zaeru has also been converted.

I’ve started connecting zones to the surface and underground maps. Here’s what’s connected so far:

Village of Stoneward
Cavern of the Worms
Ice Tunnel Shaft
Thannik’Tzil (Thri-Kreen HT)
Kobold Village (Kobold HT)
The Minotaur Stronghold
Sarmiz’Duul
The Buffalo Tribe (Barbarian HT)
Kragthor (Ogre HT)
Phiadnae Flats (Minotaur HT)

That leaves a little over two dozen more that are approved and converted that need to be connected.

None of these zones have zone markers on the map. I’m not sure whether I want to place zone markers — it might be more fun to leave them off and force exploration. The number/strength of reasons for and against zone markers are about even, so that’s something to be decided later. My guess is that hometowns will be marked and other zones won’t.

None of the hometowns have player spawn points set yet, so everyone still starts in the Kobold village. Once all of the zones we have area attached I’ll worry about adding repops.

More Fixes

* Fixed a crash bug with automatically combining piles of coins when a corpse containing them decays or when someone drops them.
* Item auto-pricing has been enabled.
* Fixed a bug that would cause forage to always fail.
* Changed messages for a few commands.
* Coins were not saving in player files. This has been fixed.
* Fixed the deposit and withdraw commands. Banks are working now.
* Made the economy command immortal-only.
* Added spellbook and light support to the compare command.
* Changed adding objects to a room so they are added at the beginning instead of the end a room. This fixes an issue that caused the second mob killed in a room to end up as 2.corpse instead of 1.corpse.
* Changed adding mobs to a room so they are added at the beginning instead of the end of the room. This means that the second troll to walk into a room will now be 1.troll instead of 2.troll. This is the behavior everyone should be used to.

One thing that’s nice about the Basternae 3 engine is that a player-issued command is incapable of crashing the MUD directly. The only crashes that can and will happen are when the database gets corrupted or otherwise out of whack. Autonomous mob activity and object/room/weather updates are the only places that contain any danger anymore, and those are getting sorted out pretty quick.

In the past week, average uptime has increased from 2d7 hours to 2d20 hours.

Hurry up, break it while you still can!

By the way, “turbo level” mode is on — which means you gain ten levels for every one level you would normally gain. Should help with testing.

Connecting Rooms Made Easy

In Bast1 and Bast2, when a zone was added, one had to edit both zones, adding an exit to each room. When a zone was moved or connected in a different direction, the old exits had to be deleted and replaced with exits in the new direction.

This wasn’t too bad, but I always found it annoying having to edit *two* files. Worse yet, if you weren’t very familiar with a zone it could result in poking around a bit before you found what exit connected where.

This could also create “hanging” exit data when one zone was unload or disconnected from another without deleting both exits. Many of the Bast2 zones have exits pointing to the old map even though those room numbers don’t exist. This doesn’t break anything, but it’s ugly data.

Well, the “old way” of connecting zones still works on Basternae3, but I’ve also added a very simple way of connecting zones. It’s a ZoneConnections text file in the area directory that gets loaded. It has nothing more complex than:

First Zone’s Room Number, Exit Direction, Second Zone’s Room Number.

So, for example, one line reads
“200,south,1200”

This means that when the MUD boots and it loads that line of the file, it creates an exit leading from room 200 south to room 1200, and also creates an exit in the opposite direction, leading north from room 1200 to room 200.

If either of those two zones does not exist or is not loaded, the exit is not created.

This is a fun little solution that makes it way easier to connect zones to the world map, so you’ll see zones on the map pretty soon.

Editor Version 0.53 Update

This editor update is mainly about making it easier to edit load commands and object values.

Here are the changes:

Reset Editing

* Object, room, mob, equipment slot, door state, and direction selector buttons have been added to the reset editing screen to make it easier to choose values.

Object Editing

* Added select buttons for weapon damage kind and weapon type to the object value screen for weapon.
* Added totem type (sphere) selector to values screen for totems.
* Added target room selector to values screen for teleports.
* Added liquid type selector to values screen for drink containers.
* Added room and exit direction selectro to values screen for switches.

Walkthrough Mode
* The purge command has been implemented in walkthrough mode (clears objects and mobs from the room).
* The load command has been implemented in walkthrough mode (lets you load an object or mob into the room).

Other
* Added more info to the help file.

As always, save early and often if you’re working on a serious zone project, and let me know any glitches or suggestions for improvement.

You can download the new version of the editor here.

Client Version 0.17 – Attack of the Programmer Art

This update adds worldmap support.

Here are some examples:

Map Window Screenshot 1

Plains between the southeastern swamp and the blast crater.

Map Window Screenshot 2

On the road in the western forest.

Map Window Screenshot 3

Underground near the river crossing.

Map Window Screenshot 4

East of the mountains where the desert runs north into tundra and then glacier.

Map Window Screenshot 1 in Wintin

As a reference image, here’s the first map location in WinTin.Net

I guess the first three aren’t too bad aside from some tile banding and edge mismatches, but the fourth one looks like hell. I could do better if I spent more time on creating the tiles, but there’s probably a pretty solid limit to what I can do. If you’d like to try your hand at replacing some of the uglier tiles, you’re certainly welcome to.

If you download and install the client, there’s a “tiles” directory that contains the graphics for the map tiles, the equipment screen background, and the health/move meters. They’re loaded at startup, so if you replace any of the images with those of the same name and dimensions, they’ll be used instead.

This doesn’t do much good yet since no zones are attached to the map yet, but they will be soon.

You can download it here.

EDIT: I tried the client on Fedora 12 and it gave some library mismatch errors, so I created a static build. The new Linux build was created on Ubuntu 9 and ran fine for me on a clean install of Fedora 12. Let me know your results if you try it.