Usage and limitations of the Engines

Hello,

First of all let me say that I am really impressed by the fact that after all these years this engine still exists and gets better ( as one can see on the updates).

I wanted to do my own MMORPG like 3 years ago, yet due to my low knowledge of coding and other issues (money) I abandoned the idea, until recently. Now I want to do my MMORPG as a hobby, similar to someone that paints or does wood crafting. Nonetheless, I have the hope that if all goes right, it can became my full time dedication.

Researching the MMORPG indie dev ideas, I can summarise that most of them are built as it follows:

  • a server (write from scratch on Java, c# or c++)
  • a database ( SQL or noSQL)
  • and a client engine (unity, hero engine, or game maker)

The main reasons being that in that way, the game can host a massive number of players, the game cannot be hacked ( since it is built on the server) and there are not lag problems.

NOW

You state that these engines ( elipse and andur) are ORPG makers , therefore they are not optimal for an MMO type game?

And if yes, which one is more optimal (elipse or andur) and how many players can it host until it starts to crash, 50 , 100 , 1000, 10000?!

Also, it is the game built on the client or on the server? (I am asking this for security purposes)

Moreover, It is there a need for the use of a database?

And finally, how customisable the game will be? (as how dependent is on the engine structure and if there will be problems since vb6 has stopped updating) .

I know that these might be a lot of questions, yet, I truly appreciate your time and I am making then since I was unable to find a limitations post of the engines on the forum.

Again, thank you very much for your time and dedication to this project which can make many dreams true.

Hi Bestboy,
The main limitation should usually be the player count. These engines are optimal for OPRG makers but running 1000s of players or more may be an issue unless we can optimize it a lot more. And the engines send data to the server so it should be secured. There is no need for a database and the game engines will let you customize most of the features but some features like the GUI etc have to be edited through VBt. I hope these answer your questions. As for a strong base ER should be a good engine, in terms of features, AE should be a good engine.

First off, welcome back.

The main reason (that I know of) for indie devs using client engines with a database is they’re meant to be single player and that’s the best way you can make them be multiplayer.

Having a server handle everything means the server has more to do and can’t handle as many player. Sure it’s harder to hack, but less people is a problem.

Now for lag…
You can have a client handle a lot of info, which means the server does less and there will be less server lag (the server doing something and has to put your request on hold), but that one client handling a lot suffers a lot from client lag.
Or you can have the server handle everything which means there’s quite a bit more server lag, but you don’t have one player suffering unplayable lag.


Ok, now to get into your questions about these engines.

What do you mean by MMO? I’ve seen some engines handle 200 players, others die after 30 players.

ER (Eclipse Renewal) and AE (Andur Engine) are pretty similar with the number of players they can handle. After ER 1.9 is released (the next version), ER should be able to handle a lot more players (no one has stress tested ER’s player count, so I don’t know how much it can handle, I would say double how many it can currently handle).

The engine is built on the client and server. You can speed hack, but that’s about it. Players can’t spawn anything in or duplicate items (that we know of).

The server hosts all the files in a data folder (\server\data\), there isn’t a SQL database or anything
of that sort.

If you can get a copy of VB6, then you can customize whatever you’d like. AE is also working on adding a script system, and ER is working on adding options for features. These mean you can use the same engine as someone else and have different game features.
You can also hire someone, or ask around for a programmer to help you for free. If you have a decent amount of work on done on your game, then programmers are more likely to feel like helping you.


The biggest limitation you will find are the max counts. The server only has 2GB of memory and loads everything at startup (this is what ER 1.9 is fixing). ER’s maps use more memory because of the NPCs than any other engine, so you can’t have much more than 100 maps in ER 1.7 to 1.8.X.

Making a large game currently isn’t always possible if you want a lot of maps, items, NPCs, etc… A lot of content means a lot for the server to keep loaded. The server also loops through all this data even if it’s blank (so if you have 10 maps, the server still loops through all 100 maps).

ER is working on fixing this to only use what’s needed, AE might change to be based off ER 1.9 after this, Solid’s still thinking about it. Keep in mind, loading and unloading is slower than keeping everything loaded, so for smaller games, everything loaded is fine; but for MMOs, loading and unloading is better.

@mohenjo-daro @SolidLink

I know that you busy people and that the many questions that I am making really take part of you time. For that I am truly thankful for you quick response.

When you said “speed hack” what are you exactly referring to? (players speed of moving around the map, connectivity speed, or … ?) Also, by 2GB max, you are saying that the game cannot be “bigger” in size than 2GB, right? Can that size be increased, somehow?

I am asking all this in order to understand what that engine is capable of , and what not.

Moreover, in order to better understand each other, let me answer, what I am referring to when I say MMORPG. I am knowledgeable that I cannot make a real MMO by myself (understanding that the first M, stands for Massive). Therefore, what I am looking forward to is in fact a functional MORPG. I don’t know myself how many players will attract the game, but it will be annoying if the whole thing crashes on 50 to 100 players or so. This being said, if everything goes well I would like to be able to scale it (with a team probably) to a massive MORPG (ergo, MMORPG). Is that possible!?

Finally, under my understudying, EE and AR are based on the VB6 language, right? Therefore, managing VB6, the game is fully customizable. But does it mean that knowing VB6 will also enable (me or some pro) to optimize/change the engines for a better performance and/or fixing bugs and scaling up? Or the engines are closed to modifications?

Again, thank you very much for your responses.

Regards.

@bestboy

By speek hacks, I mean players using CheatEngine (or other packet modifiers) to send a ton of a single packet to run, attack, etc. really fast.


2GB is the max memory/ram VB6 can use. This might sound really bad, but it’s not when setup properly. Currently EO engines are setup to load everything at runtime and keep it all loaded. The pros of this is it’s fast, the cons are that it uses a lot of memory.

Time for an example of why this is bad:
ER uses a different/unique NPC system that has 30 NPC files per map. These are small files, but they add up in size. PinkAngel tried changing the map maps (I think it was to 500 or 1,000) and that crashed the server (because 30,000 files add up).

For a small game, the max values are fine, but you should keep files that aren’t being used loaded, it’s a waste of memory. There also is the problem that the server has to loop through each loaded map every server loop (so you have 1 player on and the server still loops through 100 maps). Even if you have a check to only do anything for a map with a player, that’s 100 if statements.

As I said in the previous post, I’m trying to convert ER to only load the files that are needed, and unload any that aren’t. This means the memory used by the server is a lot lower. I’m also splitting files up, so maps have 3 parts (graphical, blocks, and everything else). So I can load the graphical and blocks of a map and send the graphics to a player, then I can use the blocks to move NPCs on that map.

The biggest upside to the loading an unloading is that your game can have 20GB of content (Maps, items, spells, NPCs, etc.) and still run with the 2GB or ram. The only time the server will run out of ram and crash is if there are a lot of players online requiring the server to load more files than it can handle (I’m guessing this would be around 500-1,000 players).


If by EE you mean EverEmber, yes, it’s based off EO 2.

All engines on the site are free and open source. You can add or remove whatever features you want if you know VB6, or hire someone to do it. You can customize the engine as much as you want.

Also regarding speedhacks, AE’s client has a speedhack fix on it, so it will log you out (this was also on the devsuite but removed for ease) Not sure if ER will have a speedhack prevention, but I think it probably will in the future

Thank you @mohenjo-daro , you made the picture a lot clearer to me.