Project Update #5 - Dec. 29

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

Project Update #5 - Dec. 29

Postby Chord » Tue Dec 29, 2015 10:32 pm

I dove head first in to the login server implementation this past week. I'm spending a lot of time getting the libraries and base code right as I know it's going to be heavily used.
After my work, I now have working packet encryption, decryption, and encryption setup: no small feat. I spent way more time in 2014 than I'd like to admit digging through the horrible ugly crypto + netcode. It paid off though and I now have a clean working crypto library.

But the crypto packets are literally just the beginning. There are over 250 more packet types that need reverse engineering.

Some technical tangents on the language and architecture:
  • The programming language I chose (Scala) for the server is amazing and expressive. It makes C++ look like assembly language, yet is still very fast. This is good for me and you as I now have to spend a whole lot less time working on the low-level things and I can get straight in to developing
  • Scala has one of the most amazing libraries known as Akka. Akka gives you something called the "actor model" in your code. This model allows for dead simple concurrency (many things happening at once), which means the server will be fast. A problem threaded servers have is scheduling work. Each actor can be scheduled individually which will let the server run hot
  • With the actor model, full server crashes are going to be non-existent. Essentially each player session will be given one Actor as a base, so if something crashes, it's likely just to kill that user's session, not the entire server's

What this means for you guys is that this server is going to be awesome and modern. It will be able to scale way beyond current planetside servers today.
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
XxXDEATHKILLXxX
Global Moderator
Posts: 112
Joined: Thu Oct 22, 2015 9:45 pm

Re: Project Update #5 - Dec. 29

Postby XxXDEATHKILLXxX » Tue Dec 29, 2015 10:40 pm

Woah, 250 different packet types? That's going to take a while. Good to hear that the project is getting further into development though. So now the only thing left to do is get the server up and running?
For land. For power. Forever.

TR: XxXDEATHKILLXxX | BR 21 CR 2
NC: DEATHKILLNC | BR 11 CR 0
VS: DEATHKILLVS | BR 9 CR 1
xRemedy
Posts: 2
Joined: Wed Dec 30, 2015 12:55 am

Re: Project Update #5 - Dec. 29

Postby xRemedy » Wed Dec 30, 2015 1:00 am

Are the current developers aware of whats going on? just curious because I would really love to see the original planetside back to population and flooded with people playing again, ps2 sucks big time, just a garbage mix of CoD and BF2 style of play.
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #5 - Dec. 29

Postby Chord » Wed Dec 30, 2015 2:30 am

XxXDEATHKILLXxX wrote:Woah, 250 different packet types? That's going to take a while. Good to hear that the project is getting further into development though. So now the only thing left to do is get the server up and running?


Yeah...https://github.com/psforever/GameLogger/blob/master/PSCap/PlanetSideMessage.cs
And those are just the names hah. I still need to figure out how each of them are encoded. I sure would love a tool to automatically extract out the encoders and decoders.

Essentially writing and getting the server up is the main goal, but it's really a metric ton of sub-goals. Probably should break the project up in to goals/milestones so people can keep track.
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
Chord
Site Admin
Posts: 162
Joined: Wed Oct 14, 2015 4:31 pm
Contact:

Re: Project Update #5 - Dec. 29

Postby Chord » Wed Dec 30, 2015 2:31 am

xRemedy wrote:Are the current developers aware of whats going on? just curious because I would really love to see the original planetside back to population and flooded with people playing again, ps2 sucks big time, just a garbage mix of CoD and BF2 style of play.


Not sure if they are or not. We've (at least I have) opted to keep things on the down low. Any current or past devs will probably wont be able to contribute due to legal issues. I could be wrong though!
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord
User avatar
XxXDEATHKILLXxX
Global Moderator
Posts: 112
Joined: Thu Oct 22, 2015 9:45 pm

Re: Project Update #5 - Dec. 29

Postby XxXDEATHKILLXxX » Wed Dec 30, 2015 11:59 am

Chord wrote:Essentially writing and getting the server up is the main goal, but it's really a metric ton of sub-goals. Probably should break the project up in to goals/milestones so people can keep track.


Yeah that would be great. Maybe just make a list of things that you are working on and acheived. Then you can repost the list with each update that you do.
For land. For power. Forever.

TR: XxXDEATHKILLXxX | BR 21 CR 2
NC: DEATHKILLNC | BR 11 CR 0
VS: DEATHKILLVS | BR 9 CR 1
User avatar
FateJH
Posts: 95
Joined: Mon Nov 02, 2015 8:37 am

Re: Project Update #5 - Dec. 29

Postby FateJH » Wed Dec 30, 2015 3:10 pm

I fixed-up a modification of the Game Logger that exchanges the ByteViewer for fields from which data can be manually copied as plain text. It's set up to look and work almost exactly like the current ByteViewer Control, that is, line numbers, hexadecimal, and converted characters, the latter two of which can be copied to the system clipboard separately. That should help with analyzing packet data. For the moment the it's still local but I'll throw it up on GitHub later as a 1.0.0.2.

(I would have finished sooner but I forgot to turn off the persistent *.vshost.exe process option in the beginning. I kept thinking the earlier builds I was debugging were the wrong ones or that my checkout was corrupted somehow.)
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 #5 - Dec. 29

Postby Chord » Wed Dec 30, 2015 3:47 pm

FateJH wrote:I fixed-up a modification of the Game Logger that exchanges the ByteViewer for fields from which data can be manually copied as plain text. It's set up to look and work almost exactly like the current ByteViewer Control, that is, line numbers, hexadecimal, and converted characters, the latter two of which can be copied to the system clipboard separately. That should help with analyzing packet data. For the moment the it's still local but I'll throw it up on GitHub later as a 1.0.0.2.

(I would have finished sooner but I forgot to turn off the persistent *.vshost.exe process option in the beginning. I kept thinking the earlier builds I was debugging were the wrong ones or that my checkout was corrupted somehow.)


Awesome! Make a pull request and I'll review it. I dont have access to a windows dev machine so it wont be until at least Jan 4th until I can test
[ PSForever admin and developer ]
PSForever Code | Capturing Packets | Community Discord

Return to “Project Updates”

Who is online

Users browsing this forum: No registered users and 1 guest