This is interesting KISTech, i recently started a game simerler to what you are doing, it ran on one server, after that you chose to develope it further, i chose to go into the more technicle side of it.
I have developed 3 Cluster Systems in dark basic, the first one just spread the load, the second one spread enviroments (like one node per solor system) and the thrid is a large improvement in the developement stage.
This has been a stage of trial and improvement for me.
with the one server idea i learned that:
1) Clients request servers acknoladge
2) Its best not to have a admin on the server, a client should be created for that
3) it is best not to have statistics displayed on the server, a client should be created for this purpose.
4)Struturing the code, and using the goto command, could really help in terms of preformance
5)Batch processing tasks (Like the primitive econimy in it) are best carried out from another computer,
Then i created a Vurtual server cluster. it was devided into 3 sections. it went as follows
Client <--> Bridge <--> Nodes
this way only one connection has to be maintained.
the bridges job is to forward packages, NOT to do tasks.
as in the first one i used a byte indexing system to make sure the bridge knew exactly what it would be picking up and sending, and too whom, this cluster was dynamic, nodes could be removed and added as offten as one liked, given there was at least one active at all times, This cluster model could carry a whole game area, and spread the load massivly. however its data storage was inefficent, as each node had its own copy of the game word, and the bridge was put under tremendous stress as each node verified its data was up to date.
the final modal i am working on now is the sum of everything i have learned from these ventures.
to minimize and unify Data storage and retreival, seperate nodes can be inttialised to store and manage the data, if more then one of these nodes is introduced, they can work together in 2 forms
1) they act as copies, what happens to one happens to the other, the bridge duplicates the command to both (2 is not the limet, it is just an example) data nodes so if one fails the other can take its place, in terms of sending back data, they have a status, slave and master, master sends back data, slave just knows the data.
2) They use space more efficently, one node can store some things, the other data node the other things, so for example, economic data on one node, player position data on another, upon being connected, the bridge instructs them all on what to do, dynamically, so if there is one node and its doing everything, upon another data node being connected the bridge will tell the first node its doing this this and this, and the other that that and that. this can cause some lag, but helps in times of high server load. its also posible for this type 2 system if you will to work in type one form, so a sub-cluster, if a node is carring half of the database its posible to create a type one system, so if it fails not all is gone (all these assingments can be carried on while the server is running, via an admin client, some lag may be experanced in cases of database duplicating)
The reson i am interested in this DLL is becuase i have been using PHP latly, and my way of quering arrays is far from efficent.
Theres alot more then this to my server cluster. should you want to discuss technologies, my email is
[email protected] (yes i know its unprotected) and my skype: alecthelion
now the question i had was how to use this lol
like after doing a select from how do you get the data selected.