N-SoCS v1.0 - README.TXT -------------------------------------------------------------------------------- Welcome to N-SoCS, the Non-Shitty openCanvas Server. This project is freeware and should not be sold. It may be distributed legally as long as this README is included. Yadda yadda, I'm not responsible if this program screws up your computer, your love life, your mom's yoga training, your haircut, or anything else that I didn't mention. I tried to make it safe, though, I promise. Project Copyright (C) 2006 to BrokenWing. I love feedback! BrokenWingx9 at gmail (etc.) Table Of Contents: ------------------ I. Introduction A.) Purpose B.) Features C.) Planned features II. So how in god's name do I use this thing? A.) The quick and dirty B.) Got that, what's next? III. Special features A.) Event recovery B.) Extended user mode C.) Layer locking D.) IRC-style commands IV. Epilogue --------------- I. INTRODUCTION --------------- A.) Purpose - The goal of this project is to overhaul the bad behaviors of opencanvas' network capability by making a better server. These mainly amount to: 1.) Heavy resource consumption and instability 2.) A low user limit (strongly influenced by the instability issues) 3.) No ability to recover an image after a crash or as a new connection. B.) Features - To counteract these issues, N-SoCS v1.0 includes: 1.) A very light footprint and much better network handling. 2.) An extended user mode. 3.) Event playback. C.) Planned features - Additional features planned for the next release include: 1.) Better handling of event playback, more intelligent and geared towards running a persistant server. 2.) Administrative capability (kicking/banning) to help in running a server more permanently. - Possible future additions (depending on feedback) include: 1.) Channels (such as in IRC), futher IRC-style commands. 2.) A GUI for configuration and display. --------------------------------------------- II. SO HOW IN GOD'S NAME DO I USE THIS THING? --------------------------------------------- A.) The quick and dirty. - Ok, so here's the four step process: 1.) Extract all files included into a folder. 2.) Run oC_Server.exe. 3.) Run opencanvas and connect to 127.0.0.1. 4.) Tell other people to connect like you would if you were using normal opencanvas. - That's it. Without any modification to the config file, the defaults will be loaded and you should be on your way. - The default settings are as follows: 1.) non-extended mode (normal oC) 2.) port 9001 (normal oC) 3.) 4 users 4.) 4 layers per user 5.) 2000x2000 canvas 6.) Event recovery enabled B.) Got that, what's next? - All the settings are handled within the oc_server.cfg file. If you open this up in your favorite text editor (say, notepad) you'll be presented with a list of options. Edit, save, run N-SoCS, and hopefully your settings will be loaded correctly. - Settings cannot be (presently) changed while the server is running. After editing the file, please be sure to close N-SoCS and reopen it. --------------------- III. SPECIAL FEATURES --------------------- A.) Event recovery - Event recovery is pretty straightforward. Right now, a file is generated automatically and all art events that come into the server are logged. When a new person connects, events are played back in the order they were received. - If the person connecting has the same IP as an unused user slot, they will get that user slot when connecting. This is done in hopes of giving a disconnected user back his or her canvas. - NOTE: The one problem with event recovery is that no art events will come in until event recovery is finished. Furthermore, users should not draw until event recovery has finished otherwise they will be out of sync with other users. B.) Extended user mode - Extended user mode can be somewhat complex. This mode will allow more than 4 users to connect, but because of limitations in opencanvas, users will not show up in the userlist. Instead, a user must type /who to see a list of connected users. - The layer setting in this mode will set the total number of available layers. The maximum is 24, which is, again, an opencanvas limitation. - All layers, by default, are available for all users to draw on. This means users may collaborate with others on sketches and single-layer drawings, but also means users may accidentally draw on each other's players. To help with this issue, layer locking was created. C.) Layer locking - This is probably the most confusing new feature. Due to extended user mode allowing for all users to draw on all layers, layer locking was implemented. - Layers may be locked by someone so that actions taken by others will not be visible to the group. That is, you can lock a layer down so you can draw on it, but if anyone else draws on it only they will see the change. - To lock a layer, select a layer and type /lock, or type /lock #, where # is the layer you'd like to lock (starting with 0). - To unlock a layer, select the layer and type /unlock. Or type /unlock #, where # is the layer you'd like to unlock. Or type /unlock all to unlock all layers. - To check the status of layer locking type /lockstatus. - If you accidentally draw on a locked layer, you may either undo immediately, or erase the result. Either way, nobody else will see how you screwed up. D.) IRC-style commands - A few IRC-style commands (i.e. those with a / before them) are implemented in this release. They are as follows: In all modes ------------ 1.) /help: Displays a list of available commands. In extended user mode --------------------- 2.) /who: Displays a list of connected clients. This is used in place of the userlist, since oC cannot display more than 4 clients at a time. 3.) /lockstatus: Displays a list of the current status of the layerlocking in extended user mode. This is only useful if layer locking is enabled. NOTE: Layers start counting at 0. 4.) /lock [#]: Use without an argument to lock the currently selected layer. Use with a number (ignore the []) to lock that layer. NOTE: Layers start counting at 0. 5.) /unlock [#|all]: Use without an argument to unlock the current layer. Use with a number (ignore the []) to unlock that layer. Use with the word all (ignore the []) to unlock all of your currently locked layers. ------------ IV. EPILOGUE ------------ Well, there you have it. Give it a shot. It might seem a bit confusing at first, but I think it should be pretty easy to get the hang of. I'll be fixing a few issues and releasing new versions hopefully in the near future, not the least of which is making extended user mode a bit less obtuse. Please, give me feedback, it's the only way I'll know if people like what I do! And thanks! -BW