Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / MMO world size limit?

Author
Message
Zeerun
AGK Developer
19
Years of Service
User Offline
Joined: 28th Aug 2005
Location: United Kingdom
Posted: 12th Mar 2013 16:06
Hi,

I have started building a space based MMO and was just wondering if I need to consider a limit to cap the 'world' at?

I have limited it to only 2 planes so there is no height.

I will be storing the XY in a database and objects will only be rendered and communicable once within a certain distance, but I was just wondering if I should be creating a cap on how far people can go?

Kind Regards

I seek perfection but wear my scars with pride
baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 12th Mar 2013 16:13
If you break your 2D space into segments you can have virtually no limit, at least much higher than people can actually manage to reach realistically. There are limits to the size of arrays, integers, floats etc. but if you are clever with how you use them you can create an effectively massive play area.

That said I wouldn't tackle an MMO unless you are really good at networking multi-player games and php, sql and don't mind going insane.

Good luck!


this.mess = abs(sin(times#))
Zeerun
AGK Developer
19
Years of Service
User Offline
Joined: 28th Aug 2005
Location: United Kingdom
Posted: 12th Mar 2013 17:02
Thanks baxslash! I figured the limiting factor would be data types so that is a relief

Definitely insane, networking php and sql are my 9 - 5 so I'm not worried about that part, my only concern is the amount of (and the calculating of) 3D collisions...

I seek perfection but wear my scars with pride
Grayvyn
16
Years of Service
User Offline
Joined: 30th Oct 2008
Location: Southern California
Posted: 12th Mar 2013 18:47
I don't want to discourage you but...

AGK, just re-checked online documentation, doesn't have a CloseNetworkClient command. For a client/server model, it is absolutely needed. Otherwise you can't kick people off as needed from the server side unless you shutdown the entire network disconnecting everyone.

If they use your client then you can send a "Disconnect" packet/signal to them and then they can call CloseNetwork and you are ok. But what if they aren't using your client and doing a DOS attack or using a bot? Well, you can't do anything about it.

I did put a request in on the AppGameKit Google list about this issue over a year ago.

AGK at this point seems more of a peer/peer model with the host only letting people they trust know about the IP/location, I think?

But again, don't let me discourage you Also, I would be willing to help. I have made multiplayer games before.

baxslash
Valued Member
Bronze Codemaster
17
Years of Service
User Offline
Joined: 26th Dec 2006
Location: Duffield
Posted: 12th Mar 2013 21:49
I'm pretty sure there is a disconnectNetworkClient command in the latest Beta, I could be wrong and I'm on the wrong machine to check.

I haven't really delved much into the network commands yet.


this.mess = abs(sin(times#))
Kobaltic
12
Years of Service
User Offline
Joined: 24th Jan 2012
Location: PA, USA
Posted: 14th Mar 2013 15:25
I thought about the same thing. My idea was going to be a "php server". Have the client render only what is twice as big as the screen. Then have the client handle collision and pass the information back to the server.
Zeerun
AGK Developer
19
Years of Service
User Offline
Joined: 28th Aug 2005
Location: United Kingdom
Posted: 15th Mar 2013 12:47
Well having played with HTTP connections I have decided that the transfer cannot be done fast enough. My initial thought was to only render players within a proximity you, but pulling out the X and Z of even one other player alone was just too laggy.

A solution would be to check the proximity as I am doing, then when they get close enough connect to AGKs network framework via the IP stored in the db which is retrieved from the POST call AppGameKit makes to the server.

So just need to create a network manager now

I seek perfection but wear my scars with pride
Kobaltic
12
Years of Service
User Offline
Joined: 24th Jan 2012
Location: PA, USA
Posted: 15th Mar 2013 14:59
Quote: "
Well having played with HTTP connections I have decided that the transfer cannot be done fast enough. My initial thought was to only render players within a proximity you, but pulling out the X and Z of even one other player alone was just too laggy.
"


When you did this experiment, did you look into pulling all the players in the area? Concatenating the information into one packet. Send the packet then parse it. Then work on client side prediction to handle it until the next check came in.

I am just wondering. When I send out information I get my response back in less than 1/2 second. Of coarse I don't know what the average time is on a typical mmo.
Zeerun
AGK Developer
19
Years of Service
User Offline
Joined: 28th Aug 2005
Location: United Kingdom
Posted: 18th Mar 2013 15:18
The only thing from your list I was not doing was the client side prediction, as the players can change direction quickly I did not want to try and predict where they were going and get it wrong as it would cause noticeable jumps

My connection times were anywhere from 1/3 to 1/2 a second which simulated the effect of a very low frame rate

I seek perfection but wear my scars with pride

Login to post a reply

Server time is: 2024-11-24 09:25:08
Your offset time is: 2024-11-24 09:25:08