So, I didn’t get to do much on Eidolon over Christmas – turns out trying to do something like this on a laptop is an exercise in frustration. I may be spoiled by my setup at home, but I find two large monitors are an absolute minimum to make anything approaching decent progress. I’ve been picking away at it every other day I have to spend on Epitaph though and it’s coming together pretty nicely.

Since the last update, there have been a number of significant changes:

  • The terrain system has been reworked to allow for individual rooms in the map to have their own texture information. That means that you’ll be able to see grass and wooden areas ahead of you, rather than a dull, simple texture underfoot. Essentially, there is a layer of cubes underneath that can be textured individually – everything is very Minecrafty in that respect. I’m not doing much with that at the moment (just a checkerboard effect to make sure it works), but that’ll allow for a lot of flexibility as time goes by. That required a substantial restructuring of how all the internals worked, how the map was sent, and how the map gets parsed. It’s a bigger job than it sounds.
  • Well-being bars are now implemented. This had to be done twice, because I forgot to save my scene the first time and when Unity crashed, as it does often, it took the entire new UI with it – there was quite a lot I had done to properly align the UI with multiple different resolutions, so that was pretty infuriating. God damn you, Unity.
  • The first rough implementation of the chat system is in place – it’s not nearly as elegant as I’d like it to be (there’s no standard tabbed dialog control in Unity, at least yet, so it’s running off of a drop box just now rather than what I’d like. It does though honour colour choices if they are set, and lets you filter down the channels you see so you’re only following one thread of conversation. The one you see on the video below is the ‘all channels’ tab which works much like it does on the MUD, except in a nice little window.
  • After dropping a painful fifty quid on a Unity asset that handles text nicely, I managed to get internal links working for exploring add items and such. Click on the short and you get the long description. Click on any of the other highlighted words, and you’re taken to the add item description. These change your current text context, so you can drill down into add items as much as you like until you run out of things to look at.
  • A simple day/night cycle has been implemented – it currently uses only two sky boxes (one for day, one for night) but eventually I’d like to layer on proper weather effects.

That’s not mentioning the hundreds of little things here and there that have been put in place. You can see most of the bigger elements in place in the video below, which shows version 0.0.6 of Eidolon[1]:

Still miles to go before we sleep and all, and even those things that I’ve done haven’t been done fully (for example, the long description can currently only highlight add items of a single word – it’ll need refined to deal with more complex arrangements of adjectives and nouns. Some of that has already been coded, but it needs stitched in – there’s a lot of that in Eidolon at the moment). Doors still haven’t been done properly yet, and are just handled as a texture on a cube (which is why you see some of them upside down). But it does mean that I start to move into some interesting territory next – that of representing NPCs and objects in the room.

Obviously I don’t have the kind of budget that allows for me to commission 3D art for all the different kind of zombies we have in the game, and definitely not for the NPCs we have. So, I’m thinking we’ll see something pretty abstract to begin with – I suspect it’ll be something like boxes for items (click on them to interact) and maybe something like a board game meeple (is that the singular? Meepson? Meep? Who the hell knows) for the NPCs. Or, I might go a little more high concept and do something like the NPCs in the Beginner’s Guide:

Players will be represented in the same kind of way, except I think I’m going to allow for people to upload an avatar icon and use that in place of the face. As time goes by, I’ll be very keen on making your avatars in the game show off what you’re actually wearing, but baby steps to begin with.

Eventually, I’ll be keen on aiming for something more distinctive – perhaps paper-doll type figures that have identifying features, but don’t exist in a 3D plane. That’s likely to make its way into the game as some form anyway, because that’s kind of how I’m planning to handle interacting with them in the client. No matter which way you turn, you’ll see all the NPCs and objects in the room. MAYBE. I could probably knock something up for orientation based on information we already have in the game (you’ll have seen that in terms of how obstacles work) but that’s probably more effort than can be justified.

Anyway, if you compare what we’re looking at now with where I had gotten to with the first Java prototype of this, I think it’s clear that a rewrite from the ground up was the wise choice:


The best part about these early phases of development is that they build confidence – there are very few potential game-stopping elements coming up in the future – every day makes it less likely that there will be something so difficult and awkward to do that it kills the experiment totally. The key is to get *something* working, and then polish it as time goes by.

It’s already offering some surprises to see the game world this way – I got caught by a snake-tongue as I was wandering around, and had a brief ‘Oh!’ moment when I got dragged a few rooms without my intervention. I’ve always liked that mechanic in the game, and it’s nice to see it works as well in 3D.

Onwards and upwards,
[1] It’s going up a trivial numerical increment for every day I work on it, starting roughly a week or so after I started fiddling with it again after the long furlough. When NPCs get implemented, I’ll knock it up to 0.1.