Matchmaking Mod

kmgkmg Join Date: 2008-02-28 Member: 63758Members
before anybody starts getting negative about this, yes i'm aware of how well UWE's organized play feature worked out, and yes i'm aware that there probably aren't enough players left in ns2 for a proper matchmaking system to even be viable. that said, i wanna try this anyway.

Proposal

this is sort of a requirements list. basically just a list of things i wanna see in a matchmaking mod, with a few notes on implementation. obviously some things on here are higher priority than others, but I didn't bother breaking it into phases. i am planning on writing the mod myself, i'm mostly just looking for feedback on my plan thus far. that said, i'm open to whatever help people might want to give. i have heard that some other people have started work on matchmaking mods before and i'd be very interested to hear about any roadblocks they ran into, or build on whatever they've already accomplished.

so the ultimate goal here is to put together a system which would be satisfactory for eventual inclusion in vanilla. for obvious reasons a matchmaking mod will have almost no value until the entire playerbase has access to it. also, being included in vanilla would make it a lot more likely that matchmaking could continue to search while joining and leaving servers.

my main weakness going into this project is my limited familiarity with the ns2 codebase. i've only worked on a few small mods. so i'll probably be bugging a lot of people with questions along the way. so, if anybody sees anything I missed, or anything that might be particularly troublesome to implement, let me know.

Comments

  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    Your bit about players filling out information sounds similar to my social skill system idea from awhile back. I wish you luck.
  • DecoyDecoy Join Date: 2012-09-11 Member: 159037Members, Super Administrators, Playtest Lead, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Shadow, WC 2013 - Silver, Subnautica Playtester, Subnautica PT Lead, Pistachionauts, Retired Community Developer
    KMG requested I move this over to Ideas & Suggestions from the depths of nowhere it was in :D
  • SantaClawsSantaClaws Denmark Join Date: 2012-07-31 Member: 154491Members, Reinforced - Shadow
    I think you need engine access, if you want to make an in-game menu/lobby.
  • GhoulofGSG9GhoulofGSG9 Join Date: 2013-03-31 Member: 184566Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Supporter, WC 2013 - Supporter, Pistachionauts
    SantaClaws wrote: »
    I think you need engine access, if you want to make an in-game menu/lobby.

    Thats totally not true ;) All UI elements are done via lua code:)
  • SantaClawsSantaClaws Denmark Join Date: 2012-07-31 Member: 154491Members, Reinforced - Shadow
    SantaClaws wrote: »
    I think you need engine access, if you want to make an in-game menu/lobby.

    Thats totally not true ;) All UI elements are done via lua code:)

    Right, but I mean if he wants to make a menu without having people to join a server first, it'd have to be patched in to the game client - right?
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    no, you can modify the main menu no problem. the only issue is that you can have a menu in the main menu and you can have a menu in game, but i'm pretty sure the transitions between those states will cause problems with persistent stuff like searching for a match.
  • GhoulofGSG9GhoulofGSG9 Join Date: 2013-03-31 Member: 184566Members, Super Administrators, Forum Admins, Forum Moderators, NS2 Developer, NS2 Playtester, Squad Five Blue, Squad Five Silver, Reinforced - Supporter, WC 2013 - Supporter, Pistachionauts
    edited July 2014
    A matchmaking mod is "pretty easy to do".

    All you need to write is a Main Menu GUI that allows Clients to easily join the queue and connects clients automatically to the given matchmaking servers, a queue master server and some ns2 servers which run the matchmaking mod.

    Clients would just need to enable the mod to use the join the matchmaking queue ... .

    Actually i wrote a protoype of such a system while working at ns2stats.com and it worked out pretty well. I stopped working at it 8 month ago when uwe announced sabot (aka gather).

    So let's state me clearly that it is totally possible to write such a mod without any issues.
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    that's pretty much the idea.
  • RadmanRadman Join Date: 2013-04-05 Member: 184656Members
    Why split users by life form preference? You would expect players to have to play different lifeforms based on the state of the game, not as a predetermined requirement. I think a little bit of flexibility on the players part is not too much to ask. In Dota, nobody queues up as carry, mid, etc. And its works fairly well I think.
  • _INTER__INTER_ Join Date: 2009-08-08 Member: 68392Members, NS2 Playtester, Reinforced - Shadow
    Radman wrote: »
    Why split users by life form preference? You would expect players to have to play different lifeforms based on the state of the game, not as a predetermined requirement. I think a little bit of flexibility on the players part is not too much to ask. In Dota, nobody queues up as carry, mid, etc. And its works fairly well I think.
    I don't think it's a fix choice. It's a preference, so the searching systems doesn't group up people that all wan't to go Fade or Lerk etc.
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    it'll attempt to get an even spread of lifeforms, but it's not a requirement. users can select any lifeforms they would like to queue for. that being said, once you get out of pub-level play almost all players specialize to a specific lifeform. players on very high level teams can usually play all lifeforms effectively, but still almost always main one lifeform. if you don't care about your lifeform, you aren't required to fill out the field, or you can select all. the only effect is on automated team selection, teams will still have to make sure lifeforms are sorted out in game.
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    open question to modders: is the embedded web browser inherently broken? i feel like that would be the easiest way to build the lobby, which will be a fairly complex and formy ui. building it in-game seems like unnecessary work. using the embedded browser seems like the most sensible, easiest option for a bunch of reasons, unless it just totally sucks. i have no experience using it so far.
  • NordicNordic Long term camping in Kodiak Join Date: 2012-05-13 Member: 151995Members, NS2 Playtester, NS2 Map Tester, Reinforced - Supporter, Reinforced - Silver, Reinforced - Shadow
    Radman wrote: »
    Why split users by life form preference? You would expect players to have to play different lifeforms based on the state of the game, not as a predetermined requirement. I think a little bit of flexibility on the players part is not too much to ask. In Dota, nobody queues up as carry, mid, etc. And its works fairly well I think.

    I usually always lerk as soon as I can. I occasionally will have fun and battle gorge. If things go flash my lerk, or we are doing really well on res and I suddenly realize I am at 40 res I will go onos. In the end, I usually always lerk.
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    hey @matso spark exposes basically none of steamworks to ns2 lua, right? just want to confirm, because that would totally change this entire matchmaking issue. it would be pretty amazing if we could just use steamworks for all of this.
  • kmgkmg Join Date: 2008-02-28 Member: 63758Members
    I'm looking at the javascript source for how organized play is implemented and trying to use Spark.DispatchToClient (or any other methods such as Spark.Print) and it seems to be undefined. The weird thing is that the Spark object definitely exists in the global scope. It seems that it's of some weird type which can't be described by javascript, which is pretty much as I would expect for an extension like this. But does anybody know why DispatchToClient wouldn't exist? Was this functionality stripped out? Does it only get injected when certain criteria are met? Any assistance much appreciated.
Sign In or Register to comment.