Project Update #9 - Login Server Progress

The latest sitrep on PSForever.
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Project Update #9 - Login Server Progress

Postby Chord » Fri Mar 04, 2016 5:37 pm

Big milestone with the login server. I've worked hard to decode the packets required to get the PlanetSide client to the login screen. I can finally do this:

Image

There was a lot of technical junk in the way that needed to be done before this could happen. Here are some of the things that needed to be completed before this could be done:

  • PlanetSide's cryptographic packets needed to be reverse engineered and the cryptographic setup needed to be figured out. This took me nearly a year of on and off work before PSForever
  • A basic login server code base needed to be created
  • Packets related to logging in needed to be reverse engineered and rewritten in the login server. This was painstaking as PlanetSide's packet format is so compact it's hard to understand
  • Plenty of other reverse engineering to get a real understanding of what the PlanetSide code base was doing (thanks IDA pro)

Currently as it stands, the login server is around 2300 lines of dense Scala code. I'm feeling quite proud of the progress so far! I'm learning a lot along the way and I haven't even gotten to the game server.

With this, here are some of the things that are my list of things to do

  • Login Server
    • Fix the crypto library issue that is preventing development on Windows (pscrypto.dll)
    • Add more functionality to the login server so that it will be able to manage the connection to clients (currently clients auto disconnect after some time due to their not being any keep alives)
    • Design an effective logging scheme that will scale to a bigger server (doing this later will be hard)
    • Create a way to store user accounts in a database and pick a DB solution (MySQL, PostgreSQL, CouchDB, MongoDB, etc.)
  • GameLogger, GCAPy
    • Write more tools to process the GCAP files in order to figure out the packets necessary for logging in completely
    • Find a list of packets required for connecting the planetside game server
  • GameLauncher
    • Make this prettier and have a way to select between live PlanetSide servers and PSForever servers
  • Game Server
    • Start removing common components from the LoginServer to a shared code repository
    • Figure out how to get to the character creation screen (what packets are required)
    • Make a high level diagram of what I believe will be involved in the game server
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
docdic
Posts: 75
Joined: Mon Oct 19, 2015 10:13 pm

Re: Project Update #9 - Login Server Progress

Postby docdic » Fri Mar 04, 2016 7:31 pm

So how will we log into this server.
Will we have to make new?
Image
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #9 - Login Server Progress

Postby Chord » Fri Mar 04, 2016 11:27 pm

docdic wrote:So how will we log into this server.
Will we have to make new?


I'll make a launcher for people to be able to login to my server or live. My server will not have any of your characters without a character transfer tool
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
docdic
Posts: 75
Joined: Mon Oct 19, 2015 10:13 pm

Re: Project Update #9 - Login Server Progress

Postby docdic » Sat Mar 05, 2016 1:15 pm

Chord wrote:I'll make a launcher for people to be able to login to my server or live. My server will not have any of your characters without a character transfer tool

Well you already have the launcher.
But will character transfer tool exist later on?
Image
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #9 - Login Server Progress

Postby Chord » Sat Mar 05, 2016 1:40 pm

docdic wrote:
Chord wrote:I'll make a launcher for people to be able to login to my server or live. My server will not have any of your characters without a character transfer tool

Well you already have the launcher.
But will character transfer tool exist later on?

I'd like to have one made. Once I can get to the character selection screen for planetside, I believe I can get information on all of the characters for an account.
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
docdic
Posts: 75
Joined: Mon Oct 19, 2015 10:13 pm

Re: Project Update #9 - Login Server Progress

Postby docdic » Sat Mar 05, 2016 5:33 pm

Also what is a rough estimate for the game server to be in a state that will allow us to play on it?
Image
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #9 - Login Server Progress

Postby Chord » Sun Mar 06, 2016 1:34 pm

docdic wrote:Also what is a rough estimate for the game server to be in a state that will allow us to play on it?

This is hard to say even with a rough estimate. It really depends on how much time I put in to it.
I think the first goal will be character creation. I can probably get there within 4 months. It won't be pretty though.
The reason it's such slow progress is because I'm the only one developing and there is a lot of things that just need to be done, but aren't visible as progress.
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
FateJH
Posts: 95
Joined: Mon Nov 02, 2015 8:37 am

Re: Project Update #9 - Login Server Progress

Postby FateJH » Sun Mar 06, 2016 8:47 pm

Chord wrote:This is hard to say even with a rough estimate. It really depends on how much time I put in to it.

The rest of us are at your mercy here.

To be fair, making a distinction between "login server" and "game server" might be important to docdic. The former I can think of being a long term account authentication and storage system and is very devoted to persisting a user database. The latter is a transient state machine that emulates the loaded user data from the login server in the game world then, mostly, does its own thing according to the logic of the game.
I think the first goal will be character creation. I can probably get there within 4 months. It won't be pretty though.

Is "as long as it can read the client's packets and can spit out packets the client recognizes" too simplistic of a perspective in regards to the uncompromising components? We probably should get multiple people on packet analysis. The first hurdle might be easier to jump if we can figure out how little the client actually needs or wants before it's willing to do even a little work that sorta looks like a game.
The reason it's such slow progress is because I'm the only one developing and there is a lot of things that just need to be done, but aren't visible as progress.

It feels like we need an Atlassian tool or a product owner to glare at us from time to time.
VS: FateJH, BR 21 CR 0 TR: FJH, BR 18 CR 1 NC: FateJHNC, BR 14 CR 0
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #9 - Login Server Progress

Postby Chord » Sun Mar 06, 2016 9:29 pm

FateJH wrote:
Chord wrote:This is hard to say even with a rough estimate. It really depends on how much time I put in to it.

The rest of us are at your mercy here.

To be fair, making a distinction between "login server" and "game server" might be important to docdic. The former I can think of being a long term account authentication and storage system and is very devoted to persisting a user database. The latter is a transient state machine that emulates the loaded user data from the login server in the game world then, mostly, does its own thing according to the logic of the game.
I think the first goal will be character creation. I can probably get there within 4 months. It won't be pretty though.

Is "as long as it can read the client's packets and can spit out packets the client recognizes" too simplistic of a perspective in regards to the uncompromising components? We probably should get multiple people on packet analysis. The first hurdle might be easier to jump if we can figure out how little the client actually needs or wants before it's willing to do even a little work that sorta looks like a game.
The reason it's such slow progress is because I'm the only one developing and there is a lot of things that just need to be done, but aren't visible as progress.

It feels like we need an Atlassian tool or a product owner to glare at us from time to time.

Reading and writing packets is just boring boilerplate that needs to get done. If my server could read and write all packets already, all that would be left would be making the actual gameplay server. That would be a dream.

My current goal is to get the client to do what I want with the least amount of effort (packets). When you connect to the game server, you receive a bunch of update packets. These may not even be needed to boot in to the game. I do know that the server sends an ObjectCreate message for each character on the character creation screen.

I think a task tracker is starting to be needed. GitHub issues should work well for the time being.
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
Captain1nsaneo-J
Posts: 16
Joined: Thu Jan 14, 2016 5:57 pm

Re: Project Update #9 - Login Server Progress

Postby Captain1nsaneo-J » Mon Mar 07, 2016 8:58 am

Can I just say that is really cool?

Return to “Project Updates”

Who is online

Users browsing this forum: No registered users and 1 guest