Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[Official] Eclipse.NET


JeffSventora
 Share

Recommended Posts

  • Replies 337
  • Created
  • Last Reply

Top Posters In This Topic

@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

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

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

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 bytes

This 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

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

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

**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

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

**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

@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

  • 3 weeks later...
UPDATE

Added 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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...