<
>
 Thread (12 posts)
ironore  9/28/05 2:17:14 PM

Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100

Advanced Member

Joined: 6/24/05
Posts: 927

Forging the Future

How hard would it be to program a 3D world for an MMORPG on an actual 3Dimensional spherical world model?  I think it would be an awesome concept, but feel that it must be very difficult since it hasn't been done yet to my knowledge.  The sphere wouldn't have to be too large, it wouldn't matter if you could even seen horizon curvature to some extent in extremely flat areas.  Is the 'google earth' model actually spherical? or once you zoom in is it just loading flat maps that merge together?

IF it could be done then there would be so much opportunity for realistic lighting, day/night sequences with sun rise/set at different times in different places.  There would also be a lot of other astronomical things you could work in, such as planets and constellations, not to mention that the world would have no borders because you could go completely around in any direction.   Map wrapping makes sense to connect your east/west borders but going to the north extreme shouldn't instantly connect you to the south extreme as is currently often done on such maps.

Anyway, just like to hear some ideas on this and if/how/when/etc.

IronOre - Forging the Future

Jimmy_Scythe  10/01/05 3:35:52 PM

Rank: 90/100 Rank: 90/100 Rank: 90/100 Rank: 90/100 Rank: 90/100

Elite Member

Joined: 12/31/04
Posts: 2249

I'm not much of a math wiz... but that's kinda already done with 3d worldspace coordinates. You have an origin (0,0,0) and manipulate the vectors according to that origin. I don't really see any difference or advantage here. Unless you're talking about a whole new coordinate system that's based on radians or something. I have a sneaking suspicion that doing a graphics engine around spherical trig or calculus would be computationally expensive. Server side, everything is 2d. Even working with a spherical coordinate system, you end up working with blocks / nodes at X,Y,Z postition. Or some other set of numbers based on angle, distance, and vector from the world origin.

http://www.youtube.com/watch?v=2if5GYXOGyo

frumbert  10/02/05 9:50:38 PM

Rank: 1/100 Rank: 1/100 Rank: 1/100 Rank: 1/100 Rank: 1/100

Novice Member

Joined: 3/04/05
Posts: 149

I''m never pleased; games can always be designed better.

Easier to work everything as if it were flat (like the server does). You can then calculate your position on the world which would then determine things like the time of day for you at that position of the world. Remember, all this stuff takes place on your client machine, not on the server, so your machine could make it night at your spot but a different person elsewhere on the planet is still seeing day because that's the time at their position in the game world. You could also simulate things coming up over the horizon by scaling down the height of objects taht are further away, so they seem to "grow" slightly as you get closer, the way a mountain does when you're driving towards it. That, combined with clever fogging, would probably convince most people that the world was round.

 
ironore  10/03/05 11:21:11 PM

Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100

Advanced Member

Joined: 6/24/05
Posts: 927

Forging the Future

But how do you make it light for one person in one location and dark for another on a seamless flat map?  We are talking a flat map but a 3D environmet, ie:  People can look up and see the sun, as in the flat map in the below illustration.  No matter where they are on the flat Map, if the sun is up can't they see it?  And if it is acting as the light source, it is either light for everyone or dark for everyone.  On the 3D sphere however, there is a day/night line, which is the same as the curve of the sphere and so that dark/light line is the horizon past which the sun is NOT up for you, but is up for someone else. 

Also, as to map wrapping, how does that work in most MMORPGs?  I usually see them either have a boundry you can't cross, or just linking the east side to the west side of the map, and the north to the south.  Linking east to west is not so bad, as in the map of the world above, asia actually does wrap from B to A.  However, the north pole should not wrap to the south pole, from C to D.  Unfortunately, many games do wrap north to south.  If you have ever played around with google earth, on the low camera angle that shows all the 3D terrain, you will know what I am talking about.  There are no borders or boundaries, you can just scroll around the whole globe over and over.

The advantages to having a spherical world is that the lighting AND the navigation would be realistic.  You could have a painted star sphere around the whole thing (ie: sky-dome) and certain stars would be visible at different lattitudes and longitudes, depending on how far north/south of the equator they are located.  The sun would also be higher in the sky at the equator, and change it's apparant course with winter/summer in the different hemispheres.

Problems I see are that the sphere would be quite large and really just have a lot of wasted empty space inside?   I am not really much of a 3D programmer, but I wonder if it could now, or in the near future be feasible to try something like this.  I would appreciate any further input.

IronOre - Forging the Future

frumbert  10/05/05 12:54:14 AM

Rank: 1/100 Rank: 1/100 Rank: 1/100 Rank: 1/100 Rank: 1/100

Novice Member

Joined: 3/04/05
Posts: 149

I''m never pleased; games can always be designed better.

While everybody in the game inhabits the same "world", it still draws the graphics for the world down on the client machine. So each different player machine draws the world from that players perspective. When the sun is in a particular part of the sky around a sphere, you can calculate where you are on a round map in relation to the sun. But you can just as easily calculate where the sun might be for you if the map is flat.

On the top the yellow and blue circles represent the "sky" above two different players (that they can see on the screen). You can see that the yellow circle has the sun directly above it, but another player further around the world sees the sun as sunset.

Because each player's computer draws the world as that player sees it, you can send the yellow player the suns position in the midday position, and the blue players sun in the sunset position, and let each machine draw the sun appropriately. Actually, you would probably send numbers for "current world time / your time zone", just like the real world uses, and let the local machine draw the sun in the appropriate spot.

Now, as to "wrapping". Most large map game engines (like MMORPG engines) don't load the whole map as one giant polygon - they break it into manageable chunks (squares usually) and load a few "tiles" of the terrain at a time. So when you come to a "join", you simply load up the tile for that part of the world.

Imagine your world is made of 5 tiles. As you move to the right (yellow arrow), you load up the next tile in the sequence. When you are on tile 5, the next tile doesn't exist, so you loop back and use tile 1 in place. The result is a "tiling" map, which is desirable for a round world, because you can just keep on going around. A tile doesn't have to be square - in fact, in some ways it's easier to have a triangular or hexagonal tile because a shpere is easier to cover in evenly sized hexagons than it is to be covered in evenly sized squares.

 
ironore  10/05/05 5:02:28 PM

Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100

Advanced Member

Joined: 6/24/05
Posts: 927

Forging the Future

Hey Thanks!  That is awesome!  I see exactly what you mean, and it makes so much sense!  So you mean even on the flat map you can tell it where to show the sun for that location, and the level/color of lighting.    As to the map wrap, might something work like these hexagons or even cutting them into smaller eqalateral triangles and then loading several that all inter-lock.  In this way you could even make points in the western hemisphere link to the north pole regions and back to points in the upper eastern hemisphere and NOT directly to the south-pole region as some maps erroneously do.

As I said, I focus mostly on game design, but sometimes I get big ideas and like to check them with reality along the way, so that I can make proper adjustments, and this has made it clear for me.

IronOre - Forging the Future

Goober2k3  10/15/05 2:27:41 AM

Rank: 32/100 Rank: 32/100 Rank: 32/100 Rank: 32/100 Rank: 32/100

Apprentice Member

Joined: 7/02/04
Posts: 70

"Dont forget your armor this time!"

Well, the concept is a great one but it poses many hardships. BTW the lighting in every mmorpg I know of to date consists of lightmaps (Shadows from trees are drawn onto the ground's texture which is loaded in to save the computer from having to computate shadows) and many games still use a texture for a characters shadow X_X! Also lighting in games doesn't have a real sun.. It's either part of or its own textured surface and It would be safe to say it's not a real sphere. :)
What you are seeing in your game world is what is refered to as a containing primitive. You are inside a giant low poly sphere that the entire outdoor section of the map is in. The inside of the sphere is textured to give the allusion of a vast horizon or outspace. (Think The Truman Show). This eliminates the need for a actual sun and all the lighting is calculated by a rather simple mathmatical equation to choose an angle for the shadows and such.
In essence it's all done to make that beaut they call Doom3 look like its a little universe on your computer, just tricks to make you THINK your really on mars. One interesting new twist this involves is relative gravity.
Gravity in games to date use single plain equations that if you put them on a a plane non-parallel to that plane the equation does not work. I don't see this as any major problem, hell they do it in UT2004. Still interesting though. Think for instance, if someone is (in vector terms from the center of the sphere) at 90 degrees they woulden't fall off of course. In today's games put them at 45 or 135 degrees and they will slide until reaching 0 or 180 degrees then just fall out of existance. People at 270 woulden't stand a chance!
Since the world produces its own gravity you would have to have the gravity calculated either by every triangle on the sphere or via a vector from the center of the sphere. This would also apply to everything along the lines of characters, all physics, and projectiles / moving objects.
A cool concept is actually have a sphereical sun floating around space corresponding to the day and night cycle. You woulden't have IT decide the day night cycle it would simply correspong to the one in place. So you would have certain event times to change the lighting that is chosen before or during compilation, then you would have the seasons correspond to those days and they lengthen and shorten the days with a simple equation. Isn't it a beauty you can get the effect of a real solar system in affect without having to have your computer calculate EVERYTHING?!
I love the concept man keep coming up with these ideas!

Rage/Enos

ironore  11/14/05 5:07:29 PM

Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100 Rank: 56/100

Advanced Member

Joined: 6/24/05
Posts: 927

Forging the Future

Excellent!  These may seem like little details, but those are the sorts of things that really promote emersiveness in a game world and I think that is important.

IronOre - Forging the Future

Hiachi  11/15/05 2:50:56 PM