Forums › English Language Forums › General › Suggestions

Search

Minimal connection mode

5 replies [Last post]
Fri, 11/13/2015 - 15:04
Fangel's picture
Fangel

Inspired by the "Offline Spiral Knights" suggestion posted recently, I had an idea for a "minimal connection" mode.

This mode is optimized for people with weaker connections to the game server but still want to enjoy the game. It also opens the door for several other ways to "solve" lag, so to speak.

So what "minimal connection" mode, you are not offline, however your gameplay would be much smoother. For simplicity sake this mode would only be available to knights who play "solo", and it restricts the party.

The idea behind this is that all AI computations, locations, battle sprite movements, etc is stored locally on your computer. Level generation and loot drops, however, are still calculated by the server. This basically means that when you kill an enemy they will not instantly drop loot - instead when the server gets the "drop loot" command, it will calculate and drop the appropriate loot for the player. If you are disconnected from the server you can still play the game, however loot will not drop until you reconnect to the server. Making the server also generate the floors prior to you loading into them also prevents any foul play.

There would be several server checks in "minimal connection" mode, more or less to verify consistency between your client and the server, but in this way players can play Spiral Knights without having to have a business-grade internet connection, and allows those with great computer but awkward internet to play flawlessly.
If you get disconnected from the net in general after logging in, then you can play the game in a sort of "offline mode" - just no way to be on the auction house, no way to purchase energy, no way to talk to guildmates in-game, etc. When you are reconnected, then everything becomes available, and if you're in a level, then loot begins to spawn. If you never do get reconnected you can keep playing the game, but simply cannot get loot drops.

Three Rings could decide what you can and cannot do between these "connection" times - upgrading gear with fire crystals should be something that is calculated online so it's synced with the server, and all purchases with tokens, vendors, etc. cannot go through without server connection. This mode is essentially to allow you perfect play while having a bad internet connection, but still an internet connection in general.

Sat, 11/14/2015 - 14:10
#1
Fehzor's picture
Fehzor

The network security issues behind this are nearly impossible to surpass without completely destroying our current level of security, but perhaps this isn't the worst of things- it could tie into a new age of modding and level creation for Spiral Knights. People are always asking how we can bring back Spiral Knights and there it is. That said, I know I wouldn't want to be the one trying to code something like this.

Sat, 11/14/2015 - 14:56
#2
Fangel's picture
Fangel
Eh

The idea is for there to be server "checks" for all things in the game. The server would generate levels at the start of them, but allow us players to play the game lagless on our machines. If there are inconsistencies then the server would send a packet telling the machine what to change, and if the next server check comes up false it simply won't drop anything. Only things that would be on our machines would be:
- Spawning and controlling monster AI
- Weapon damage and firing
- Sprite attacks and movements
Everything else would be sent via the server. Loot drops, level generation(can't edit a treasure vault to have 100 impostocubes), player inventory, etc. This may increase loading times and level transitions, and would probably leave you a bit poorer due to potentially delayed loot drops, but at least you're able to fight without stuttering about and off the screen.

The idea isn't to be Spiral Knights offline, but instead for weak connections to still be able to enjoy the game for what it is. This would, however, give players the opportunity to get an offline version of Spiral Knights, to which they could probably modify to their own liking, but the server would have a lot of redundancy checks so that if a place modded 300k CE to their knight the server would check its records and then upload what it remembers to your machine.

This whole thing might not be feasible but it's at least a bit more feasible than a straight offline version.

Sat, 11/14/2015 - 15:46
#3
Fehzor's picture
Fehzor

You want the server to send all of the logical structures outside of level generation to your machine and have it do all of the work, which implies giving you all of the details and exact mechanics of how the game runs. Want to know how the weapon damage system works very exactly? How monster AI functions precisely? All of these things would need to be stored on the player's side, and would either become public domain or require some sort of complicated encryption to prevent players from cracking into it and having a ball, and even that's a questionable idea. On top of that, what happens if the player claims to have completed the level very quickly? What happens if they duplicate this result 200 times? What happens if their client is different from the official one and with some modding just so happens to let them teleport around whenever they feel like it?

You could put in checks for all of these truly awful things and make it work but that would be a lot of effort. On the coding side of things this was never meant to be- the client is only really meant to display stuff, send stuff, and receive input from your controllers. All of the server sided stuff is kept behind a magic curtain and you're asking them to just install whatever is back there into everyone's living room where they can poke and prod it for kicks.

If they're going to do anything close to this they'd need to remodel large portions of the game- way too much work so that a handful of players can play without lag. The only bright side is that they could, well, make some seriously glorious things in the process if they were to do this.. but we're talking about a pretty sweet monetary investment here.

Mon, 11/16/2015 - 14:22
#4
Deleted-Knight's picture
Deleted-Knight

I agree with Fehzor on this one. You can't simply take a game that is server-based and port it to the client. There would be massive security holes.
The whole idea with storing information on a server is to prevent players from accessing it. Usually anything that doesn't have to be stored on the server isn't, because it would unnecessarily increase the load on the server computers.

No amount of encryption can protect a client program from a dedicated hacker. This is because they have complete access to their computer. At some level, the computer must decrypt the code to run it. The hacker just needs to read the data at that level and work their way back up.

Tue, 11/17/2015 - 11:36
#5
Fangel's picture
Fangel
I suppose

Lot of it could be client-side, but it would have rewards be server generated. My idea was that gameplay would be client-side with the server deciding all loot and gear changes, meaning lagless gameplay but lagging loot drops. Monster spawn areas would be pre-determined by the level when generated by the server, and the server would fix inconsistencies such as armor, weapons, UVs, etc. If loot drops are pre-determined at the level start then it could check at that point.
Client-sided checks such as players skipping levels essentially is harder to counter, I will agree to that. However, your client is still reporting to the server between every level transition. There could be additional consistency checks to see how fast players are completing levels - however the only purpose to cheating past levels would be for arcade runs or trying to get specific loot faster, and you're passing up every bit of loot up until that point.

Security holes would be present I will say, but not on a per-account basis - moreso with game decryption. You're not getting the full game on your computer, however, just the monster AI, player movements, and damage events. What you could exploit would be your player, be it through OP gear or GM-esk movements. Hence, server checks for inconsistencies. These inconsistencies would also act as a sort of "red herring", where they are reported to the server. Get enough of them and the server might start requesting more data from you.

Overall however I'm not super involved with client to server talking things, so most of this suggestion is based on a bit of skewed logic, but I figured why not get that train of thought rolling instead of kicking the "offline mode" one around when it's already deflated.

Powered by Drupal, an open source content management system