Untitled Progress

Started by Sandcrawler, January 10, 2012, 03:40:26 PM

Previous topic - Next topic


Over the past two weeks I have been working on Untitled Beta 3, there have been several issues with the Online Leaderboards (the very reason I have delayed it until Beta 3). As I have mentioned in the past my Ludum Dare 22 entry Alone In Space, has an online leaderboard, and I have been using that to determine the best possible way to have a Leadboard for Untitled.

The problem is there is no way to securely send data from Contruct to the internet. In Alone In Space... when you submit your highscore you ping a simi-hidden webpage with your username, score, and win or lose. To discover the webpage all you have to do is watch the packets on your network, and it will point you right to the page, where you can set your own score.

My first solution was to have a key, that the game knows, and the website knows. but the problem with this is the key is static, so once you know the key (you would see it when you saw what packets were sent) then you can once again put in any score.

The next obvious solution is to make the key change, every so often. The problem doing it this way is that you can't have the key change even once a minute, because the client (that you download) and the webserver are not necessarily on the same time. Once every ten minutes works, but we still have the same problem as above, once you have the key, its good for ten minutes or so.

The solution, well there isn't one, regardless of what I do there is no way to stop you from setting your own score if you are determined to. That doesn't mean the idea listed above are not worth implementing, I will be using the rolling key change method.

In addition there will be a system in place that calculates the highest possible score, for the level you submit, and ensures that your score is below that maximum.

Once this is all implemented, then I'll be looking over Untitled as a whole, and polishing anything I find that is lacking. Then I will release Beta 3.