Joe Posted May 7, 2011 Report Share Posted May 7, 2011 I know this obviously isn't going to be high priority, but in terms of multiplayer support, has an online lobby been considered to list "public" games for people to join, or is the idea to keep the current system where you must know the IP of a player hosting a multiplayer game. Quote Link to comment Share on other sites More sharing options...
Mythos_Ruler Posted May 8, 2011 Report Share Posted May 8, 2011 There have been many discussions regarding an online lobby. The consensus seems to be we should build one, but nothing concrete has been initiated yet. Quote Link to comment Share on other sites More sharing options...
tinoesroho Posted May 8, 2011 Report Share Posted May 8, 2011 There WAS once an online lobby. It died when the host complained it taxed the server too much. Quote Link to comment Share on other sites More sharing options...
slipshod Posted May 23, 2011 Report Share Posted May 23, 2011 You may consider adopting the multiplayer metaserver developed by Bungie for Myth, and later open-sourced. The latest version of it can be downloaded here: http://projectmagma.net/downloads/opensource/mythserver_rev67.tar.gzIt basically works by allowing clients to join the metaserver, providing them with access to a number of "rooms" in which people can chat, and games can be hosted. Within a room, you can join a game that someone has hosted, and when the host is ready the game begins without having to know any IP addresses etc. When the game's over you're back in a game "lobby", where the game can be changed and restarted, or you can leave to rejoin the main lobby of the room you were in.The server is also capable of storing game results for use in ranking tables etc.Myth multiplayer took place for many years on a site (now gone) called playmyth that ran this code, and now mariusnet.com has taken over the hosting, albeit with separately developed metaserver code.The Marathon Aleph-One open source project also use the mariusnet metaserver, and therefore you can peruse Aleph-One's code for an implementation of how it works from the client-side.Of course 0AD developers might prefer their own solutions, but its worth considering - the Myth metaserver is very stable and works well, why re-invent the wheel etc etc. Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted May 23, 2011 Report Share Posted May 23, 2011 Regardless of any technical issues, that code's license prohibits commercial use ("provided that all use of the Software is for non-commercial purposes only"), so it's not DFSG-compatible open source and we couldn't use any of it if we wanted to Quote Link to comment Share on other sites More sharing options...
slipshod Posted May 23, 2011 Report Share Posted May 23, 2011 (edited) The server code need have nothing to do with the code for the game itself. Its not linked with it, its not aggregated with it - its totally separate. Its not even something you'd distribute (unless you wanted to), as you'd only need it for running 0AD server(s) - the only restriction is that you couldn't run a server for commercial purposes, ie charge money for people to join up for multiplayer games. Is that's what is intended for 0AD?The code that _would_ need to be part of 0AD is the client-side logic that talks to the server, an implementation of which is in Aleph-One, which is GPL.If you still consider it to be unusable due to the non-commercial clause in the server license, well such is life I guess Edited May 23, 2011 by slipshod Quote Link to comment Share on other sites More sharing options...
Ykkrosh Posted May 24, 2011 Report Share Posted May 24, 2011 Hmm, true, it would probably be legally fine, but this is an open source game project and the lobby/master/meta-server is an important component of the project so I believe it morally should be open source too. It probably wouldn't make much difference in practice since ideally only one person in the world at a time will be running the server (to avoid fragmenting the community), but it matters in principle and I'd prefer to not compromise on principles unless there's a hugely compelling reason (On a technical level, from looking briefly at the code it seems to have a fundamentally broken approach to cryptography (it uses rand() for keys and salts, which destroys any security properties it might otherwise have, and it XORs with a session key instead of using stream ciphers properly, etc) which doesn't indicate high-quality design, and it's written in C with lots of pointers and fixed-size arrays so I'd have no confidence that it isn't full of potential buffer overflow vulnerabilities etc. I think security is critical for servers (at least in principle, which is enough) and it'd likely take more effort to audit and test and fix code written in C than to start from scratch in an easier and safer language (e.g. Python). So I think there's good reasons to reinvent wheels ) Quote Link to comment Share on other sites More sharing options...
Arthur_D Posted May 24, 2011 Report Share Posted May 24, 2011 I have absolutely no experience with it as I'm a non-programmer, but maybe the Grapple library could be of interest. 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.