Skip to content

Server Philosophy

JakeSamiRulz edited this page Feb 2, 2015 · 2 revisions

These are extensive brainstorm notes about the server system in general. Unlike all other documents, this one is completely opinionated and based off of my prior biases and learning. So, a lot of these ideas may not be correct, or even may change. It is placed here to show the general direction that the server is headed toward and possibly what limitations the server will have. I invite all to read with that in mind.

Introduction

Apparently, I was a bit naive the first time when implementing the server. Designing the server around the game itself sounds great on paper, but it is horrifying in practice. You essentially code yourself right into a box, unable to expand the system if new additions need to be made. So to prevent this issue, the server will need to be redone, with a few things in mind to make it expandable.

It starts with a user

The most important aspect of the server is the ability to log in and out, but the second most important aspect of the server is file interactivity. The good news is that Perl is a great language at handling both, the bad news is that it is completely horrible at dealing with folder trees. In order to fix this issue and to make the server a bit more manageable, I will have to code with these weaknesses in mind.

Server Feature - Time stamps

Everything must have a time stamp, yes. But even more importantly, there has to be a system in place that takes data that passes a threshold and gets rid of it. This will go for users, messages, etc.

Server Feature - User Limits

This is a new requirement, I will have limits on exactly how much users are allowed in a section of the lobby. This will be on the beginning of the user page and state the limit of how much is allowed. If the limit is reached, no more users can be added to the page.

Server Feature - Type of Accounts

This will basically hold the type of user, and will also be used in conjunction with the limits. As well as global limits, there will also be limits for the type of users allowed. Having a system for this in place already will be helpful.

Server Feature - Folder and File creation

There will be a list of files not allowed, but the ability for a user to create their own file types within the folder within reason isn't a bad idea. Also, being able to create their own folders will make it easier for the administrators to add in new content. All in all, I should make ways for us to make new content folders within the server database easier for less hassle in the long run.

Server Feature - Basic Lobby

There will be a spot in the CWT server which will keep track of active on online players of the system alongside the chat room which will hopefully make it easier for people to meet up online and get games started.

Server Feature - Basic Chat

There will be a chat room for users to converse with each other. Features of this chat room will be limited, but it will at least be able to recognize user names and provide limited private chat rooms.

Server Game Feature - Game Save

The most important feature of the server and a must have, the ability to save games into the server and load games out of the server.

Server Game Feature - User Handling

The server will control how turns are handled within the server walls. It will act as a gate to figure out whose turn it is, and which player is able to place in commands to a game at what time.

Server Game Feature - Map Containment

The server must have the ability, at the very least, to be able to temporarily hold a map so it can be transferred to other players. The plan is for that map to be held within the server somewhere indefinitely, but this may be scraped because server space is limited and many games could be too much for the server to handle.

Server Game Feature - Game Replay

The server will have a designated spot in where replays can be saved and downloaded from the server. Due to the heavy nature of storing many games, there will be a limit on exactly how many games can be stored so it is important users download the replays off the server as fast as possible.

Server Map Viewer - Map Storage

This is a novel idea that might not get added, but the idea is to have a storage facility for the maps that will hold all the maps in one place for people to rate and look at. This will also be the place where a map committee can actually officially rate maps that'll be recognized in the game.

Server Game Feature - Tournament

This is a pretty broad feature that covers competitive map makers. In short, they will be able to spectate the event, set up all the map rules, and organize players that will join. The ideas for how this will be accomplished is vague and needs to be fleshed out. But it is a feature I'm planning to have within the walls of CWT to help those who are dedicated to making a better competitive experience.

More to come most likely...

Clone this wiki locally