caligula Posted August 23, 2010 Report Share Posted August 23, 2010 How about a game server?Not talking about a server hosting the game itself but just the active games. At the moment it makes fun testing the game but it would make much more fun testing it with others. Still it is tough finding other games. The easiest way would be a website showing active games (initially it would be enough to get the IP addresses) that you can join.Afterwards it would be great to make it part of the game itself to join any active game.Some suggestions about the information for games:-) Number of players (total to see how many can attend, active to see available places)-) Map which is used (and if this map is available on the client system)-) Time when the game gets started (e.g. in seconds)-) Time the game is running already (if it is possible to join during an active game as well)-) Comment (to describe who should attend or if it is just a test game or ...)Of course I can do it immediately as plain web service but it would be much better if there is a kind of minimum interface at the client to send this information to the server and vice versa. It would be possible to create it as php page and if you like it, it could be moved to your server as a web page as well.The main idea at the moment is speeding up getting testers of the maps and it would be very useful to have a larger test base.Regards,Caligula Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted August 23, 2010 Report Share Posted August 23, 2010 Yeah, a lobby server would definitely be useful. I haven't thought about technical design much, but I'd guess it may be best for the server to provide a JSON-over-HTTP API - that way it can be used easily by the game engine (we just need to add libcurl and give the GUI scripts access to it), and could also be used by web-based interfaces or other tools if people find those more convenient. There's lots of other things we could do with a central server too - update notifications, firewall checking, NAT punchthrough, collecting gameplay statistics, etc.if this map is available on the client systemIdeally we'll have automatic downloading of new maps, and they'll be fairly small files, so that shouldn't be a problem. (Need to worry a lot about security before we implement that, though.)Time when the game gets started (e.g. in seconds)Is this information available? I thought people usually just waited until there were enough players and/or they got fed up, and then started the game immediately - they don't explicitly plan to start the game in n seconds, so there's no timer to show to other players.Time the game is running already (if it is possible to join during an active game as well)The engine design makes that technically feasible, and it would be a good thing to have, though it'll probably take a lot of effort to make it work reliably.The main idea at the moment is speeding up getting testers of the maps and it would be very useful to have a larger test base.I think testing isn't the highest priority now - we're already aware of a lot of errors and missing features and have plenty to work on, but it'll become more important in the hopefully-not-too-distant future when we've fixed the obvious problems so testers can find new subtler problems. Would be good to have a system set up by that point so that people can test as easily as possible. Quote Link to comment Share on other sites More sharing options...
rjs23 Posted August 31, 2010 Report Share Posted August 31, 2010 (edited) I could try to create a cross-browsers website lobby game server where it connects people to a game from a lobby room.I'm not sure if anybody else is doing this. Edited August 31, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
AuroN2 Posted September 3, 2010 Report Share Posted September 3, 2010 @rjs, that'd be nice but what if the server went down? would people still be able to play games or is the server just for the lobby? Quote Link to comment Share on other sites More sharing options...
rjs23 Posted September 4, 2010 Report Share Posted September 4, 2010 (edited) It'd be just for lobby. The way i see, it could show list of available games (for players to be able connect in order to automatically join a game in a peer to peer networking manner), ping speed, friend list, and chat lobby/game rooms. A good example of this would be MSN Zone where it used to acted like a lobby server for AOE II.Edit: I will be using this, as Ykkrosh has recommended, with JSON-over-HTTP. Edited September 6, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
sergiovier Posted September 4, 2010 Report Share Posted September 4, 2010 @rjs23 i can help you too Quote Link to comment Share on other sites More sharing options...
dementor Posted September 4, 2010 Report Share Posted September 4, 2010 i have a spare server laying around (its not conneced to the internet it will be soon) we could use that Quote Link to comment Share on other sites More sharing options...
rjs23 Posted September 5, 2010 Report Share Posted September 5, 2010 @ sergiovier; Great! @ dementor; how reliable is the server is? All it need is a reliable connection and a decent speed. It will use Javascript and PHP features as well as a MySQL database to store the gamelist. Quote Link to comment Share on other sites More sharing options...
dementor Posted September 6, 2010 Report Share Posted September 6, 2010 i have a good internet connection but the server is old so it could be a beta server untill we bet a better one and with he proggramming it needs ill need your guys help with that cause i dont think i could programm it Quote Link to comment Share on other sites More sharing options...
liamdawe Posted September 6, 2010 Report Share Posted September 6, 2010 (edited) Could always look at SpringLobby it's open source but could be modded to work with 0 A.D. ? Edited September 6, 2010 by tatewatkins Quote Link to comment Share on other sites More sharing options...
rjs23 Posted September 7, 2010 Report Share Posted September 7, 2010 (edited) I've released a somewhat operational lobby server. It is incomplete but it should be able to help people find games by their ip addresses.It does not connect you to the game automatically yet since I do not know how to make the lobby server communicate to 0AD game yet. I'm thinking about communicating through memory by using clipboard?This server's url is http://0adlobby.x10.bz/0adLobby.html and it is being operated on a free server so it will be running slow and might go down sometimes if people abuse it. I am trying to keep this thing free and allow access to everyone so the users don't have to sign in without a charge.Again, I'd like to point out that some feature are still incomplete therefore they can be glitchy. Feel free to test around. The following features that I plan to add later when I have more free time: User sign in/out (so that username are displayed instead of their ip addresses)friend list@dementor: The server doesnt really have to be new to be good. We can test it later if you can get it up and running. Are you saying that you having trouble configuring the server? @tatewatkins: I am not very good in C programming so I'd have hard time reading SpringLobby's open source code. Edited September 7, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted September 7, 2010 Report Share Posted September 7, 2010 It does not connect you to the game automatically yet since I do not know how to make the lobby server communicate to 0AD game yet.Hmm, I guess there's a few ways we could support external lobby clients, but I'm not sure what would be best.One option is to require that the user already has the game open and running. The game could run a local HTTP server on some predetermined port, then the lobby client web page could do <iframe src="http://localhost:12345/0ad-rpc.html"></iframe> to open a connection to the game and use postMessage() to do bidirectional communication. That could be interesting for more than just lobby clients - it could provide an API for writing out-of-process AI players, for collecting performance stats, for running automated tests, etc.Another option is for the game to register a protocol handler, so the lobby client can navigate to a URL like "zeroad://connect?ip=12.34.56.78" which will launch the game even if it's not already running. Need to be extremely careful about security, though - any random malicious web site could trigger it at any time, and safely parsing the command-line options doesn't sound easy (it seems a common security vulnerability). (Is it possible to do similar things with MIME types rather than protocol schemes? I guess it's somewhat platform-dependent.) Quote Link to comment Share on other sites More sharing options...
dementor Posted September 7, 2010 Report Share Posted September 7, 2010 i need you guys to help me programm the server so either create a file and give it to me or help me create it Quote Link to comment Share on other sites More sharing options...
rjs23 Posted September 7, 2010 Report Share Posted September 7, 2010 (edited) @dementor: Which file are you refering to? We do not know the status of your pc. What operating system is it? are the software and features installed and ready? What files does it lack? For now, I'll use that web hosting. It's not a big deal to use your server right now.@Ykkrosh: I'm lending toward on your opinion about the "predetermined port" because I believe that 0A.D can do more features with the outside communications than just the through the protocol handle which may be an hassle to deal with. It could also allow voice chat (would not work good in this case since it's a free server which can make it unreliable and slow until the lobby server get a real server) which some user would like to have. Unless a user has a plugin that allows javascript to start 0A.D automatically, the user of will still have to run the program manually, of course.Maybe 0A.D could use a browser engine like webkit, or gecko to communicate directly to the server while inside the game as a part browser (without depending on those popular browsers?) Anyhow,I've made some more progress on the Lobby Server. It is much more stable and is more completed.It also now allow hosts to stop hosting when they're done hosting.They can now remain hosting the game without needing to run browser in background. When the server loses connection with you while you're still hosting, the server will eventually see you being offline and mark you as a inactive hosting (but your game would be still being hosted) and your hosting session will become restored as an active host once you visit the lobby server later. The benefit of this to free up CPU and RAM for 0A.D to run more smoothly on old machines while your game is being hosted. Edited September 7, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted September 7, 2010 Report Share Posted September 7, 2010 Maybe 0A.D could use a browser engine like webkit, or gecko to communicate directly to the server while inside the game as a part browser (without depending on those popular browsers?)I've thought about embedding WebKit, but I think it'll be quite a pain to do it portably and efficiently. It'd probably be easier for an in-game lobby client to just use our current custom GUI system for rendering (and we should add an HTTP API so GUI scripts can communicate with the server). Quote Link to comment Share on other sites More sharing options...
rjs23 Posted September 8, 2010 Report Share Posted September 8, 2010 I've thought about embedding WebKit, but I think it'll be quite a pain to do it portably and efficiently. It'd probably be easier for an in-game lobby client to just use our current custom GUI system for rendering (and we should add an HTTP API so GUI scripts can communicate with the server).I can imagine it being troublesome to be planting it into the the 0A.D. You're right, it's probably not worth the files space and security flaws they might pose. I don't know much about all the engines and C programming and all that, but I could understand all the works involve in it now. I'll start programming the client side browsers to try to interact with the 0A.D via "bidirectional communication" once I know what it needs to communicate with 0A.D. *goes look for a document around here to find more about how to communicate to 0A.D* Quote Link to comment Share on other sites More sharing options...
dementor Posted September 8, 2010 Report Share Posted September 8, 2010 what im asking is how can i make it that multiple games on one server and the server has a os of windows xp Quote Link to comment Share on other sites More sharing options...
sergiovier Posted October 23, 2010 Report Share Posted October 23, 2010 (edited) Is there any news from this work?I'm interested in help with that. I could make an REST application (HTTP API calls) in order to bring the capability of have a in-game lobby. So, i think we can define some features for this:- list active games- create games- update game settings (map, players, etc)- update game status (in lobby, in progress, etc)- more?The different calls could return XML or JSON data, so it would be easy to build the in-game lobby interface. What do you think? Edited October 26, 2010 by sergiovier Quote Link to comment Share on other sites More sharing options...
fiasco Posted October 28, 2010 Report Share Posted October 28, 2010 what about an ELO rating system? Quote Link to comment Share on other sites More sharing options...
Kimball Posted October 28, 2010 Report Share Posted October 28, 2010 I love this idea, and I love the fact that you've already got a lobby set up! Two suggestions for your lobby:- Ability to choose a nickname (eventually log in using forum username, but that requires some login knowledge of our MySQL database that you'll have to speak with the web team to access)- Time stamp for chat.And some eventual suggestions for when the lobby can communicate with the game:Ranking based on: - Highest statistics (most units killed in one game, most resources gathered etc.) - Win/Loss ratio (requires a certain number of games to be ranked - a 1:0 ratio shouldn't put you in first place if there are people with 73:32, for example) - Fastest campaign completion time?Sort games based on: - # of players - Preferred playing style (Deathmatch, Conquer etc.) - With or without territories - Preferred map - Factions (pick one you like to play against or one that complements you for ally situations) - Availability of teams (or just FFA)Match-making based on: - Amount of time played - Difficulty of campaign completion - Win/Loss RatioSince initially the multiplayer community will be small, we won't offer many options for match-making. Pushing the button will just put the player in a waiting room until equally-ranked players are found. Hosting a match-making game will only allow you to limit the number of players that may join. Once players are found, the game will pick the map/game/settings based on whatever is most popular online at that point. Somewhat like in Halo, players in the room will be able to vote up/down the option displayed until a consensus is reached. Quote Link to comment Share on other sites More sharing options...
rjs23 Posted November 2, 2010 Report Share Posted November 2, 2010 According to my web hosting server. I've been suspended. 10Xhosting do not like the chat feature. I will have to find another server for this.@sergiovier if your REST application can launch 0ad game automatically then that would be great because popular browsers does not permit it. Users will still need to launch the game manually then use copy/paste ip address to join games. Let me know if you plan to do this.@Kimball I am slowly working out bugs. I will do the essential ones such as sorting list and nickname (if I'm right, retrieving users' name on other domain will not happen unless 0ADLobbyserver is on same domain as this website. However, I can be wrong about this. )You could email me your team's email address so we can talk. Quote Link to comment Share on other sites More sharing options...
sergiovier Posted November 3, 2010 Report Share Posted November 3, 2010 Sorry for the late response, I'm too busy but i would like to show some ideas to interfacing REST services.I've some initial definitions for web services that we can discuss: https://docs.google.com/document/d/18x7ph2r...uthkey=CLO7xr8JThe idea is build an php application to expose these services. I'm a web developer with experience in symfony framework (www.symfony-project.org), so i would like to build these web services using this technology @sergiovier if your REST application can launch 0ad game automatically then that would be great because popular browsers does not permit it. Users will still need to launch the game manually then use copy/paste ip address to join games. Let me know if you plan to do this.I think 0ad team will implement an internal lobby, so this will be the best (only) place where you can launch a 0ad multiplayer game. But we can always have a web interface to show the lobby activity. Quote Link to comment Share on other sites More sharing options...
rjs23 Posted November 4, 2010 Report Share Posted November 4, 2010 (edited) @Sergiovier: Interesting idea, so you're going to try to build these web services for your php build or you want me to follow those outlines and apply them to my server so your php application can use them?I think 0ad team will implement an internal lobby, so this will be the best (only) place where you can launch a 0ad multiplayer game. But we can always have a web interface to show the lobby activity.They will implement it, but for now, my lobby server provides temporary mean of finding games (once it gets back up and running) for users while developers create their lobby in 0AD.Edit: I took this opportunity to learn more about gaming lobby since I have never had this kind of experience Edited November 4, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
sergiovier Posted November 5, 2010 Report Share Posted November 5, 2010 (edited) @rjs23 The idea is start to build this application with these specifications. I will put sooner this code in my github account, so we can work together Edited November 5, 2010 by sergiovier Quote Link to comment Share on other sites More sharing options...
rjs23 Posted November 8, 2010 Report Share Posted November 8, 2010 (edited) A new server is found with the new update to game lobby server. Edit: Link removed (my account got suspended due to exceeding CPU quota on their server.)Changelog: New server for web hosting. Contain several bug fixes. Improved performance Each user are named 0AD_## instead of their ip address. (I will add renaming feature to rename their nickname) Chat/talk fixes Speed up game list refresh rate New feature: Now show which host is offline (host that is not connected to lobby server but still hosting); Some other new features such as port numbering and nickname from the documentation provded by sergiovier EDIT: forgot a new feature, you can sort game list by game name, latency, and host.@sergiovier: I've added some of those specifications to the server I'm building. Let me know how it goes and we'll work together from thereI will continue work on adding more features and add security layers to it. Feel free to post your wishes/suggestions. By the way, I am aware of my failing English noted here. I apology but bear with me lol.Issues with this server: This server is slow. The ping can spike. Can easily be messed up. Edited November 8, 2010 by rjs23 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.