I have been looking for a suitable answer and to this day have found nothing that completely answers the questions I have, hence me asking here.
What is networking?
Don't worry, I will go into greater detail. Let's use Scrolling Battles as an example. What happens when I click on login? Does the server store my login information and compare it against what I type in as my password? Does it use files to do so?
What happens when I click on "create an account"? Do I cause a server to generate a file and then store my credentials??
How does chatting work? I mean, I understand the most basic concept, a for loop that sends a message to everyone connected (we'll exclude channels for simplicity sake), but how does the server know that it's a chat and not, I don't know, a shutdown request or a chat containing a special command of some sort.
What allows me to hear others as they move around? I'm using SBYW again just because it's on my mind. In the game I am able to hear others and if I choose to, I can also hear their beacon. How does that work? Do the clients constantly send out a pulse which is only displayed when I turn on beacons? I know that pulse is not an exact word that fits, but it does get the point across.
How easy it is to intercept data between the server and the client? This might be a difficult one to answer, lol. I have the most basic knowledge of hacking, and I am aware of something called "man in the middle" attack, in which a third party, a hacker, sits on the same network and gets a glimpse of data as it's being sent between the server and the user. How easy could be accomplished when it comes to something like sbyw? Should it even be a concern?
With the question of hacking comes the question of encryption. What, if any, of the data that is being transmitted between the server and the client needs to be encrypted? Again, should encryption be a concern?
Different protocols?? I am aware that a lot of this will probably go over my head, but what is TCP, UDP, etc? Why were they created? Are they used for certain tasks, or it doesn't really matter.
Different networking methods? Again, probably a bit too advanced, but I'll ask anyway.. I heard that in BGT, a server application typically uses a switch statement and does different things depending on the case. On the contrary, some examples I found for python networking just have a function named "connectionLost" or "connectionFailed" in the client and nothing resembling a switch and case statement in the server script. Why? What changes? What is happening under the hood that makes the scripts completely different?
Server workload, I'm actually using a different game as an example this time, yea! Couple of months ago, i had a great idea. I said, "What if I tried to speedhack Swamp?" It was out of curiosity, I didn't mean to keep it permanent,, I just wanted to see if it would work. It didn't. More over, it was like the program didn't register that I had enabled speedhack at all. In something like Survive the Wild or Redspot the speedhack would work and then the game would promptly close, but in Swamp, it utterly failed to register, which makes me suspect that the walking time was controlled by the server. I am aware that my theory could be wrong, but it brings me to my next question: How much should the server do? What should it store, what should it control,, etc.
Tired of me yet? Don't worry, this should be the last question. What are some good libraries for networking in python? I have done some research, and a lot of people seem to like Twisted. Are there any good tutorials that you personally have found concerning the lib? Do you use something else?
I know that this was a lot, and I want to say thank you for reading. I am sorry if some of my facts in regards to hacking and or BGT networking might be slightly off, I know next to nothing about the former and very little about the ladder. That said, I hope that you can still help me with at least some of this mess.
Pages 1