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!

Sheet for who want port source to 64 bit

Initiate Mage
Joined
Feb 2, 2015
Messages
77
Reaction score
53
Hello. i just try port source to 64 bit, then i found. it wasn't hard at all. after i finish it.
i decide to give a suggestion sheet for who want to port x64. hope this can help or guiding your guys.


port step
1. choose your server architecture code bettween x86 or x64. (for make server recived x86 and x64 client on same server). for newbie just go x86
2. clone client source platform Win32 to X64.
3. setting configuation for x64.
4. change x86 lib to x64 lib. if you have additional .lib, make sure that lib support x64.
5. make launcher option to select x86 / x64. ( you need 2 client exe now)
6. send option via login packet to server for knowing player platform.
7. fix some packet protocal that have pointer struct like ITEM_GENERAL / array(ITEM_XXX). pointer size on 64 bit will be additional 8 byte. so x64 client cant use same protocal without fix.
8. fix client x64 quest load on 64 bit. or just increase stack size.
9. fix client x64 effect trace.
10. fix some text culling (function that cut long text)
11. boom!! you did it.

benefit of 64 bit that your can feel (for Ace online)

- faster a bit for who ram is more than 4GB.
- can load hard texture/effect without memory issue.

ps. i use high-end computer so this is all i can feel about benefit.


Tips

- size_t on x64 is 8 byte
- take care when using sizeof( struct pointer ). it won't same size as x86
- take care file load like .tex, when it read by x64. make sure you use right way to cast it with x86 style.
- try follow step by step. fisrt you need to make client can running after change to x64
-

useful link

20 issues of porting C++ code to the 64-bit platform
-

Data Types and Sizes (compare x86 and x64)



DONT WAIT FOR WHO WILL RELEASE FINISH SOUCE TO YOU.
JUST LEARN C++ AND DO IT BY YOUSELF. YOU CAN DO IT BRO.
THIS IS 2021. STOP BE LEECHER.
 
Initiate Mage
Joined
Oct 21, 2020
Messages
24
Reaction score
16
thank you bro.
it'll help me a lot, LOVE xD
 
Joined
Apr 12, 2013
Messages
896
Reaction score
479
Yep, it's pretty retarded from masang to send pointers in packets, or even write them to the disk. Thing is most of them are only used serverside, so you can simply replace the 32bit pointers with a 32bit int and you will have the save packet size and don't need to fuddle around with different packets etc

Tbh. 32bit is at the moment enough for Ace. It becomes a requirement if you follow the Sky-Fighter footsteps and implement HD textures.
 
Back
Top