What I’m up to these days

It’s becoming common for me to have a few weeks between posts to the blog.  Makes me feel a little sad.  I’ve just not been feeling very creative, lately, and so I haven’t had much to talk about.  MMORPG Tycoon 2 development has been completely stalled for the past few weeks, not for any good reason;  just because the tasks I’m working on are large enough to induce paralysis.  I think things over, I get ready to write code, I think about them some more, then suddenly Reddit or GSL or YouTube or (gasp) an actual book seems really interesting, and I wind up doing something else instead of sitting down and focusing enough to write code.  It’s a bit like when I was refactoring character ability code;  it was such a big problem and was touching so much of the system that it was scary to start actually writing any of the code.  Of course, once I actually started, it only took a few days to complete the conversion.  But it was terrifying at the time.

And I’m on another one of those tasks right now.  Specifically, the generation of MMO buildings.  I’ve been arguing with myself for ages about whether the game should generate building geometry automatically, or whether the player should be able to create them with some sort of UI.  And lately, I’ve even started to wonder whether it would be a better choice to just build traditional models for the buildings, and not even procedurally generate them at all.

Here’s my current thinking about MMORPG Tycoon 2:

On Buildings

  • The game world is what MMORPG Tycoon 2 is about.  Like most tycoon games, your job is to build a world which satisfies your customers.
  • Tycoon games generally allow you to build things down to their smallest level of simulation.  For example, the original SimCity game was about optimising traffic flows.  Managing traffic flows was what SimCity was about.  In SimCity, it would be superfluous to spend time manually changing the shape of a building, because individual buildings are beneath the level of simulation — they’re smaller than the smallest things that matter to the game.  What matters in SimCity is where districts are in relation to each other, and what forms of transit exist to connect those districts together.
  • (On the other hand, one could bulldoze individual buildings within a district in SimCity, and many players did exactly that in order to hopefully get “better” buildings to be built within the district.  Less polluting, nicer-looking, etc.  Did this actually have an effect on the game?  I don’t know.  The game never gave any strong indication either way.)
  • By comparison, The Sims was also about optimising traffic flows, but it had a much smaller scale.  Not only does the shape of a building matter in The Sims, but the placement of walls inside the building, and even the precise placement of furniture all make a huge difference.
  • In MMORPG Tycoon 2, like 1, the scale is individual PCs in an MMORPG.  We simulate the PCs and the feelings of their subscribers, but we don’t completely simulate the PCs;  PCs have gold and they loot (very, very crudely simulated) weapons and “vendor trash”, and they actually play a configurable and simplistic MMO-like game (including performing tasks, joining parties and guilds, levelling up, etc), but they don’t currently have armor or anything that would really be called an “inventory” or stat boosts or crafting abilities or etc.  Inventory and crafting are below the level of detail in the simulation I’ve written.
  • In an MMORPG, most buildings are not important.  In a WoW-like (which is what I’m using for the basic game mechanics) the only buildings that actually matter are:  Inns (give a bonus if you disconnect within them) and Graveyards (where you’ll spawn if you die).  Every other building is primarily eye candy;  their actual functions are performed by NPCs.  I’m following this model with MMORPG Tycoon 2 — making a building does nothing except provide visual interest for the PCs.  So from a certain point of view, buildings aren’t actually important at all.  I could use static models and it wouldn’t really affect the game in any meaningful way.
  • The goal with MMORPG Tycoon 2 is to support a full-MMO-sized game world.  The largest game map (at the moment) is about 20kmx20km in size, which is roughly the playing area of the main two continents in World of Warcraft smashed together  (and yes, it uses an absurd amount of memory to do that right now;  around 800 megabytes.  I need to set it up to page unnecessary bits of the world out to disk, to bring that down to a more manageable block of memory).  With that much space to fill.. will players ever really want to create individual buildings?  Or should they be ‘zoned’ and then automatically created by the game, like in SimCity?

I’m still arguing this with myself.  There are huge benefits to switching to a “zoning” system, both in terms of memory usage and in terms of CPU efficiency.  But I’m not sure it feels right.

On cameras

I’ve finally come to my senses and realised that the first-person-perspective camera I was using (and which you can play with in the public MS1 and MS2 builds) was probably a bad idea.  And flying on the “graveship” was definitely a bad idea.  It made sense thematically for what I was originally trying to do with the game, but I can see that in practice, it was very much in the way of actually playing the game.

The problem with switching away from the FPS camera is one of figuring out what should replace it.  And this was a big problem;  I’m a bit of a camera specialist, and so I’m surprisingly fussy when it comes to camera behaviour.   And in my opinion, there has never been a 3D Tycoon-style game which had a usable camera (But feel free to suggest some, if you know of good ones that I should look at).

My first attempt at modifying the camera was to use a Roller Coaster Tycoon 3-style camera, which holds about a 40 degree downward angle, and rotates around the middle of the screen (and provides extremely limited support for adjusting the camera up and down).  And I hated it in MT2 just as much as I hated it in RCT3 (I know some people who worked on RCT3 — no offense to you guys!  I’m just absurdly picky about cameras);  it was just an awkward angle for the camera.

In the end, I’ve settled on a camera which behaves a little like the one used in the CitiesXL games;  it’s facing almost flat downward when you’re high up, but as you move the camera down toward the ground, it pitches up so that you’re looking forward.  Once you’re all the way down at ground level, it unlocks looking around freely with FPS-like controls.  I’m happy enough with this behaviour that I’ve put it away in a drawer for a few days, and I’ll look at it again fresh later this week, to decide if it’s really as good as I thought it was when I first wrote it.  Assuming all goes well, this will be visible in the MS3 build which I’m hoping to put out sometime in February (if I can break the coder’s block on building generation).

This also gives me a really easy interface to easily allow an “infinite zoom-out” which was a core UI concept in the original MMORPG Tycoon.  And which I’ve always sort of wanted in MMORPG Tycoon 2, but could never figure out how to make available.  (My original design for MT2 called for a “mothership” which the player’s graveship would fly up to and dock with, high above the game surface, and the high-level editing controls would be mounted on the mothership, and thus only available from high altitude.)

The down-side of this mostly-top-down view is that my current procedurally generated trees don’t read at all from that perspective;  they just appear to be green circles.  Switching to coniferous trees, or any sort of non-umbrella-based tree construction would probably help that.

Other thoughts

I’ve been playing some Evil Genius recently, for inspiration.  I really like its interface for hiring workers;  you specify how many workers you want, and how quickly you want to hire them.  Instead of the RCT3 hiring system, where you just pay the static cost for workers, in Evil Genius the faster you want the workers hired, the more you have to pay for them.

I’ve also been playing the current alpha for Prison Architect recently, also for inspiration.  As a Tycoon game, it’s workmanlike.  But it has a huge amount of flair and delivers a deeply uncomfortable message (Those Introversion guys have been really good at making games which make me feel uncomfortable, lately).  The very concept of making a Tycoon game focused on building a place for people who don’t want to be in it is masterful.  I touch on that a little in MT2 (where simulated players often have a love-hate relationship with the game they’re compulsively playing), but Prison Architect forces you to stare straight into that abyss.   I’m really looking forward to seeing where the Introversion guys go with this.

Finally, over the New Year period, I was playing Little Inferno, which is probably the most brilliant satire of gaming that I’ve ever played.  It plays its tricks on so many levels, and it disappoints me to see how few review sites actually understood just exactly what the game was satirising, despite it being lampshaded several times within the game itself.  If you’re into deeply smart games about gamers and gaming trends, then this is a fantastic game.  Oddly enough, I think I’d like the game even more if it was about half its current length.  For me, it really started to drag somewhere around 40% of the way in, and it just sort of became a slog, punctuated by moments of amusement when I unlocked the next series of jokes.  But the jokes aren’t the meat of this.  The meat is the game’s core design and the interactions between you and the NPCs.  But it’s not a game to buy expecting riotous fun.  Like Prison Architect, this is a game which has a definite message, and here, the game mechanics are optimised to deliver the message, not to be entertaining.