Vaughan Posted July 12, 2012 Share Posted July 12, 2012 5000 players? Ha. Bring it, I imagine it'll crash with just 50. Link to comment Share on other sites More sharing options...
Helladen Posted July 12, 2012 Share Posted July 12, 2012 You do know MMOs like World of Warcraft don't even hold 5,000 right? What makes you think you can do it? Link to comment Share on other sites More sharing options...
Marsh Posted July 12, 2012 Share Posted July 12, 2012 @Insidia:> You do know MMOs like World of Warcraft don't even hold 5,000 right? What makes you think you can do it?Wow has like 10 million + players. They have like what? 100 servers?Do the math. Link to comment Share on other sites More sharing options...
Vaughan Posted July 12, 2012 Share Posted July 12, 2012 Number of subscribes does not equal numbers of players on at a given time.They also have some specialized software.And has many, many clusters. A lot of network bandwidth. And many, many resources you don't have. Link to comment Share on other sites More sharing options...
Vaughan Posted July 12, 2012 Share Posted July 12, 2012 And before anyone pulls the "we can do that, too with the software!". It's written monolithic. So no, you can't. Link to comment Share on other sites More sharing options...
AeroEBrown Posted July 12, 2012 Share Posted July 12, 2012 @Vaughan:> And before anyone pulls the "we can do that, too with the software!". It's written monolithic. So no, you can't.Yes you can, you just have to write everything to co-exist as one. Just like WoW did it.In fact, the developers of WoW and all the other big games, were once like us. Random people off the street. They did it, and we can do it. We just need to learn a lot in order to be able to./ontopic/Keep up the good work JeffSventora!Thanks,Aero/EBrown Link to comment Share on other sites More sharing options...
Vaughan Posted July 12, 2012 Share Posted July 12, 2012 Sure, re-write the entire software.Point in case: You can NOT run 5000 players on his current server. It will crash. Hard.If you want constructive feedback:Re-write your monolithic server to use a node infrastructure that can scale on both CPU power and network bandwidth. Remember, if you're expecting sub-second responses, you can't afford to be wasting CPU cycles. ;) Link to comment Share on other sites More sharing options...
JeffSventora Posted July 12, 2012 Author Share Posted July 12, 2012 On a good machine with a decent amount of cores, a multi-threaded server architecture and optimized instances in-game I'm sure it could be achievable especially if your packets aren't bloated. You're right, now that I think about it, 5000 is probably a little too much if you don't have a fast internet connection and you're running the server on a mediocre machine but with the combination of good software and good hardware a decent amount of players should not be a big deal.Also, WoW is probably handling 10 times more data than anything I write. Their packets WILL be handling more information. Again, with the right optimizations and a good code base it should be achievable. Link to comment Share on other sites More sharing options...
Vaughan Posted July 12, 2012 Share Posted July 12, 2012 Allow me to dissect (with good reason!) each of your logic.1) Multi-threading is only as good as the syncronization between the threads. Right now, threading a MMO server is difficult. Common servers nowadays don't use threading, instead they use the node infrastructural and IPC to communicate (usually over LAN). You can't just "throw more cores at it" with a monolithic architecture. It'll break down, be hacked and crash.2nd) You're sending a minimum of 8 bytes for UDP or 20 for TCP for each packet. Assuming a movement packet is two bytes (that's being generous) + a short (2 byte) identifier, you're looking at least 12 bytes per player. Mulitply this by 2\. 24 per second, if everyone was moving.Now, let us do some more math…24 bytes per second * 5000 = 120k bytesThis works out to roughly 120KB/s of incoming traffic alone (in small packages with overhead, no chat or anything else included) [Not including NPC movements, or anything of that sort, remember!]Let us now imagine a scenario. You, myself and another are on a map together. I move. Server eats my 24 bytes. Now, depending on the architecture.. I will move or wait for a reply. If I wait, then each of us will recieved 24 * 3 bytes back. This means the server consumes 24 * 4 bytes. Ouch.To make matters worse, all home connections have limited upload limits and dedicated boxes, as well. Your upload is 24 * 3\. So, being generous, once again.. let re-compute our calculator.Let's say at least everyone has at least one other person on their map. We now sit at 240KB/s. Now, lets add in 2-3 mobs on a map… and quickly we reach a megabyte easily with no other traffic.ANd we have to process this all on a limited CPU.Now, if you're using UDP... and probably lidgren.. UDP is not reliable. So add more overhead. If you're using TCP, forget it. If you implement reliable UDP, your packets will be re-sent and often bloated.5000 players? Even on a dedicated box, good luck. Link to comment Share on other sites More sharing options...
JeffSventora Posted July 13, 2012 Author Share Posted July 13, 2012 I understand where you're coming from, by all means. But it's not as if I'm going to try and achieve this through one standalone application. I could break up the work of the server amongst a reasonable amount of machines or I could run them all locally on one machine. But I haven't even reached this stage yet, these are all problems I'll eventually have to deal with, pretty soon actually. The network will play a huge role and I'll plan responsibly and appropriately when that time comes. Link to comment Share on other sites More sharing options...
Jumbofile Posted July 13, 2012 Share Posted July 13, 2012 If there was 5000 players it would suck up bandwidth Link to comment Share on other sites More sharing options...
Vaughan Posted July 13, 2012 Share Posted July 13, 2012 My advice is then, don't worry about multi-threading. Ditch the monolithic nature. Build a multi-process server. Link to comment Share on other sites More sharing options...
Likestodraw Posted July 14, 2012 Share Posted July 14, 2012 This project looks really great, but could you please add some screenshots to the first post of the engine? Link to comment Share on other sites More sharing options...
JeffSventora Posted July 14, 2012 Author Share Posted July 14, 2012 Update:A video of the current build as well as information about FusionLib and a link to the source. Link to comment Share on other sites More sharing options...
Vince Posted July 14, 2012 Share Posted July 14, 2012 Beautiful code.A lot more organized than some others engine. Link to comment Share on other sites More sharing options...
JeffSventora Posted July 14, 2012 Author Share Posted July 14, 2012 Thank you! I take pride in readability, although sometimes I lack comments :P Link to comment Share on other sites More sharing options...
Vince Posted July 15, 2012 Share Posted July 15, 2012 Think to use region like that :```#region Constants //Constants is the name of the region#endregion```In the way to make the code easier to identify.**Edit :**For make a little a exemple replace :```    //////////////////////////////////////////////////    // Data Fields    //////////////////////////////////////////////////    private Texture2D texture;    private String name;```By this :```    #region Data Fields    private Texture2D texture;    private String name;    #endregion``` Link to comment Share on other sites More sharing options...
JeffSventora Posted July 15, 2012 Author Share Posted July 15, 2012 I'm not that big of a fan of regions, I like all of my functions collapsed, but I don't like when I can see the function signatures. Link to comment Share on other sites More sharing options...
JeffSventora Posted July 20, 2012 Author Share Posted July 20, 2012 **FusionLib UPDATE!**Added a 2D Light Engine to FusionLib powered by Krypton. This powerful addition will support lights of different intensities, colors and sizes. Along with that, convex hulls are also supported. A hull is some area within the map that blocks light, you can see in the screen shot below.LjvsGHXaGEA**BEFORE**[![](http://www.freemmorpgmaker.com/files/imagehost/pics/657066f9345aca65b1826342e661aa7f.png)](http://www.freemmorpgmaker.com/files/imagehost/#657066f9345aca65b1826342e661aa7f.png)**AFTER**[![](http://www.freemmorpgmaker.com/files/imagehost/pics/d56bbe41a69f8e51092e236422f6dc9d.PNG)](http://www.freemmorpgmaker.com/files/imagehost/#d56bbe41a69f8e51092e236422f6dc9d.PNG) Link to comment Share on other sites More sharing options...
DarkOne5890 Posted July 20, 2012 Share Posted July 20, 2012 u think i can work with yall and stuff im tryin to learn program and stuff i thnk i could help Link to comment Share on other sites More sharing options...
JeffSventora Posted July 20, 2012 Author Share Posted July 20, 2012 Well this is pretty much a solo project on my part however, when I release the source, I'll strongly urge people to look at the source and come up with their own enhancements and features. If you take a look at the FusionLib Source download in the main post you see how I do just about everything. Link to comment Share on other sites More sharing options...
JeffSventora Posted July 21, 2012 Author Share Posted July 21, 2012 **UPDATE**Working on the shell for the map editor. It is powered by XNA with Content support. I created a content directory viewer/manager which links the editor to your games content directory where the tile sets will be as well as the output from the tool. What do you think so far?[![](http://www.freemmorpgmaker.com/files/imagehost/pics/b6bf9f080818bda7d188b323a59e0d47.PNG)](http://www.freemmorpgmaker.com/files/imagehost/#b6bf9f080818bda7d188b323a59e0d47.PNG) Link to comment Share on other sites More sharing options...
Zetasis Posted July 21, 2012 Share Posted July 21, 2012 Wow, this engine seems to be coming along nicely. What exactly is so great about having the content directory thing? I'm not meaning to be a dick or anything I just don't understand is all. Link to comment Share on other sites More sharing options...
JeffSventora Posted July 21, 2012 Author Share Posted July 21, 2012 @Zetasis:> Wow, this engine seems to be coming along nicely. What exactly is so great about having the content directory thing? I'm not meaning to be a stick or anything I just don't understand is all.It's basically implemented to allow for more flexibility. For example, if hypothetically speaking, you were working on 10 different games using Mirage, if you wanted to modify a map from Game A you would have to run game A and modify it from the client with server running blah blah blah… With this tool, you can just change the content directory to ANY game's content directory made with Mirage.NET and instantly be working on that project.Not only that, but not having to look in your directory in explorer is cool. To be able to just do it in the tool is always good. Link to comment Share on other sites More sharing options...
JeffSventora Posted August 8, 2012 Author Share Posted August 8, 2012 UPDATEAdded fully functional lights to the map editor. Not much needs to be said, just look at the image! :)Also, don't mind the tile set, it's messed up, use your imagination.[![](http://www.freemmorpgmaker.com/files/imagehost/pics/0c6c712c16efc89bce26c0edf675adb0.PNG)](http://www.freemmorpgmaker.com/files/imagehost/#0c6c712c16efc89bce26c0edf675adb0.PNG) 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