Tuesday, December 18, 2007

Tools

I just added support for the toolbar (quick use of skills and items) and now is the time to think about building some tools to help me deal with the database. It wasn't really planned that I'd start to work on this right now but a comment on a post about tools from Psychochild's blog popped back some memories from Chasing Tortoise's development.

I consider I never did enough tools for CT and it brought me some problems, like getting lost in a ton of data made of meaning less foreign keys. As I was doing some test on the crafting process for the MMO project, I knew I had to spend some time on tools before this becomes a nightmare (or gives me some).

So the current tools I need are:

- Zone management : Easily see how zones are linked together, which zones belongs to buildings and the content of each zones

- Props families, types, types parts management : There is a lot items, a lot. Each item have properties and each item is made of other items. There's no way I can handle all of this without a clean interface.

- NPCs management : What are they selling, what can they teach

- Characters management : See attributes, skills and inventory of each characters

For now, those tools will probably be enough to deal with alpha testing. Since they basically consist of just clean interface to access data and linked data, it's quite easy to code (I'm using the "evils" wizards in Visual Studio which are just fine for what I want, performance not an issue here).

The props management tool is really the most important considering the amount of data and the number of tables linked together. With this tool, adding a new item to the game should become easy while dramatically decreasing errors possibilities.

I can't say tools' development is the most exciting part but I know it's an important part of the project if I want to make sure to get to a clean and stable result. Now back to work.

note: I'll be looking for VPS hosting soon to start testing (probably just after the holidays). My first choice (at least while testing the project) so far is http://www.1and1.com, mostly because it's cheap and at the moment, I can't really afford more. I know they had some bad reviews but which big company hasn't...

Anyway, if anyone can suggest me another VPS hosting for about the same price, I'd be interested.

2 Comments:

Poo Bear said...

Talking of tools, what about analysis of play? You'll need to log time based information into the database on almost everything everyone does. Maybe that can be left until later or perhaps it's worth thinking about what needs recording and setting up the database early on.

I only really mention it because I'm doing it now with a single player game. I'm currently recording changes in: health, level, money, items bought, items sold, battles won or lost, who was fought, what level they were, changes in player level, when missions started and finished, when the player dies, etc. In this case it goes into an SQLite in-memory database and then gets saved out at the end of each play session. I can then get beta testers to send these files in and merge them into one database that I can then run queries on to find out if things are working as intended.

I was hoping to save time by getting some free/cheap analysis software, but I can't find anything. I'm currently thinking the cheapest and quickest way to analyse this data is to connect Excel to it via an odbc driver. Writing meaningful SQL queries to generate average/min/max graphs of all this data is a bit time consuming and not trivial - what bits of the game are too hard, too easy, is there too much money available, are some missions too hard, etc. I suspect I might have to switch to Access as you can get a bit more control by writing bits of VBScript which might speed up implementation.

I think the ability to get hard data about what players are doing should be incredibly useful, but it's a lot harder than I thought it would be.

In the past I've done some in-house beta testing with friends and family. The ability to watch people and take notes is great, but I don't have enough relations/friends for it to be really practical. I've also done larger over-the-net beta testing. Great for fixing bugs, but not ideal for monitoring game play. Beta testers are a bit hard core so their views can be skewed, plus they still differ in opinion most of the time. This is why I think monitoring and analysing actual play data could end up being critical to making a fun game.

Over00 said...

I've been thinking about this and for some reason, it's only now that I realize that adding this will be in fact quite easy in my project.

All actions available to a character are /commands going through what I call a façade. This façade is the single entry point to the code so that makes it easy to log data before and after each command is executed.

Like you said, the hardest part will probably to get all those logs shown in a useful and meaningful way.

Using Access is probably a good idea. As much as I'm sick of Access (had to support an old Access application for a really long time), it's reporting feature makes it easy to rapidly get something that looks not so bad.