Comments (5)
Matchmaking should support group play.
IE I want to play a match together with my friend. I ask nakama to match make for me and my friend (maybe I provide both our UserIDs as well as our "MMR"). The server puts us together in to a match.
I guess it would also be important that the players be put into the same team within the match, so the server not only has to find a game with 2 free spots, but one with 2 free spots on the same team. (Currently server knows 'nothing' about a match - I guess it would need to 'know' about the concept of 'teams', how many 'teams' in the match, which player is in which team, etc.)
from nakama.
Maybe the API could be something like this:
var matchFindRequest = new NMatchFindMessage.Builder().
SearchRooms(string[]{"1v1","CaptureTheFlag","SearchAndDestroy"}).
AddSearchParam("MMR",50, 25).
SetTimeout(20).
Build();
client.Send(matchFindRequest , (INMatchMakingResult result) =>
{
//found match
}, (INError error) => {
//error
});
SearchRooms - Only match make with people in the same 'room'. This is just a way for us developers to filter out which kind of games the player is going to play in. Users do not 'create' rooms. Maybe developers create 'rooms' via command line on the server, similar to leaderborads? The developer can specify how many users per match in the room, etc.
In the game, player presses: Start -> Multiplayer -> Free For All -> Find Match so we send an NMatchFindMessage with SearchRooms(string[]{"FFA"})
. If user selects Start -> Multiplayer -> All-> Find Match, we send an NMatchFindMessage with SearchRooms(string[]{"FFA","DM","CTF"})
.
AddSearchParam - 'fuzzy' match making values. IE Pass in an "MMR" of "50"and a max search range of "25" (ie match against others with an MMR of 25-75. I am not sure if this is the 'best' way to do it, but just an idea.
SetTimeout Time out for the search operation. Return an error if match not found after this time?
INMatchMakingResult Contains a reference to the INMatch that was found, and also
var cancelMatchFind = new NCancelMatchFindMessage.Default();
client.Send(cancelMatchFind, //etc....
To cancel current match find operation?
Just suggestions
from nakama.
The initial framework for this feature is available on master since 46e50e1. Matchmaking criteria improvements remain scheduled for 0.14.0.
from nakama.
i like to add filters like range like rank 2- 4 and score 2000 -2800 etc
player will send this to server and server should match other who is also having rank and score within the range
from nakama.
This is now available on commit dc0a596 and will be available in Nakama 1.1.0+
from nakama.
Related Issues (20)
- Allow to call match creation in run_once HOT 3
- Why does the document say that After hooks are executed asynchronously but the code doesn't? HOT 4
- Why Lua language? HOT 3
- Non app store payments HOT 3
- Bad URL in docs. https://github.com/heroiclabs/nakama/blob/master/sample_go_module/README.md HOT 2
- [Bug] IAP Bug GoError: ON CONFLICT DO UPDATE command cannot affect row a second time HOT 2
- UnlinkApple unlinks successfully even though it is the last link. HOT 3
- [Feature Request] Official Goland Debugging Support PLEASE ! HOT 1
- ast.Property is *ast.PropertyShort, not *ast.PropertyKeye HOT 3
- [FEATURE REQUEST] Role based access control (RBAC) HOT 1
- Nakama DX using Docker HOT 3
- Request to Add “Friend Metadata” HOT 1
- Server keeps terminating on heavy load HOT 7
- Why is Typescript compilerOptions target es5 ? HOT 3
- How to properly manage Memory? Leaking Memory.... HOT 3
- Extend api.ChannelMessage HOT 3
- Nakama Client SDKs should append port after host name instead of after full host path HOT 1
- Nakama ARM build should be published with the same docker version tag HOT 1
- error log content is confused HOT 1
- Nakama MP service - with respect to Paradox Interactive Accounts HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nakama.