Idea For Server Thing....


EpicLulz

Still Fresh
Joined
Mar 10, 2009
Messages
11
I'm very excited for the Pandora and I want to help the cause, but I am just starting out in the programming world. However, I do have a lot of experience in web development. An idea came to me as a possible way of managing multiplayer game servers. If you have ever played Warcraft 3, you know that each multiplayer game has a "host" player, where all of the information between players travel through the host's computer. This is kind of the basic idea how this method would work. It does not require a server program to be run on a dedicated server. It can be accomplished through MYSQL databases and simple PHP scripts.

To outline how this would work, I wiped up a quick diagram:
CODE
http://i43.tinypic.com/2yv9jeo.png


Would anyone find this useful?
 
Last edited by a moderator:
Search the forums for TINXL and POND. Such a project has already been started :p

EDIT: look here:
www.gp32x.de/board/index.php?showtopic=44768
www.pandorawiki.org/TINXL
 
Last edited by a moderator:
Your right. I had seen those before but I had just assumed that they were just programming libraries. I may still embark on this. I plan to have a really easy web interface that developers could use. I could also implement a way were if gamers registered on the site, they stats could be recorded. This could eventually lead to an achievement system. The possibilities go on and on. Would anyone be interested in this sort of thing?
 
EpicLulz said:
Would anyone be interested in this sort of thing?
OK, I'll just ask the (usual ?) qualification questions that might require an answer before this project can gain any interest:

1. Do you have any features in mind that don't already exist in POND or TINXL?
1.1. If so, can't you just contribute to one of those projects? 3 network standards are difficult to handle in such a small project as the OpenPandora afaik.

2. Most games for the OP will probably be open source. How do you want to ensure that Achievements can't be achieved through cheats, by modifying the application source code?

3. Who would pay for the hosting of the lobby server?

4. Would you have peer-to-peer support? Integration into existing systems? Compatibility stuff etc? See 1.1. Don't reinvent the wheel.

5. Are you up to the task? Do you want to manage a repository, track documentation, manage the 10 000 lines of code etc? This isn't a small project you're talking about, and you say that you are new to programming.
 
Last edited by a moderator:
All of the lobby and networking code would be handled by the developer of the game. All my service uses is PHP and MYSQL (with which I am quite fluent), no other programming languages would be required. All requests are handled through simple HTTP. The service only keeps track of available game servers and information.

The game-database interaction would look like this.

HOST-SIDE EVENTS
1) Game sends info to PHP script on a free web hosting service.
2) PHP script writes data to a MYSQL table like the host's ip address, number of players allowed, what map or level will be played, etc.
3) PHP script returns confirmation saying that the data has been written to the MYSQL table.
4) Host game creates a lobby using the developer's own code.

PLAYER-SIDE EVENTS
1) Game requests all available games ran by "hosts".
2) PHP script accesses MYSQL table and returns all available games and info, including the host's ip address, number of players allowed, map in use, etc.
3) Game contacts the host's ip address using the developer's own code, requesting permission to join the host's game.
4) If the host's machine sends approval, than the player's machine enters the host's game using the developer's own code.

As for all of your other concerns, I'll get to that when I know that some people would be interested in this. I don't want to start on such a big project and not have anyone use it.

And dflemstr, I hope I'm not coming off as standoffish, I really appreciate all of your feedback and advice!
 
Last edited by a moderator:
AFAIK, the devs of TINXL already have a complete hosting system, at least planned.

I'd look into maybe providing them with a web interface.

My reasons:
- To write the hosting CORE in PHP would be quite cumbersome and might lag a great deal, especially if you make MySQL accesses with every request.
(For reference: PHP is usually more than 10 times slower than CGI with C++
Source: www.wrensoft.com/zoom/benchmarks.html )
Think about latency (ping); even in lobby servers, more than 900 ms latency can be annoying, which is what you can expect from HTTP over TCP with scripts.

- The core of TINXL or POND is in C (as far as I know) which speeds up things a bit and allows fast chat, or even video and audio conversation (correct me if I am wrong...). This will be hard to match with an alternative solution.
I don't know as much as I'd want to about these two projects, you'd have to talk to one of the devs for more info.

- To make a hosting service in PHP over HTTP would require new APIs and protocols. AFAIK, POND uses XMPP (jabber/google chat) and TINXML uses standard DBUS and TCP connections, with abstraction layers for very good compatibility. To match that could prove difficult, especially if you want cross-platform support and open standards etc.
Again, I do not know enough on this subject to drive the discussion on any further.

- And back to the usage aspect: why introduce a new sandard when there are already two fully working, and that already have possibilties for a web interface?
 
I think you are right. I would be more than happy to help the other causes. Thanks for all of your input!
 
Hello...I think this si a great idea.I am a very beginner programmer but, I have experience setting up MySQL databases and PHP.If you need any help I can help you on that.PM me if you want to talk...
 
I realized that basically all my plans boiled down to online variable storage. I don't anyone would find this useful. It could be used mainly for online highscores and the like. I guess I may plan this out if anyone likes this approach better. This also doesn't have to be restricted to the pandora, since the only thing needed to control it is HTTP GET requests.
 
Last edited by a moderator:
Back
Top