Jump to content
Sign in to follow this  
Tater Pie

SDF - Server Deployment Framework

Recommended Posts

This is an idea that has been circulating around the staff and developers of this community privately and I've decided to go public with it, the basic idea is this:

A framework where everything in the server is based on json scripts(i.e, quests, skills, actions, emotes, literally every aspect of the server) dynamically. This would allow anyone who doesn't know how to code to simply come to our site and within minutes buy and host their own unique server and purchase plugins for it to have the features they want, at a low price. Then our in forum currency could be used to trade mystery boxes and used as a reward in a wheel of fortune contest etc, then redeemed in any of the servers hosted by our service 

This basic concept has been attempted many times by developers over the years and actually the grounds have been layed many times by namely, graham, varek and a few other developers that wrote script based frameworks way ahead of their time, apollo is one of those but I feel like being written in java the leech rate is extremely high... If we write it in C# at least we'll be forcing these kids to learn something new 🙂

Fortunately me and @AzureCrux have already been working on a C# framework for the #317 revision and its been at a standstill for a few weeks but I've become ambitious and I'm going to spend the hour or two a night of free time i get working on this project and anybody who wants to join us in this project let me know. The framework isn't exactly set up for this project at the moment but it's still in it's early stages anyway and can easily be changed to suit our needs

 

Some of the features that this framework already has but may need to be improved upon: 

  • Good thread & task management concept
  • Decent connection reactor concept 
  • Great data structure concept (easy to understand, organized and minimal code)
  • Working 317 jaggrab & ondemand - this needs work and should be integrated into JSON like the rest of the server
  • 317 Player updating concept - doesnt work needs to be fixed and jsonized
  • 317 login protocol - needs to be JSONized
  • Functional RSA & ISAAC

 

Some pictures of shit we done so far(very little):

Spoiler

Confirmation of packets sending after login protocol:

14973bd880a3609cb4e32401052434e5.png

Loading the essentials via ondemand protocol

9132bfcc9c1526e33b983c6fbb415050.gif

The client continues to download extra files as it gets a chance, based on priority level:

982bc78087921244a322a45efa9c72f1.png

 

 

I will be working on this with @AzureCrux and updating this thread periodically, stay tuned!

  • Like 1

Share this post


Link to post
Share on other sites

To kind of elaborate on the goal a bit... 

The driving idea behind this is having modularity. If you look at other scenes like World of Warcraft, you'll see that their main emulators (MaNGOS, for example) has a small team that develops the core of the emulator, and the community takes that developed core and writes the game content in via scripts. We want that same deal, but we (being ambitious) want to take it a few steps further.

 

All of the expected things have to work... Cache loading and streaming, Encryption, Anti-bot features (added in newer client revisions). We aim to have the engine be compatible for all old-engine content. You can throw a cache from 194 and the server will automatically generate the CRCs for streaming the cache to clients that connect. Your revisions will be like a plugin, so if you want a 474 you provide a JSON file with the packet data for your desired revision.

 

Then from there, we want to have everything that you can put in-game be scriptable. Want a quest? you could just do something like 

 

{
	"Quests": {
		"Cookie the Monster": {
			1:{
				"Alter_Speech":{
					"NPC_ID":4332
					"Question":{
						"text":"Me love cookie! Do you know where I can find cookies?"
						"Speech_Anim":{"Target":0, "Anim": "Crazy_Rolly_Eyes"}#0 for NPC, 1 for Player
						"Option":{
							"text":{"Err... I might know a baker in Lumbridge?"
							#ETC, ETC
						}
					}
				}
			}
			2:{

			}
		}
	}
}

Of course, we haven't established a scripting language for something like this yet, but a quick tool can be put together to add and edit these files to generate your these script bits.

 

Once I'm settled into my new house, I'd like to treat this project as more of an open discussion. As we design, I would like to show you all a bit of how we determine what we want to do, identify any problems that will cause road blocks, and how we solved for those situations. I wish I have time to get into more detail but I'm moving through the weekend and will be tied up. If you have suggestions on how we present or discuss, please let us know.

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

By using our forums or services as a guest you agree to our Terms of Service: Terms of Use Privacy Policy: Privacy Policy and Guidelines