Lordy. It’s a long time since I last updated this place.
I have, believe it or not, been working solidly all these months, mostly looking at ways to make a heavily text-based game look exciting to play. The reason I never blogged about it was because I couldn’t find any.
I tried many things. Animated text. Text that rewrote itself depending on what choices you made. Clever algorithms for describing procedurally generated locations and fights with robots so that no two were exactly alike. The more things I tried, the more stubbornly my game insisted on looking like a text adventure from the mid 1980s. I began to get an uneasy feeling that maybe there was a good reason why computer games abandoned text as soon as they had enough money for the bus fare.
Was… was I making a boring game?
* * *
Finally, around the end of October, I had a little epiphany. Including some kind of graphics with the text had always been part of the plan: I’ve got a whole design doc full of options I’ve considered at one time or another. My problem was always that any conventional approach, such as tile graphics, required either a huge investment of time and artistic skills that I didn’t have, or a lot of money to hire someone else to do the work, which I also didn’t have. But suddenly, two ideas in that design doc made brilliant sense together. One was using vector graphics to present the world in a deliberately abstracted, sci-fi combat simulator kind of way. And the other was hexes.
Simple, iconic line-art is something I can just about do. And I already have a 3D graphics engine that’s mostly spinning its wheels. What’s not to love about this idea?
It is a big step, and it’s going to have a big knock-on effect on the rest of the game, as a lot of things I was previously going to do using text I can now do with graphics. Distance in combat, for example, was something I was going to fudge: enemies would either be “close enough to hit”, “a little way off”, or “very far away”. The combat itself would have to be described blow-by-blow, which with multiple opponents risked getting both confusing and repetitive. With simple representational graphics, all these issues and many others go away. The game will still be very text-based, but now I can use text where it works, instead of trying to force it to solve problems it was never a good fit for.
The short message is that I’m reinspired. I’ve been enjoying coding this hex graphics stuff more than anything I’ve hacked out in the past half year or more.
Hexes are crazy, but in a good way. You know how ordinary 2D graphics has two axes, X and Y? Ordinary 2D hex graphics has three axes: X, Y and Z, despite having no third dimension. That’s because a sprite can move to an adjacent position not just to the left or right, but along two diagonal directions, and you have to be able to deal with that.
I’ve had to implement real-time hex-based pathfinding, so that the player sprite can navigate around obstacles and so can the robot sprites when they’re chasing it, and that was really fun too.
As Michael Bublé so topically observed, it’s beginning to feel a lot like proper game coding. Happy Christmas!