Maximum number of local player stats in Xbox Live Services - xbox-live

I'm in the planning stage of a game and looking at using the Xbox Live services. I'm looking to have leaderboards in my game so I've been reading the documentation at:
https://learn.microsoft.com/en-gb/windows/uwp/xbox-live/leaderboards-and-stats-2017/player-stats
The question I had around this, is there a max limit to the number of local (none featured) player stats you can store, that make up leaderboards?
The reason behind this is I want to show a leaderboard per level in the game but there could be hundreds of levels.
One forum post I spotted suggests that the limit might be 20:
https://social.msdn.microsoft.com/Forums/Windowsdesktop/en-US/0b7b58ea-0bf1-43d5-ac4f-a51b5307e941/glitch-with-a-featured-stat?forum=xboxlivedev
Anyone able to shed some light on this limit?

Yes, the limit is 20 stats. We will make this more clear in our docs soon. Thanks

Related

Is it possible to get recently played games of user using a PlayStation Network API?

When playing on PlayStation, you get notifications when you're friends just played a game and whether they won or lost that game. Is it possible to get this information stream using a PlayStation Network API?
I found some unofficial PlayStation Network API's, but none seem to offer this functionality.
I'm not aware of any API, but my first idea would be to use some sort of web scraping/crawling to accomplish this. And if you're lucky they might be utilizing HATEOAS and that would expand your options of where to branch your crawl/improve performance etc.
It would kind of be a niche API to create but it could be worth it.

Roll your own Multiplayer iPhone setup?

I've been looking into the various options for implementing multiplayer (internet) in iPhone games. Game Center, OpenFeint etc are obviously very good, stable and feature-rich. But I can't help thinking my needs are a lot simpler than what they provide.
If I wanted to put together a simple 2d tank game, could I not just..
setup a mysql server on the web, with some get/set php scripts to actas 'web services'.
when you open the game, a call is made to the server, to log that you're 'available'.
when you select Play, a call is made to retrieve a list of 'available' IP's.
you select an opponent, remote IP is stored locally.
game starts, UDP handles the data between your IP and your opponent's IP.
..or would that never work? apologies, I'm very much a n00b at gaming/networking dev!
thanks in advance!
In addition to the complexities that dtuckernet points out, there are few other things to consider:
You need to think about the cost of running and supporting the web server. Can you maintain the same or better uptime than Apple and OpenFeint?
GameCentre promotes games that support it. The App Store adds an icon, and Game Centre itself lists games that your friends own. Don't underestimate the effect of free advertising!
Even if the code it easy (which I suspect isn't true), why take the risk of developing your own when there is well-tested code available for free?
Incidentally, depending on your requirements, you may want to use a hybrid approach. For example, Game Centre has a maximum of four players per game when Apple hosts it. You can find players using GC and then run the games itself on your own server.
That would certainly work, but implementing this can be a bit harder than it seems initially. You have to handle things like NAT/Firewall traversal and if you are using UDP you need to implement some type of a heartbeat to ensure you know when devices have disconnected (and handle it accordingly).
In most all cases, you would be better off working with a solution that already has these problems solved.

OpenFeint, Game Center and multiple users

I'm about to add highscore support to my mobile game and I have a basic understanding problem with leaderboard services like OpenFeint or Apples Game Center:
Suppose I'm logged in to OpenFeint and/or Game Center with my account. Then a pal of mine wants to play, I hand him my device and he gets the best score ever. Is there any way he can get his score listed under his name now? My understanding is that he can't, because when the game is over the score is saved, and it is automatically saved for the current account, which happens to be mine at that moment. Tough luck.
This would mean that if I play the game with my pal in turns we would constantly have to log in and out from both services after each game to get it right in the case that one of us gets a highscore. That seems a bit awkward...
Do I overlook something or is this just the way it works? Or do I have to take care for this situation as a developer? Or do the OpenFeint/GameKit SDKs handle this automatically somehow?
I don't know about Open Feint, but at least for Game Center I think the answer to your question is: Yes, that's just the way it works. Even if you know the Game Center id's for both you and your friend, you don't have the ability to save stats for anyone but the logged in game center player.
It does seems possible that they could have supported this use case, to allow more than one player to be "signed in" on a given device, and then the game could just present a "PlayerA", "PlayerB" button to choose who's playing, instead of having to run the Game Center app to do the switch. But I imagine this use case wasn't a super high priority. (They'd rather have each of you playing on your own devices. And in fact some services like ScoreLoop keep things simple by enforcing a single player per device, period.)

How the game will search for other online users and will display the list of all users?

I am asking this question as a small part of my question series regarding game programming .
Refer this question as the main one .
Now suppose I want to develop one small board game on iphone that is multiplayer . so how it will handle how many users are online and displaying them .
Suppose it is an online multiplayer casino game .
Then suppose it have to show currently playing tables and users on them .
So what can we do in iphone to do this sort of thing .
Thanks .
You're essentially asking what is referred to as 'matchmaking' in PC and console games.
The notion of displaying all currently online players or active matches is an early one in online multiplayer gaming, and I think it's seen its time. Instead, try and offer your players two options: Play with your friends or play against people of your skill level.
Showing someone a complete list of tens/hundreds or even thousands of games/players is just going to overwhelm them. People are much more comfortable knowing they're playing against people they know (and trust not to be unsportsmanlike) or at least that they're playing against someone of comparable skill level. These 2 concepts are often called 'buddy based matchmaking' (or friend lists) and 'automatch' or skill based matchmaking.
Unfortunately, from what I've seen in the GameKit framework, neither are fully supported, at least as far as playing on non LAN connections. You're going to have to either develop that yourself (and very few iPhone developers are going to have the resources to create and host it), or see if someone like OpenFeint, ngmoco (plusplus), Chillingo (Crystal) etc match your needs. OpenFeint seem to be talking about matchmaking on their site and plusplus offer buddy based challenges. The OpenFeint signup process is the easiest and you get access to their SDK right away for development without prior approval.
Now here's one final thing to consider: smaller games aren't going to have the player base to have enough concurrent players around so that everyone will always find a suitable match at any time of the day/week. Unless you have promotion and publisher backing, or a breakaway hit, picking an automatch based solution is not your best bet and shouldn't be your only mode of matchmaking. Ideally your game should allow for some turn based form of game play, so you can play asynchronously. That model has worked great for games like Words With Friends.
You need a server, you gameclient will contact it to get assigned to a partner. This is call matchmaking (google it to learn more).
I think there are OpenSource solutions (or at least frameworks) for this. But I don't know them. I know however Exit Games Neutron and Photon and I think there are free licenses for private / educational use.

Live streaming video latency

Trying to determine what's "most" responsible for latency - the round trip my video makes from my encoder, to my server, and back down to the player in my browser.
I'm at about 12 seconds right now with a player I like. Is it buffering in my player? Buffering on the way out by FMLE?
The reason I ask is I feel I've eliminated other culprits with my little test scenario outlined below. And also, all else equal, swapping other players in produces the greatest variance in the latency. One takes it down to 4 seconds. Can't get any lower than that though.
Eliminating other culprits:
-Bad network? Nope, running it all locally.
-The codec?, Nope, setting FMLE to VP6 or H.264 produces same latency.
-Pushing too much data out of FMLE? Nope, 50kbs or 1000kbs produces 12 seconds
-Framerate settings to intense? Nope, 5-29.97 fps changes effects motion quality but delay stays around 12 seconds.
I'm developing a small FMS based web presentation package so the latency will have to be down to a second at most. I've seen a similar package with almost no latency. Here's my test set up:
-Camera connected to Windows XP machine
-Flash Media Live Encoder 3.0.1
-FLash Media Server 3.51
-Video Player - Sample dynamic streaming player in Adobe Flash Media Server productivity tools (kind of like a reference implementation for Adobe's ActionScript 3.0 Dynamic Streaming Class)
If I bounce my video off a server about 30 miles from me the result is nearly identical.
I ran a test with a CDN and a player they provided and the best I could do was 4 seconds.
Does anybody have a really fast player I can test?
To make low latency web stream, do the following:
Setup your encoder normally and point it to the media server
Check media server edge configuration for low latency configuration, Wowza has low latency app built-in
In your player, make sure your buffer is 2 second or larger.
ps. With player having buffer less than 2 second it will not work properly for most people, especially over wifi or long range links.
ps2. If your encoder is on the same LAN as Encoder, you can use low latency app for origin application as well.
ps3. You will never go below 4 seconds and reliable stream at the same time, but if you will do extreme tuning on your LAN part (no buffering for encoder at all - you can do it), by just using buffering on edge you can archive 2 seconds - I have such player but it's not public :(
I would like to share my experience since recently I have been researching into this world of CDN and live video streaming.
My best result has been 2 seconds latency.
I have tried a few providers and I would like to know if anyone knows of any other provider that gets to that low latency.
I achieved those 2 seconds with The Original Livestream, do not confuse with The New Livestream (16 seconds latency).
Both, The Original Livestream and The New Livestream, are part of the same group, Livestream, but it seems they target a different market segment.
They also told me that although they area still supporting The Original Livestrean, they are not longer developing it.
It is not very reassuring when they tell you that they not longer develop the platform, this is the only reason for which we have decided not to get on board with them. You will also have a hard time when you try to get support from them if you want to get access to their RESTfull endpoint for the Guide API.
Still, 2 seconds latency.
I am based in London by the way.
Please let me know if you have some other ultra low latency CDN.
Ah, the url for the original livestream is not easy to find, here it is... https://secure.livestream.com/
Take a look at NetStream.setBufferTime() and ns.bufferTime in the FMS documentation. Also like Robert mentioned the player has its buffer too.