Yearly Archives: 2010

A Dozen More Spells Working

These spells were made to work today:

Water Elementalist

* Blending
* Minor Blending
* Tide of the Seas
* Water Bolt
* Dispel Magic

Air Elementalist

* Coldshield

Earth Elementalist

* Dirt Cloud

Fire Elementalist

* Fireskin
* Fireshield


* Judgement


* Apocalypse


* Soulshield

C#: Compiling For 32-bit Systems on 64-bit

I recently upgraded from 32-bit Vista to 64-bit Windows 7.  I may be one of the only people who didn’t have anything bad to say about Vista.  For me it was a huge step up from Windows XP, but since I have 6GB of RAM in my system it’s a little silly to run a 32-bit OS.

I understand the differences between 32-bit and 64-bit C++ code behavior quite well, but I really haven’t spent any time digging into the differences between 32-bit and 64-bit .NET IL code.  Apparently it’s all quite a bit simpler in managed code.

Just right-click on a project, click properties, click on the build tab, and then select “x86” under “Platform Target”.

Ubuntu 10.10

I’ve been using Ubuntu as my main Linux distribution since 2005.  Not that I used it that much, but not until 9.04 was it good enough to use as my main laptop OS.  Before that I just ran it as a virtual machine or on spare pieces of junk lying around.

It’s been getting prettier every update, with the exception of 10.04, the update that put minimize and maximize buttons on the wrong side of a window in emulation of MacOS.  To me MacOS has always felt like a clunky, thrown-together, visually distracting OS that makes it very annoying to get anything useful done — BSD UNIX from 1990 with a few coats of paint sprayed on.  Luckily it’s just a quick config setting to put the buttons back where they belong.

The latest, 10.10, changes its primary font to something that almost looks a little cartoony compared to the previous font, but after spending a few days getting used to it I really like it.  It’s crisper, cleaner, and smoother, but it does emphasize how poor some of the web fonts are that it ships with, especially Arial, which is far too wide compared with its counterparts on Windows and OSX, and Times New Roman, which is so thin and weak that it’s hard on the eyes.

Canonical has accomplished their mission — they’ve made Linux a usable desktop OS.  In the process they’ve dragged others kicking and screaming into the future.  Fedora, for instance, has improved its look greatly ever since Ubuntu started making them look bad.

I still prefer Windows 7, but if I have two systems I’ll take one of each.  Each one has better apps for certain tasks and I can get more done with access to both.

A Bunch of Spells

Nearly three dozen spells were made functional today:

Air Elementalist

* Airy Starshell
* Hypnotic Pattern
* Telekinesis


* Create Water
* Detect Poison
* Group Heal
* Know Alignment
* Silence
* Turn Undead


* Analyze Balance
* Harbor of Balance
* Twilight

Earth Elementalist

* Earthen Starshell
* Earthen Tomb
* Stornogs Spheres

Fire Elementalist

* Fiery Starshell
* Group Globe


* Cowardice
* Demi Shadow Magic
* Dispel Invisible
* Hypnotic Pattern
* Mirage Arcana
* Mass Invisibility
* Misdirection
* Phantasmal Killer


* Cloak of Fear
* Heal Undead
* Protect Undead


* Dazzle


* Greater Ravenflight
* Greater Sustenance


* Infravision
* Meteor Swarm

Water Elementalist

* Adaptation
* Watery Starshell

In addition, some immortal commands were improved to make development easier and some “to caster” spell messages that were previously not shown are now shown.

Damage type vulnerability, which had only been partially implemented, is fully functional now.

Opera: My New Favorite Browser

For the longest time Firefox has been my favorite browser, with Internet Explorer second.  Firefox was the most user-friendly and where FF didn’t work very well or crashed, IE was always a reliable fallback.  I don’t mean IE6.  That was an exploding turd.

Other than consuming more memory and CPU, over the past few years Firefox hasn’t really improved at all.  It hasn’t become more user-friendly, more stable, or more fun to use.  That’s not really a problem — it’s always been perfectly usable — but it’s left room for other browsers to pass them up.

Well, not everyone is as inept as the developers of Konqueror.  Doing some memory and CPU benchmarking for work led me to try a few browsers I hadn’t spent any time with before — Opera, Safari, Seamonkey, Aurora, Epiphany, etc.  For the most part they were just your average Webkit-based or Gecko-based cookie-cutter browsers without much going for them.  Except Opera.

I only spent a little while with it, but for the purposes of the project I was working on, it was the most consistent across operating systems (Linux, Windows, MacOS), most consistently standards-compliant , and most reliable.  I used it enough that I got used to the interface, which is nice because it just gets the hell out of the way and leaves plenty of room for the sites its displaying.  Even better, the behavior and options (open in new tab vs. open in new background tab, search bar has ‘paste and go’ option, etc.) cater precisely to the way I want to use the web.

I really like the Internet Explorer 9 beta and it’s better than any IE yet, but it doesn’t make the greatest use of screen real estate.

I’m sold on Opera.  I’ve made it my primary because it’s the best choice if you use multiple operating systems.

A Few Spell Fixes

I think I remembered what I was working on — spells.

Ten more spells were made functional today:

Air Elementalist

* Chill of the Windsaber
* Hurricane


* Destroy Undead


* Sunburst
* Sunray


* Shadow Magic


* Detonate
* Neural Fragmentation


* Greater Mending

Water Elementalist

* Tidal Wave

Visual Studio 2010

Three months ago I switched from Visual Studio 2008 to Visual Studio 2010 as my main development environment.  Functionally it’s the same as it’s always been, but there are two things about it I consider great improvements.

First, the UI:  It looks so a lot better and cleaner than earlier versions.  It’s not that older versions were ugly, but it has a cleaner look and is much easier on the eye.

Next, C++ Development:  For the last few versions of VS, C++ developers have pretty much been shafted — no real feature improvements for the most part with all the love going to C#.  C++ received a major boost, gaining just-in-time compilation and error-detection intellisense almost exactly like C# has always had.  It doesn’t sound like a big deal, but it is excellent for speeding up the code-compile-fix cycle.

Only a small portion of Basternae code is in C++, just the client and the Basternae 2 to 3 zone converter, but it is a lot more pleasant to write with Visual Studio 2010.

This project started on Visual Studio 2003, so now we’ve been through four versions.

Now Where Was I?

OK, now that I’ve travelled halfway across the planet, built a good bit of software for a startup (not done yet, but it’s settled down to a saner pace), and unpacked a ton of boxes, it might be a good time to start working on Basternae a bit more.

Except…  I can’t remember where I was and what needed to be done (or priority levels for things that need to happen).

So, could someone go ahead and log into the MUD and tell me what the heck I need to work on? port 4502.

Seriously, I could use a project manager.  Anyone want to volunteer?

Silicon Valley Is The Best Place In The Universe

I’ve been in California for two weeks and already have two job offers, at least one of which offers a six-figure salary and is a company you’ve definitely heard of, and I’m likely to get a third offer within the next week.  I know which one I’m going to go with (hint: it isn’t the one that pays the most), but it is awesome to be in a place where my skills will be appreciated.

If I were still in Ohio I’d likely have to work somewhere that would involve cranking out WTF-worthy ASP.NET pages all day.  I’d rather live under a bridge, thanks.  Too bad Ohio doesn’t have very good bridges.

Funny thing is, I don’t really care all that much about pay and benefits at a place where I work.  I’m more interested in finding a problem that’s so hard I’ll have to throw my whole brain at it.  Not having to waste time shoveling snow and scraping ice off my car windows makes for more time to brain at hard problems.

Help Entries Improved

When the help file entries were translated from a text file to our fancy help entry format, the line spacing in each entry was converted from single to double.  It was just a quirk of XML serialization, but it made for long, spammy entries when helps were displayed.  I had gone through and cleaned up one or two hundred of them, but there were about four or five hundred more to go.  I spent a while going through the rest and removing the extra newlines where they weren’t wanted.  It would have taken forever if not for the help editor tool, but thanks to that it only took half an afternoon to clean them up.

Another thing that was a nuisance about the help system was that it would match and display every entry that matched the entered keyword.  If you typed “help heal” you’d get the entries for the spells heal, group heal, full heal, and mass heal.  I’m not even going to say how many entries you’d see if you typed “wall” or “fire”.  While it was intentional that a general match would take place, i.e. if you did “help wall” you’d see all of the help entries for wall of fire, wall of stone, etc., the unintended consequences were that you’d see extra entries even if you had an exact title match.

That’s been changed, so now when you type “help wall of fire” or “help heal” you’ll see the exact entry you were looking for, while you’ll still see multiple entries if you were doing a general query like “help fire” or “help wall”.

Go ahead, log in and play around a bit and see what you think of the way help is organized and how it works now.  Let me know if you see anything wacky or see a way to make it more useful.

Editor Version 0.56 Update

Working on a zone always results in editor improvements, so here’s what we get this release:

* Changed the error window shown for “Check Area” to a scrollable list so all errors can be seen.
* When items in the list of errors found by “Check Area” are double-clicked, the object, room, or mob will open in the edit window so you can change whatever the area check complained about.
* The map window is now refreshed when “apply” is clicked in the room editor so we see the room change color when the terrain type changes.
* The map window is now cleared if there was an area loaded when File –> New is used to create a new area.
* Added a “New” button to the exit edit dialog so new empty rooms with reciprocal exits can be created from the exit editor.  This will be easier than creating both rooms and manually creating an exit in each room pointing to the other.
* Added more content to the help file.

Grey Elf Hometown Layout Finished

I have the general layout of the Grey Elf hometown finished now. There’s a lot of work still to do — room descriptions, shops, mobs, objects, etc., but the layout is done and the repopulation points have been set.

Here’s what it looks like:

Now In California

I’ve escaped Ohio. Right now I’m living in San Jose, CA and it’s a vast improvement so far. Hopefully development on Basternae 3 can resume soon, work and life arrangements permitting.

Editor Version 0.55 Update

I spent a little while working on the Grey Elf hometown today. That sort of thing always results in editor changes. Version 0.55 was released today with these two changes:

* Added the “Check Area” command to the tools menu. Right now it only checks for missing descriptions on rooms, objects, and mobs.
* Added instrument type selection for the edit values screen when editing instrument objects.

Some Text Fixes

I made a couple minor text fixes, the most noticeable of which was a map rendering glitch that would cause mobs to show up as P’s and the map to be strangely distorted in the client.

I also released a minor update to the client (now version 0.18), with a map fix and a couple window focus improvements.

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:


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


* Gleam of Dawn
* Gleam of Dusk
* Negate Hex


* Magnetism


* 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.


* Fear


* 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


* 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


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


* Blur


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


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


* Wormhole
* Energy Drain
* Awe


* Negate Luster
* Illumination

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