Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 Well, it's time for me to start doing the map rendering for Project Terra, and I've stumbled upon a dilemma. As maps are updated frequently, (player housing and other map events) I've come up with two options, and I'd like you to decide for me which one I should do, down to your personal preference. The poll will only be up for a few days at the most, so vote quickly.Vote only once, and please post the reasoning behind your response if you can, thanks.**Option 1**All map data stays server-side, and "chunks" of map data (around 50x50 tiles) are sent to the client when a player crosses the X or Y "halfway point" in the map. Data is requested from the server, old data is removed from the map cache and the new data is appended.Pros:-Reduced client size.-Lower memory usage in-game.Cons:-Server could potentially be sending map data every 1/2 second or so.-Drawback on server performance.**Option 2**Map data is stored client-side, and frequent update requests are sent by the client after so many steps in one direction.Pros:-Better server performance than Option 1.-Map data will be sent out at less-frequent intervals, depending on if the map data client-side matches the server map data.Cons:-Higher memory usage in-game.-Client data size exceedingly larger. (Each geographic map is 262MB).Thanks for your time,Lightning Link to comment Share on other sites More sharing options...
_Her0 Posted January 15, 2012 Share Posted January 15, 2012 I say **Option 2** purely because the ACTUAL gameplay won't be affected as much. They will have a smoother time actually playing the game. Regarding the client data size, that's no problem, I'm sure we've all downloaded WoW.. >.> Link to comment Share on other sites More sharing options...
Marsh Posted January 15, 2012 Share Posted January 15, 2012 I would say put them client side. Though i am not sure why your maps are so big. Link to comment Share on other sites More sharing options...
Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 @Marsh:> I would say put them client side. Though i am not sure why your maps are so big.Each map is 2500x2500\. ;] Link to comment Share on other sites More sharing options...
azkanan Posted January 15, 2012 Share Posted January 15, 2012 I say Option 2.I'd prefer that we stress player's clients & Computers that little bit more than the server. Link to comment Share on other sites More sharing options...
guzmanm Posted January 15, 2012 Share Posted January 15, 2012 I'd go for Option 2; most of the people are already used to downloading 1 GB and further just for playing a game. Though, if you have the right equipment(Which I'm guessing you don't have), you could go for Option 1. Link to comment Share on other sites More sharing options...
Myron Posted January 15, 2012 Share Posted January 15, 2012 @Azkanan:> I'd prefer that we stress player's clients & Computers that little bit more than the server.Of course you do, it'll be a feast for the Project Terra team when the server is burned out.Frankly I don't care for neither option, cause I'm sure my computer will handle it and I'm not the one taking care of the server. Not to forget I don't like the Cons of either options. Link to comment Share on other sites More sharing options...
Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 @Rusher:> Not to forget I don't like the Cons of either options.That's the main reason I posted. I figured whatever the potential players wanted the most I would go with. ;] Link to comment Share on other sites More sharing options...
jna Posted January 15, 2012 Share Posted January 15, 2012 I'd rather download a big client than the server performing slower, so option 2 it is. Link to comment Share on other sites More sharing options...
SawQuart Posted January 15, 2012 Share Posted January 15, 2012 2I'm sure you'd rather have a few angry fans that whine that they can't handle the game rather than the whole community going on a rampage because of server burnouts and lag. Think about HnH lag. Link to comment Share on other sites More sharing options...
azkanan Posted January 15, 2012 Share Posted January 15, 2012 @NamelessSoul:> I'd go for Option 2; most of the people are already used to downloading 1 GB and further just for playing a game. Though, if you have the right equipment(Which I'm guessing you don't have), you could go for Option 1.Current specs are 12GB Ram and 8 Processors at 3.20GHz. Link to comment Share on other sites More sharing options...
Keebler Elf Posted January 15, 2012 Share Posted January 15, 2012 Option 2\. Server wide lag kills games so option 1 could be the death of any community you might build. Link to comment Share on other sites More sharing options...
guzmanm Posted January 15, 2012 Share Posted January 15, 2012 @Azkanan:> Current specs are 12GB Ram and 8 Processors at 3.20GHz.Sounds like you've actually something, but, how about HDD? Plus, you would also need a good internet connection to handle multiple requests at the same time if you go with Option 1.[Server Hardware Requirements Guide](http://confluence.atlassian.com/display/DOC/Server+Hardware+Requirements+Guide) Link to comment Share on other sites More sharing options...
Joyce Posted January 15, 2012 Share Posted January 15, 2012 You could also make several servers that function as one, say one that handles NPC interaction, one that handles World interaction, one that handles World Data etc.May be a lot of trouble getting it to work together, but you can do a lot more with it. :] Link to comment Share on other sites More sharing options...
Anna Comnena Posted January 15, 2012 Share Posted January 15, 2012 Is there real-time player modification of the maps themselves (terraforming, construction)?That is really the only issue.@Keebler:> Option 2\. Server wide lag kills games so option 1 could be the death of any community you might build.Depends on how efficient the map data packets are. For an online game clients have to generally talk to the server constantly anyway to get relevant data updates (entity locations, status updates, etc.).Why are individual maps so large? It'd be better off having small maps (maybe the size of visible range of the player client), and dynamically linking them together. Then you could have a little bit of both, and cache a few local maps around the player's current location and do sending and updates when required. Link to comment Share on other sites More sharing options...
Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 Real-time player modification, yes. The caching method you also mentioned could replace the chunks method in option 1, but the updating rate would still be a bit of an issue. Link to comment Share on other sites More sharing options...
mrmiguu Posted January 15, 2012 Share Posted January 15, 2012 You should use a UDP packeting system to stream your constant flow of map data to all existing clients.You could just lower the sending rate for specific things, depending on how important it is that those things are updated accurately. Growing trees and such would take a low-accuracy priority, while player-invoked actions to the map directly would stream a bit faster and take a higher level of priority in terms of accuracy.Everything would flow with the serverloop already, so you wouldn't have to worry about too much of it being a burden on your server, handling things. Link to comment Share on other sites More sharing options...
azkanan Posted January 15, 2012 Share Posted January 15, 2012 @NamelessSoul:> Sounds like you've actually something, but, how about HDD? Plus, you would also need a good internet connection to handle multiple requests at the same time if you go with Option 1.> > [Server Hardware Requirements Guide](http://confluence.atlassian.com/display/DOC/Server+Hardware+Requirements+Guide)HDD has a good bit of space, and I have another HDD on-hand ready for use if I need more space.As for connection, probably 0.5 - 1 MB on a wired connection, download. Upload is faster, can't remember the specs that-side. Link to comment Share on other sites More sharing options...
JeffSventora Posted January 15, 2012 Share Posted January 15, 2012 I would suggest finding a method that would allow you to take your 2500x2500 maps and breaking them down into smaller maps, have them client side and only load 9 maps at all time (which would be significantly smaller than loading a whole 2500x2500 map.So you would load and display the map the player is on and have the surrounding maps ready for action, as soon as the player changes maps, release the maps out of scope and load the new surroundings in. Link to comment Share on other sites More sharing options...
Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 @Miguu I don't need a constant stream of data, the map just needs to be updated whenever a change is made. The threads purpose was more along the lines of which of the two methods people would prefer, as I was unsure. As it sounds, people wouldn't mind downloading a larger client, so I will most likely go ahead with that. If anyone can find any other viable advantages to option 1, it would be great to hear them before I start. :-) Link to comment Share on other sites More sharing options...
azkanan Posted January 15, 2012 Share Posted January 15, 2012 @Lightning:> @Miguu I don't need a constant stream of data, the map just needs to be updated whenever a change is made. The threads purpose was more along the lines of which of the two methods people would prefer, as I was unsure. As it sounds, people wouldn't mind downloading a larger client, so I will most likely go ahead with that. If anyone can find any other viable advantages to option 1, it would be great to hear them before I start. :-)Hey wait a minute! I thought you had to go offline like, 3 hours ago? xD Link to comment Share on other sites More sharing options...
Myron Posted January 15, 2012 Share Posted January 15, 2012 @Azkanan:> Hey wait a minute! I thought you had to go offline like, 3 hours ago? xDAnd you believed him? Ha! Link to comment Share on other sites More sharing options...
Yxxe Posted January 15, 2012 Author Share Posted January 15, 2012 @Jeff: I like that idea, its sort of a compromise between both options. Low memory usage in-game for the client, while the server is not pumping out data. I think I'll go for that, thanks!@Azk: I'm on my phone. ;-) Link to comment Share on other sites More sharing options...
JeffSventora Posted January 15, 2012 Share Posted January 15, 2012 No problem ^^I've reached this stage in my project as well so I had to ask myself the same question. Regardless of what you do, good luck with the implementation. Link to comment Share on other sites More sharing options...
Anna Comnena Posted January 15, 2012 Share Posted January 15, 2012 If there is real-time modifications, you can't constantly send huge maps to the player. This is why I suggest to have smaller individual maps more dynamically linked. This localises changes made by players to the maps and potentially reduces the traffic load sending the updates. If it happens so several players are making updates in adjacent maps, you'll have to send multiple updates, but in this case the updates are relatively small themselves and so lag shouldn't be as much of a factor.I believe this is how Haven & Hearth does map loading and updates. However H&H has lag problems from map updates, I believe this is more from how their minimap system works, as both the world maps themselves, AND the minimaps are generated and sent to the clients from the server (while I think in their case, having the clients generate the minimaps based on what the world is currently at would be better). Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now