May 20 2009

4 Square Kilometers of Terrain

Tag: VectorStormtrevor @ 9:37 pm

4kmofterrainSo I’m a little baffled.  With one very minor adjustment, suddenly my terrain rendering is flying at fantastic speeds.  Here is a shot of the terrain.  What you’re looking at here is approximately two square kilometers of land (the other two alluded to in the title are behind the camera).  For those who play World of Warcraft, two square kilometers is approximately the size of Elwynn Forest, and my vertex density is approximately identical to that used in World of Warcraft (I’m using one vertex every four meters).

Now obviously, there aren’t any trees or plants or players or any other props in this scene (actually, there is one prop in the scene, but it’s hidden behind the slope of the ground in the foreground.  Sorry about that), so it’s not really fair to compare rendering rendering speeds, but see the horizontal red and green bar in the bottom left corner of the screen?  That’s my information about CPU/GPU utilisation.  The little green part of the bar is how long this terrain is taking to render (the red part is waiting for vsynch).  This is much faster than I was expecting it to render, especially considering that I’m not performing any adaptive rendering to try to cut down the polygon count (check the wireframe inset;  the polygons are so dense in those distant hills that they appear to be being drawn solid!);  the code is just splurting all 262,144 vertices to the 3D card, lighting them in hardware, and drawing them to the screen.

I’m now left wondering whether I should bother with adaptive terrain mesh, or whether I should just go with this for now, and instead move straight on to fixing up the texturing of the terrain.


May 14 2009

Game Context vs. Game Play, and MMORPG Tycoon

Tag: Game Design,MMORPG Tycoontrevor @ 11:18 pm

One game design concept which I’ve been thinking about a lot recently is the interaction between gameplay (that is, what a player can do in a game), and the situations he finds himself in.

Basic game theory tells us that in a properly designed game, there should not be a single dominant strategy which is the most effective choice for every starting condition.  In most competitive games (Chess, FPS games, RTS games, etc), the varying opponents provide these varying starting conditions, even though the map (or initial board layout) might be the same for every game, but merely having a different opponent is enough to make it important to change your strategy while playing, and to give a different play experience each time you play.

In single-player games, though, we can’t rely on “different opponents” to provide these different game contexts.  Most single-player games actually have very little replayability for this reason;  the game is the same each time you play, and so the second play is essentially the same as the first.  Some games provide branching storylines or different power-up options (these are most often RPGs).  Many roguelike and Tycoon games provide varied starting maps.

So the problem I’m working with right now is that in MMORPG Tycoon, the most important thing which the player does is to create the world.  With the player creating the world, that stops us from giving the player different game situations by generating a different map for the player to play on each time, and as a result, the player tends to create fundamentally the same game world on each play.

I see a few possible approaches to fixing this.  One is to actually pre-generate a world, and then charge the player virtual cash to make changes from the pre-generated world.  When properly balanced, this would allow the player to still create whatever world he wanted, but would encourage him to work within the basic world framework he’d been provided with.

Another possible approach would be to place some sort of “resources” on the world map.  So while the player could freely define the terrain he wishes, he must work around these pre-placed “resources” which would support the world he wishes to make.  (Example:  Perhaps there are “Network points” randomly scattered around the map, and all buildings must be placed within a certain distance of a “Network point”).  This gives a much more classic sort of “work to make the best use of the available resources” gameplay, but isn’t quite as believable as the way that an MMORPG would actually work under the hood.

I don’t have a definite solution yet.  But I’m working on it.  :)

More news and screenshots soon, I promise!


« Previous Page