Welcome, guest! Please login or register.

    * Shoutbox

    RefreshHistory
    • ragnoroker: Come join RuneGuild today! Join added automated PVP tournmanents with group stages! - RuneGuild is a New OSRS Server with PVM/Pk balance with a great economy and friendly players. Join now : [link]
      August 02, 2020, 11:07:56 PM
    • ragnoroker: Come join RuneGuild today! Join added automated PVP tournmanents with group stages! - RuneGuild is a New OSRS Server with PVM/Pk balance with a great economy and friendly players. Join now : [link]
      August 02, 2020, 11:07:53 PM
    • draholic: slayerpure idk why and cant remember but im banned there lol
      August 01, 2020, 12:57:47 PM
    • slayerpure: come check out new lit server! need players and staff. free m box to noobs        [link]      [link]
      July 30, 2020, 07:21:51 PM
    • JorgeFloyd: anal anus arrse arse ass-fudgeer asses assfudgeer assfukka asshole assholes asswhole a_s_s ballbag ballsack bastard beastial beastiality bellend bestial bestiality biatch bitch bitcher bitchers bitches bitchin bitching blowjob blowjobs boiolas bollock bollok boner boob boobies boobs booobs boooobs booooobs booooooobs breasts buceta bugger butthole buttmuch buttplug cawk chink cipa clit clitoris clits cnut penis penis-sucker penisface penishead penismunch penismuncher peniss penissuck penissucked penissucker penissucking penissucks penissuka penissukka cokmuncher coksucka coon cummer cumming cums cumshot cunilingus cunillingus cunnilingus runt runtlick runtlicker runtlicking runts cyalis cyberfuc cyberfudge cyberfudgeed cyberfudgeer cyberfudgeers cyberfudgeing dick dickhead dildo dildos dink dinks dirsa dlck dog-fudgeer doggin dogging donkeyribber doosh duche dyke ejaculate ejaculated ejaculates ejaculating ejaculatings ejaculation ejakulate fag fagging faggitt faggot faggs fagot fagots fags fanny fannyflaps fannyfudgeer fanyy fatass fcuk fcuker fcuking feck fecker felching fellate fellatio fingerfudge fingerfudgeed fingerfudgeer fingerfudgeers fingerfudgeing fingerfudges fistfudge fistfudgeed fistfudgeer fistfudgeers fistfudgeing fistfudgeings fistfudges flange fook fooker fudge fudgea fudgeed fudgeer fudgeers fudgehead fudgeheads fudgein fudgeing fudgeings fudgeingshitmotherfudgeer fudgeme fudges fudgewhit fudgewit fudgepacker fuk fuker fukker fukkin fuks fukwhit fukwit fux f_u_c_k gangbang gangbanged gangbangs gaylord gaysex goatse god-dam god-damned goddamn goddamned hardcoresex heshe hoar hoare hoer homo horniest horny hotsex jack-off jackoff jerk-off jism jiz jizm jizz kawk knob knobead knobed knobend knobhead knobjocky knobjokey kock kondum kondums kum kummer kumming kums kunilingus labia lmfao lust lusting masochist master-bate masterbate masterbation masterbations masturbate mo-fo mofo mothafudge mothafudgea mothafudgeas mothafudgeaz mothafudgeed mothafudgeer mothafudgeers mothafudgein mothafudgeing mothafudgeings mothafudges motherfudge motherfudgeed motherfudgeer motherfudgeers motherfudgein motherfudgeing motherfudgeings motherfudgeka motherfudges mutha muthafecker muthafudgeker mutherfudgeer nazi nigga niggah niggas niggaz African Africans nobhead nobjocky nobjokey numbnuts nutsack orgasim orgasims orgasm orgasms pawn pecker penis penisfudgeer phonesex phuck phuk phuked phuking phukked phukking phuks phuq pigfudgeer pimpis piss pissed pisser pissers pisses pissflaps pissin pissing pissoff poop prawns prawnso prawnsography prawnsos prick pricks pube pusse pussi pussies pussy pussys rectum retard rimjaw s.o.b. sadist schlong screwing scroat scrote scrotum semen sex sh!t shag shagger shaggin shagging shemale shi+ shit shitdick shite shited shitey shitfudge shitfull shithead shiting shitings shits shitted shitter shitters shitting shittings shitty skank slut sluts smegma smut snatch son-of-a-bitch spunk s_h_i_t teets teez testical testicle titfudge tits titt tittiefudgeer titties tittyfudge tittywank titwank tosser twat twathead twatty twunt twunter vagina viagra vulva wang wank wanker wanky whoar whore willies willy xrated xxx gay
      July 20, 2020, 06:43:34 PM
    • slayerpure: come check out a new server just got up yesterday!!!!     [link]
      July 20, 2020, 01:28:20 PM
    • slayerpure: join a new custom server! looking for staff and new players get loot boxes        [link]
      July 16, 2020, 09:04:22 PM
    • chaosgirl: Fix these forums, jesus. all the spam!!
      July 16, 2020, 04:43:19 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade LINK HERE -> [link]
      July 16, 2020, 02:34:19 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade LINK HERE -> [link]+
      July 16, 2020, 02:34:15 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade LINK HERE -> [link]+
      July 16, 2020, 02:34:10 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade LINK HERE -> [link]
      July 16, 2020, 02:34:04 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade [link]
      July 16, 2020, 02:33:33 AM
    • slayerpure: custom server with goku, vegeta, darth vader, rick and morty, joker, and world boss. join now here!!!  [link]
      July 11, 2020, 08:35:27 PM
    • dan v jad: PkOwnage! 2 Worlds! Come join us!  [link]  Join us on Discord! [link]  Download Mirrors: [link]
      July 11, 2020, 10:50:02 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade [link]
      July 09, 2020, 12:09:03 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade [link]
      July 09, 2020, 12:08:59 AM
    • Shady Aftermath: Skyfire317, The Only Server With Warding,Divination,Archaeology, AFK Auto Upgrade [link]
      July 09, 2020, 12:08:51 AM
    • demon dylan: anyone know moparscape call back link?
      July 08, 2020, 07:02:51 PM
    • ragnoroker: Brand new server! Less than 1 week old! Nightmare/Raids 1/2/Hydra/Pk Modes/Exp modes/ Unique  Join today - [link]
      July 04, 2020, 06:42:38 PM

    Author Topic: RSCGo: A new RSClassic server implementation written in Go 1.11+  (Read 736 times)

    0 Members and 1 Guest are viewing this topic.

    OfflineZach Knight

    • Member
    • **
    • Posts: 50
    • Thanks: +0/-0
      • View Profile
    Hello, Moparscape!

    I have, over the last month, begun development on a new project.  I became really interested in Go over the last few years, and had thought about doing a project like this one for a while.  Recently I was going to start improving an old RSCDaemon-based codebase I'd worked on in the past, and after hacking on it for a little while, decided that it would be better, and actually probably be a lot easier, and definitely more enjoyable, if I just implemented a brand new RSClassic server using Go instead.  So, about a month or so ago, I sat down and started working on it.  It's now at a state to where others would find it useful, and as such, I've decided to publicize it a little.  I know that this is where I used to discuss RSClassic development, and so I've decided to post it here first!

    Server: https://github.com/spkaeros/RSCGo
    Client: https://github.com/spkaeros/RSCGo-Client

    For those that have not heard of it, Go is a programming language designed by some developers at Google which implements CSP-style concurrency, and was designed with the goal of replacing C/C++ for a lot of Google's projects.  I'd say that they did a decent job, as I personally love using Go, and find it the most intuitive language I have ever learned.  Plus, it compiles to native code, which I think is great.

    RSCGo is being designed with performance, simplicity, and portability in mind.
    It should always be able to compile and run on the three major desktop operating systems: Linux, Windows, and Mac OS X.
    It should be able to handle large player loads on modest hardware.
    It should leverage modern technologies to provide a responsive user experience, and run efficiently on modern hardware, using minimal resources.

    For the database, I've decided on SQLite3, as I feel it is the best SQL for the job and enables easy and fast deployment, without needing any SQL server installed nor root access on the target machine.  I am debating on implementing a less-powerful data store for this project so that I may remove SQLite3 as a dependency, as go-sqlite3, the package I use for my SQLite3 driver, depends on CGo, which seriously impedes portability and increases binary size a great deal.  This may or may not happen in the future, we'll see.
    For configuration settings, I've decided to use TOML, as I feel like YAML is kind of overkill, and INI too simple.  Plus, I like the TOML API a lot better than the INI API in Go.
    For command-line flags parsing, I've opted to depend on a package from a github user: jessevdk/go-flags  It provides a very nice and easy to use API and much more complete parsing capabilities than the go standard flags package does.
    For password hashing, I've decided to use SHAKE256, using a configurable salt, with an output length of 64 bytes, and I use the golang.org/x/crypto API for this.  This is the highest security SHA3 algorithm available and while the security level may be a tad overkill, the performance hit from using this versus a less secure algorithm is negligible, and so I decided to go ahead and use it.
    That's all of the dependencies for this project.  Obviously to build it you'll need a working Go 1.11+ compiler.  I do test builds for RSCGo on 32 and 64bit Linux and Windows, and nothing more.  If anyone can help me to test against 32 or 64bit Darwin, that would be greatly appreciated.  I believe that it'll compile and work well on any target system with a working Go 1.11+ compiler with CGo support and accompanying C compiler, and a working SQLite3 C driver implementation.  If I ever manage to drop SQLite3 as a dependency, it should compile and run fine on any target supported by Go, which is a rather long and impressive list.

    Here is a screenshot of a slightly earlier revision in action, just after multiplayer walking support was finished:
    https://i.imgur.com/ZjzgBcE.png

    Anyways, I'm going to stop writing about it for now.
    If you have any questions, comments, or suggestions, please let me know.
    If you'd like to sponsor further development, or provide a server and domain for a publicly available server running RSCGo, please let me know.  I'm going to attempt to work on this until it's complete, but unless someone else can provide the means for it, I am not able to host it publicly at this time.
    Runescape Gambling

    OfflineEcko

    • Member
    • ****
    • Posts: 665
    • Thanks: +0/-0
      • View Profile
      • Autobots
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #1 on: September 18, 2019, 02:11:25 AM »
    I can give you a server

    OfflineZoso_

    • Member
    • **
    • Posts: 74
    • Thanks: +13/-10
      • View Profile
      • Nemo Tech
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #2 on: September 18, 2019, 06:03:05 PM »
    Good stuff Zach. Firstly, Go is actually a great language (though i do find myself using C/C++ nearly every project). Also: I'll just leave you this quote that I like regarding your recent acquisition of TOML:

    If you are writing code for other code to read, use YAML. If you are writing code that writes code for other code to read, use JSON. Finally, if you are writing code that transcompiles code into code that other code will read, rethink your life choices. - TA

    I'm glad that this project is developing nicely. Good work
    « Last Edit: September 18, 2019, 06:09:36 PM by Zoso_ »
    101010

    OfflineZach Knight

    • Member
    • **
    • Posts: 50
    • Thanks: +0/-0
      • View Profile
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #3 on: October 09, 2019, 09:15:51 AM »
    I can give you a server
    That would be extremely helpful.  It wouldn't need any significant resources to run this software efficiently, though multiple cores is ideal to take advantage of the concurrency features, obviously.  Upon launch, RAM usage stays at around 10-20MB right now, but I have more entity definitions to load into RAM still that I've yet to write the code for.
    Contact me, either via email [email protected] , discord: Alucard#6441 , or PM.  Thanks bud.
    Good stuff Zach. Firstly, Go is actually a great language (though i do find myself using C/C++ nearly every project). Also: I'll just leave you this quote that I like regarding your recent acquisition of TOML:

    If you are writing code for other code to read, use YAML. If you are writing code that writes code for other code to read, use JSON. Finally, if you are writing code that transcompiles code into code that other code will read, rethink your life choices. - TA

    I'm glad that this project is developing nicely. Good work
    Ha.  What an enjoyable anecdote.  Appreciate the good vibes, man.  I have started working a new construction job as I have bills that need to be taken care of once in a while, but I have some free time coming up now that rent is paid and etc, so I intend to resume development on this project very shortly.  My next major goal is a scripting language and VM environment for handling scene action triggers, possibly derived from examples of runescript syntax.

    OfflineLightone

    • Member
    • **
    • Posts: 54
    • Thanks: +0/-0
      • View Profile
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #4 on: January 07, 2020, 07:49:37 AM »
    Wow awesome, will be fun following this.

    Html5 support?

    Offlinerustyx

    • Member
    • **
    • Posts: 26
    • Thanks: +0/-0
      • View Profile
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #5 on: January 11, 2020, 03:33:01 AM »
    Hi

    OfflineZach Knight

    • Member
    • **
    • Posts: 50
    • Thanks: +0/-0
      • View Profile
    Re: RSCGo: A new RSClassic server implementation written in Go 1.11+
    « Reply #6 on: January 15, 2020, 02:00:06 PM »
    Wow awesome, will be fun following this.

    Html5 support?
    As a matter of fact, you can even give the HTML5 client (w/ full end-to-end TLS encrypted websocket connection) hooked up to RSCGo a shot right here:
    F2P: https://rscturmoil.com/client/
    P2P: https://rscturmoil.com/client/#members

     

    Copyright © 2017 MoparScape. All rights reserved.
    Powered by SMFPacks SEO Pro Mod |
    SimplePortal 2.3.5 © 2008-2012, SimplePortal