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!

[C++] Journey Client v83+

Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
JourneyClient is a custom made-from-scratch game client. It is currently compatible with version 83 servers and it uses v83 game files, except for the UI file which has to be v154+.

Current features:
- Login procedure and Character creation
- Map rendering
- Spawning of Npcs, Mobs, Pets and other Players
- Different UIs, such as Inventories and Npc Shops
- Basic Combat, Regular Attacks and some Skills
- Seeing other players, their movements and their attacks


Screenshots:
SYJourney - [C++] Journey Client v83+ - RaGEZONE Forums


SYJourney - [C++] Journey Client v83+ - RaGEZONE Forums



SYJourney - [C++] Journey Client v83+ - RaGEZONE Forums



Video:



Acknowledgements:
The client uses the nolifenx library and .nx format by retep998.

Most recent build:


Github:
How to compile:
Initial project:
1. Make a new empty project in Visual Studio and add all files.
2. In your project settings, make sure you target 64-bit. Also make sure that your working directory is set to the same directory which contains the .nx files.

Dependencies:
Assuming you use Visual Studio:
1. Go through the links on the github page and download all files.
2. To add them to the project, you will need the .h files and the .lib files for each dependency. I'd recommend you make two new folders in your project dir, one for includes and one for libs.
3. Go to your project settings, first to c/c++ -> additional include directories and add your new folder.
4. Got to project settings -> linker -> additional library directories and add your new folder.
5. Now for each dependency what you have to do is different based on how they distribute their projects. In general, header files are always in the download but .libs often are not. I would check if there is a .lib already. If there is no lib, you need to compile the project yourself.
6. For this you should make an empty project and add all the files belonging to the library. Then, go to the project settings, and change the target platform to 64-bit. Next, change the configuration from producing an .exe to producing a .lib. You should do this once for debug mode and once for release mode. Call the .lib made from debug "something"-d and the release one "something". Then add the libs in your library folder.
One dependency that is different is bass. It comes with a dynamic library so you can just put the .dll in your working directory.
For NoLifeNx, make sure you also add lz4 to your project before compiling.
7. Now list all the .libs in project settings -> linker -> input. It should look like this (debug):
bass.lib
NoLifeNx-d.lib
glew32.lib
glfw3.lib
opengl32.lib
freetype263d.lib
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Nov 26, 2012
Messages
156
Reaction score
35
Good luck with this too! It's nice to see you working on a couple things and putting in a lot of effort c:
All the best
 
Newbie Spellweaver
Joined
Jun 29, 2015
Messages
21
Reaction score
1
Good job Journery. Keep your efforts on it!
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Good luck with this. Would love to see more than just this - map rendering and such. Still amazing though!

I already have map rendering technically, the login screen is just a map so I can use the same function for loading it to load any map:

mnpoiSi - [C++] Journey Client v83+ - RaGEZONE Forums


Npcs and such will have to wait until i get to handling the object placement packet.
 

Attachments

You must be registered for see attachments list
Custom Title Activated
Loyal Member
Joined
Mar 14, 2010
Messages
5,363
Reaction score
1,343
Looks very neat, since it's going to be on github in the future, will customization of adding newer stuff be put into thought as it's being made? (Hope I didn't write it confusingly)
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Looks very neat, since it's going to be on github in the future, will customization of adding newer stuff be put into thought as it's being made? (Hope I didn't write it confusingly)
If your question is wether the new features for my server will be present on github or not, the answer is yes.
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
I mean, will the structure of the client code be made with the intention for easier addons of customization? Hope it's more clear, if not :(

It's clear now, but I'm still not sure how to answer. Designing the code in a way that would make customization hard doesn't really make sense in the first place, because for the most part maplestory is designed as a game that you can easily add things to. It's alot harder of course if you only have the server and not the client, but having both should be enough to add anything you want.
I'm trying to make the code as general as possible of course so that when I have to add more things it will be easier. And then there's really not alot of difference between adding some feature nexon made or something you make up yourself.
 
Experienced Elementalist
Joined
Nov 21, 2008
Messages
297
Reaction score
38
:hmmmm: most of the 'from scratch' clients are now just abandoned before this level of effort is put in, yes, not many of them even get around to map rendering (although there are exceptions to this, ex. nolifestory), but just don't be surprised when nobody on /f425/ has faith in your emulator since the vast majority of scratched projects just end up as login page simulators. Don't get me wrong, I still really enjoy seeing these threads and expect this to be different.

Just don't give in. Did you forget? Your drill is the drill that will pierce the heavens!
smdkwOP - [C++] Journey Client v83+ - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
Update: You can now get in game with your selected char.
VvLNooe - [C++] Journey Client v83+ - RaGEZONE Forums


I don't have physics yet, that's why my char is floating in the air. But on the positive side, all packets neccessary for getting in game are handled correctly. This means that the following info is already there:
- Character stats and look
- All inventories, equip stats etc.
- All skills, questprogress, completed quests, monsterbook info
- Mob, npc and reactor spawns

So altough this screenshot doesn't differ much from the ludibirium map I posted, this is already a huge step forward.
 

Attachments

You must be registered for see attachments list
Elite Diviner
Joined
Apr 7, 2008
Messages
494
Reaction score
66
Interesting a private client for a private server anyway given that you are able to code so well why not rewrite a source from scratch for server wise
 
Custom Title Activated
Loyal Member
Joined
Nov 14, 2008
Messages
1,025
Reaction score
641
good work man, but you will give up halfway through :blush:
 
Elite Diviner
Joined
Mar 24, 2015
Messages
426
Reaction score
416
good work man, but you will give up halfway through :blush:

It all depends on what someone considers complete. I will not add all features of v83 simply because there are some that I don't care for like MTS. But other than that there is really no reason to give up, most things are handled entirely by the server or just require to read from the wz files. The client is really just a toolbox to combine both into something that a player can interact with.
 
Skilled Illusionist
Joined
Aug 17, 2011
Messages
360
Reaction score
88
It all depends on what someone considers complete. I will not add all features of v83 simply because there are some that I don't care for like MTS. But other than that there is really no reason to give up, most things are handled entirely by the server or just require to read from the wz files. The client is really just a toolbox to combine both into something that a player can interact with.

(Excuse my ignorance)
With a custom client wouldn't that remove the need for OP'S (as in we could completely change the op's to whatever we want such as 0x0A to 1x338)?
 
Back
Top