A MASSIVE world, with no loading???

Need help with SmartFoxServer? You didn't find an answer in our documentation? Please, post your questions here!

Moderators: Lapo, Bax

poppop
Posts: 57
Joined: 07 Jul 2007, 10:24

A MASSIVE world, with no loading???

Postby poppop » 01 May 2008, 09:01

Hi,

Hope everyone here is alright, our smartfox project got put on hold :-( And now it looks like it will be a long time before it gets started again.

We learnt so much about smartfox, we have decided to try and do our own game.

Quick question then...

Is there anywhere to read about how mmo games can have MASSIVE worlds, without loading. So a player is free to go where they want, while keeping the game running very fast -- like its a local game.

Info on how the server only needs to load player info in a certain area, but can seemlessly go to the next area without the player knowing.

Any info would be great!

Thanks for the help.
User avatar
BigFIsh
Posts: 1698
Joined: 25 Feb 2008, 19:26
Location: New Zealand

Postby BigFIsh » 01 May 2008, 20:18

Why not use this example..

Player moves in "X" direction, the area close to him has more details than the area far from him. The area is always loading details depending on the distance from player to point of area.

Let's say.. a point in the area is "Z" which is about 100 feet alway from the player.

The "Z" only has 1 or color at the moment, very simple stuff. When the player moves toward "Z" then the details about the point "Z" starts to load more details at a time.. like.. 2 extra color every 10 feet or so. That way, very effective loading system. - Area is always loading, like World of Warcraft.

I hope you know what i mean
Figbox
Posts: 4
Joined: 30 Apr 2008, 18:22

Postby Figbox » 01 May 2008, 21:16

I'm not sure if I'm understanding your question correctly, but if you mean how conventional mmos avoid streaming content to players from a server, then the answer is that they run from assets stored locally making the client only load info pertaining to character and world position and activity.

Try defining your world as XML which tells client to load local .swfs. This of course reduces content security and requires the client to run locally, as an exe, for example; but that is how conventional games can support such large areas with such low loading time.

I hope that helps. :D

Chance Wees,
Figbox Games
poppop
Posts: 57
Joined: 07 Jul 2007, 10:24

Postby poppop » 02 May 2008, 19:24

Hi guys,

What i mean, could better be shown in a diagram?

Image

Basiclly, the red squares are the world, the green blocks are buildings in the world.

Blue "peeps" are other human players

The green guy has a larger green square around him -- that is his current screen. Anything outside of that screen does not affect him. So the server sending positions of them players would just be a waste of bandwidth. Also, know where all the buildings are outside of that square is also pointless.

The Orange "peep" is another human player example. -- he can see other parts of the same game area, as his game screen is not exactly in the same place as the green player. -- like a continues movement on the same map, not fixed areas like in some rpgs.

Can someone explain, or show an example of how you would have this in a socket server setup. To stop users getting the positions of all players, and getting the right area of the map loaded to the users game.


P.s thanks for your help guys, I think BigFIsh is more close to what im asking -- i do want it to be browser based swf, not a downloaded exe, but im more asking for an example or somthing to read how to get this setup.

Cheers.
User avatar
BigFIsh
Posts: 1698
Joined: 25 Feb 2008, 19:26
Location: New Zealand

Postby BigFIsh » 02 May 2008, 20:48

Hrm..

You could try..



Let's say.. your player was at X:100, Y:100, and moves north..

Then do some condition saying "Ooo, player is coming north and we don't have any tile here, better add some!
i++ attachMovieClip("tile", "t_" + i, i, {_x: (X position according to player), _y: (Y Position according to player)});

and another condition saying "Hrm, player is out of reach, better remove these tiles.." do a for loop for tiles that are out of reach >> removeMovieClip(that tile)

The COnditional could be based on Dist = Math.sqrt(dist Y from player to tile, dist X from player to tile)..

and u can have sprite (other players) as well.. with
some conditional saying.. if another player is within 400 pixels from this player position, then add him.. you can have that on server side.

For example, the server side keeps an array of all the positions (x,y, and z?) of the players. And work out if playerA is within 400 pixels from playerB, if this is true, then send information to playerB about playerA otherwise do nothing.


attachMovieClip("playerSprite", "t_" + k, k + 5000, {_x: etc, _y etc})
playerSprite.setColor = 0xFF0000

Do you get the idea?

Also, you may like to check out http://www.gotoandplay.it/_forums/ it'll be an ideal place to ask your kind of questions.

Return to “SmartFoxServer 1.x Discussions and Help”

Who is online

Users browsing this forum: No registered users and 12 guests