Not that I don’t have projects pretty much hanging out the windows as it is…
The old blog has been a little neglected of late, I admit. By way of explanation, that is because of many things, projects at work, a project for Last Straw, other distractions, etc. However, the time that usually would have spent updating the blog with a concept post in previous months has been consumed for the past few weeks with something else.
Bottom line, I’ve been getting very frustrated in terms of posting on design ideas of late. Actually, I’ve always been frustrated with game mechanics discussions on forums, blogs, and the like, because it is nearly impossible to get everyone on the same page when you start talking in any detail, especially about things like mechanics (classes vs. skills) or nebulous subsystems (crafting, NPC interaction). People use different models as a foundation for their perspective, based on games they’ve played in the past, etc… so what sounds like a great idea to commenter A seems moronic to commenter B, because A is seeing the idea grafted onto an EQ1-like game while commenter B imagines it bolted on to Eve Online, instead.
To me, part of the problem is that there is currently no relatively easy way to show people what you are talking about, fully in context. I stress the term “relatively easy”: writing an MMO isn’t likely to ever become something where you can just “wave your hands” for a few seconds and get a full-fledged demo up and running.
So, sandwiched in between everything else I’ve got going on, I’ve been working on a simple little “engine”. Not really an engine in the usual sense, I suppose… I’m not spending a lot of time (yet, at least) making user interfaces for designing in it, for example. Basically, I’m just trying to create a framework of resources and code classes, largely devoid of anything directly tied to game mechanics, that people can use to build little demonstrations of the type of gameplay they are talking about.
I’m trying to walk a line between graphically “adequate” and technically complex… I went with a relatively basic 2-D isometric view with smooth scrolling and tile based lighting, for example. That should make it relatively easy to create new sprites, etc. Simple winsock/TCP for the communication at present, although I’ll probably move that to DirectPlay eventually. (I’m just so used to sockets… so freaking simple and straightforward to implement. Plus then I can use Ubuntu or Mandrake for the server OS… I know, I know, DirectPlay is pretty simple too, and why remake the wheel…)
I’m using the recent Microsoft XNA Refresh 1.0 for the client, because it’s free, readily available by download, and yet very current and up-to-date (by contrast, I had originally considered doing this in VB6, for the simplicity of the language, or Java, for the portability and price point).
When I say devoid of mechanics, I mean I am avoiding anything along the lines of hit points, levels, and so on. I’ll mark the places in the code where I would put such things, maybe even stub in a little of my own stuff as an example, but do as much as possible to keep such assumptions out of the core of the code. (That’s always been the problem with using something like NWN, Arcanum, and many other “build-your-own-module” style products: you have to either use or find ways to work around their game mechanisms/systems. If you are talking a completely different set of mechanics, it ends up being more work to mod their stuff than to simply “roll your own”.)
At present, it will still require some programming knowledge/ability to use, unfortunately. Making something open-ended and flexible, yet providing a robust user interface that easily exposes all that functionality, is simply such a huge project that I can’t even start to consider it as things stand. Maybe eventually, but not for quite some time, assuming it ever gets that far.
The goal is to make it relatively simple and quick to develop an example of whatever the hell we are trying to talk about at the time, as opposed to the continuous handwaving and shadow-puppetry we currently have to resort to.
I have no idea whether it’s truly a reasonable goal, to be honest. But I have to give it a shot (for my own sanity, if nothing else). Only time will tell if it ever goes anywhere, I guess…
(I’m going to be bringing this to the MMMOGIG meetings for feedback, at least until it gets laughed out of the room. You’ve been warned.)