Saturday, August 29, 2009

Client update

I've been working on the DClient code for the last couple of days, and it's coming along nicely. I had intended to do another interim release on thursday; after discovering that the Windows build of fundamental display primitives is vastly different than the Linux version, I had to go back to the drawing board and come up with a rendering/display system to avoid those issues.

Conveniently, with the new rendering system, the original problem that forced me to write the rendering system has vanished. I could probably figure it out if necessary, but at this point, I just want to get my work done. I'm still keeping the rendering system though; every piece of WX I replace is one step farther away from needing to use it at all. At some point, all that will be left is the event loop, wxDC functions, and Win32 resource management.

The improvements in this version of the client are primarily a simpler user interface with a lot less clutter. We also have popup-style windows for things like score, equipment, inventory and the who list. I've also prettied up some of the buttons, and have enough infrastructure in place to possibly start doing some window decorations.

If everything goes stunningly well, I should be able to get a testing release out Sunday night. More likely however, it'll be monday or later.

Thursday, August 20, 2009

Periodic Update

Over the last month or so, we've been hitting game development really hard. There's been a lot less focus on web presence and advertising, and a lot more focus on 'what makes the game fun' and how to make the game the best it can be. Some highlights of this process are:

- addition of 'credit' code, which allows for in-game microtransactions

- 'trade' code, which allows secure transactions

- a 'freak' multiplier for turn undead

- skill changes and updates, part of a global skill system restructuring

- initial conversions of class code, to allow for easy addition of more classes in the future

For a full list of the mortal changes, see the Alter Aeon Changelog. Keep in mind that there's at least as many builder and admin level changes as there are visible mortal changes!

There's also been a great deal of cleanup and reorganization of the immortal building tools, to help us get more areas up and running quicker. This was brought on in part by a couple of areas which had problems not detected by the automated area checkers. This should help a lot when we get ready to pull over another round of bport builders to the main port.

Regarding advertising, I've temporarily turned most of it off, and the newbie/login numbers do appear to reflect that. One of the reasons I shut it down was to see the net effect; another was difficulty justifying the money for such a low increase in player base. Advertising works best on a market that would use the dclient; but the dclient isn't good enough yet to convince people to play. I really need to get another client release out and get it polished up.

Wednesday, August 12, 2009

wxWidgets sucks

This is becoming less of a mud development blog than a 'bitch about wxWidgets sucking' blog. I've run into yet another piece of wxWidgets wierdness: wxBitmapButtons don't work. The documentation claims bitmaps can be used instead of the default graphics; trying this results in a very small bitmap wedged inside a ten pixel thick border of default graphics. There appears to be no way to turn this behaviour off.

I'm sure that there's a perfectly good reason why it behaves this way. It might be intentional; it might be that my development platform (GNU/Linux) is more buggy than other platforms; it might be that I'm simply terrible at operating this toolkit. Regardless, its unacceptable, and it is only with great reluctance weighing my application requirements that I did not switch to something else this very night.

Screw this toolkit. I wrote a text window class for exactly this reason, and quite frankly if I'd have done it to start with I'd have saved myself a lot of time. I will not make that mistake again, and as of right now I'm creating an image button class. I might not know what I'm doing, but at least I'll know it works properly, on all the platforms I need it to.

I get the feeling that by the time I'm done with this, I'll have using only the event handling loop and the font selection dialog. It seems like those are the only widgets that actually function as documented.