• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Hesprides

kupi

New Member
Joined
Oct 3, 2007
Messages
8
Reaction score
0
Location
Catalonia
¡Hi all!
I'm new in this forum, yet not in Open Tibia. I'm a C programmer with some little experience, and some friends invited me to create a new opentibia-compatible servers base, I think this project is not going to be liked here, but I want to try.

This is not a replacement for Open Tibia, those servers are fine enough in most times. But, the idea is to create an UNIX specialized Tibia Servers for "more professional use", all-build-in-one servers.

Well, I'm going to explain it completely, so if you thing it can interest you or you think this is the competence of Open Tibia and you want to ban me and burn my house, please take a glass of any drink you like and read :). We are now two developers and we use Git RCS, you can check the source code made here.

The server will be moduled in some processes specialized in concrete tasks. Those processes are communicated by two ways. One, and the most important, is the shared memory. The shared memory will be the entity container, so it is going to have all the players, items, monsters and NPCs. I structured it with 84KB by default size, but it can be changed in execution time before initialize all processes. The second way are the UNIX sockets, this type of communication is going only to be used for other-processes outputs, like the check of the game time from the web server. You can view a simple mind map of the processes:
ej7jgj.png


This structure is made for security, when any process die by a bug, the main process recall it. All the information before the error will be logged, also the function which kicked the process ass and the entity which called it. Because memory is shared, you can't lost it. The only way to lose anything is a bug of all processes at the time. Which is almost impossible.

Ehh... what more... yes!
With the permission of the Open Tibia team and it's users, I want to use the OTBM map format for making maps compatible, but not scripts. Scripts are going to be written in a Lisp-specialized dialect for the game. Well, why Lisp? It's the fastest (if made well, of course) scripting language, because it's syntax it's simpler as possible for the machine. More simpler than Lua, yes. But if you want, I can add a Lua library also for making it completely compatible with Open Tibia.

The web process will do the [X/L]AMPP works, the preprocessor language will be the same as the script ones. Well, you can have a question about why integrating the web server to the server. The idea is to share in real time the web contents with the help of AJAX, so the results of the game, can be seen in the web when they really occurs. Some examples:

Imagine your best friend can't play Tibia for any case, but you want to chat with him without disconnecting Tibia and without connecting any client like MSN (for the lagg). You can create a channel to his player which is not connected, then, he enters to his account and receive a message which says you want to speak with him. Then, he accepts and you can speak with him in real time!!

This also can work for buying items from web, teleporting players etc... the limit is your imagination.

Well, what more... oh. It's going to be written in C, by the way, you can use all the code for Open Tibia so I think it's fine. Why I don't use C++? Well, I like it, but I subjective prefer C and can be used with C++ too. Also, why UNIX? Well, UNIX is for me the best Operating System for home use and for professional use. BSD, Linux and friends are fine enough for Tibia Servers.

I think I finished, but I have the feeling I forget anything. However, any questions are welcome.

Thanks for reading, be welcome of sending me also private messages.
 
I don't like Lisp much. If you want speed you can just create scripts in C. And hopefully me and elf can get SQL maps in place instead of OTBM. Another things is that I don't see why you should develop everything into one software. Your putting too much over your head in my opinion, and this will most likely fail unless you can get a much larger team into this.
 
Back
Top