Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Idea

Newbie Spellweaver
Joined
Aug 4, 2016
Messages
79
Reaction score
25
Hello,

I come to you for a request like the tutorials that StingerOne has made which are in my opinion perfect and

understandable. I would like to suggest that you make a dictionary post, explaining what certain words refer to or

what they are used for. For example I read opcode in some post but I'm not sure I understood what it really was.

We could complete it thanks to the comments.

(sorry if I posted in the wrong place I hesitated)
 
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
Firstly, thanks for the kind words :)

So an opcode by Wikipedia's definition is a number, or set of numbers that specify the instruction to be run on a computer system. Typically this is finished with a system interrupt to signal the kernel to invoke the system call, it's all system programming related theory which you don't really need to worry about for aion emulation.

Opcode:
Interrupt:
Syscall:

.. those are for reading if you find systems programming interesting.

In the context of Aion Online Emulation, an opcode is essentially the identifier within the packets we send from the server or receive from the client that tell us what is in the packet so we know what to do with it.

In the login server packets, it's the third byte as a uint16.
In the game server packets, it's the third and fourth bytes as a uint16.

As an example, when the client first connects to the login server, it will require a packet be sent to it. Within the packet will be all of the new client specific keys generated by the server, along with the opcode of the packet, which will be 0x00 or simply 0, this is known as the SM_INIT packet.

I'd call it a packet identifier, but the original devs call it an opcode. It tells the server what it has received, not necessarily what instruction it needs to invoke from the kernel.

I guess it depends how you've setup your source code as well.

In my core I use the "opcode" to determine which packet I have received and if I have a function available to process the packet, this helps me add functions as I go, I think it works really well with the send and receive/push and pull design of Aion Online's net code.

Hope this helps clear up some confusion.
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Aug 4, 2016
Messages
79
Reaction score
25
Thank you very much, you are always as precise and clear, a real pleasure to read each time your answers. I note all this in my notebook, I'm starting to have a lot of interest in knowing how it all works.



I'm going to sound like an idiot but StingerOne, could you explain to me in detail the difference between a Retail emulator and a non-retail one?
 
Upvote 0
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
Thank you very much, you are always as precise and clear, a real pleasure to read each time your answers. I note all this in my notebook, I'm starting to have a lot of interest in knowing how it all works.



I'm going to sound like an idiot but StingerOne, could you explain to me in detail the difference between a Retail emulator and a non-retail one?

Not sure, I'm going to guess and say retail is an attempt at creating a 1:1 retail experience, whereas most emulators are non retail because they're not feature complete and setup like retail servers.

Sorry, I don't keep up with the trends, in my mind there is no such thing as a retail emulator unless you're the physical embodiment of the NCsoft gods themselves and have the server software for each version of the game.

In that case, why bother emulating?
 
Upvote 0
Newbie Spellweaver
Joined
Aug 4, 2016
Messages
79
Reaction score
25
hahaha thank you for your answer, I wanted a year to buy someone a server with source then I decided to rather take the time and plan to learn how to create it. I think I was right because 300 euros for that hurts me and I prefer to drink beer with pineapple syrup with that money xD.
 
Upvote 0
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
hahaha thank you for your answer, I wanted a year to buy someone a server with source then I decided to rather take the time and plan to learn how to create it. I think I was right because 300 euros for that hurts me and I prefer to drink beer with pineapple syrup with that money xD.

300 euro isn't worth it. Learning to program is invaluable in the technology world.

Without it, it's difficult to modify the core components. Hence why there is a list of 1-click servers.
 
Last edited:
Upvote 0
Newbie Spellweaver
Joined
Nov 30, 2013
Messages
6
Reaction score
0
Hello,

Sorry but just for tell you Yazoo your private message box is full.
So I can't response you :p

Sorry and best regards.
 
Upvote 0
Back
Top