Nikolay,

First of all, kudos to a great game!  It's one of the few that I go back to
over and over again.

Back to your post:
Great ideas here!  Your online scores idea is great for decreasing the
amount of cheating to almost 0.  However it seems like it has a lot of
overhead to recreate someones game.  Maybe not.  I guess it just depends on
how much logic you have to go through to recreate the game.  And, in a lot
of games, this approach wouldn't work very well, or could become clunky.
 But, for you game it seems to be working great.

In regards to not showing the online scores in game, why not use a webview
on your activity to pull in a "mobile" formatted webpage with the scores?
 That's how I pull in the online scores for my app and, sure, it takes a few
seconds to load the webview into an activity, but it's something like 1
second for an activity to load versus 3-5 seconds for the activity with a
webview to load.  You also bypass having to dump out to the browser to do
this.

In regards to the social aspects you recently implemented (facebook,
etc.)...was that much work to do?  I've been thinking about adding these
types of features into my app as well.  I'm only at the exploratory phase
currently though.  I'm not entirely sure what all I'll be getting into
there.

Justin

On Tue, Mar 23, 2010 at 2:39 AM, Nikolay Ananiev <[email protected]>wrote:

> On Wed, Mar 17, 2010 at 2:08 AM, Kevin Duffey <[email protected]> wrote:
>
>> Hey all,
>>
>> I am curious how the various groups of game developers, primarily mobile
>> (android in this case) and cross-platform (android/iPhone/facebook) handle
>> storing high scores, achievements, and such as well as how multi player is
>> done.
>>
>
> How does your game(s) access high scores, update the list, remove them if
>> need be? The same would apply for achievements, and to a lesser degree,
>> leader boards.
>>
>
> Are you using a service out there that you pay for... if so how much does
>> it cost.. and do they provide some sort of java/objective-c SDK that you can
>> just plug in to your code?
>>
>> How do you dispaly high scores, leader boards, achievements, etc in your
>> game? Do you provide your own web site with the same info, perhaps jazzed up
>> a bit more or with more detail than your mobile game (due to limited screen
>> realestate for mobile devices)? Do you provide a link to a web site in your
>> game if they want to see things like high scores, achievements and leader
>> boards?
>>
>>
>
>
> My game has a custom view to show the high scores in the game. I didn't
> like the web browser approach, because it gets the player out of the game,
> completely changes the UI he is used to and the loading time is terrible.
> The user experience is really bad this way. I have two high scores in the
> game - local and online. The local high scores are stored in a SQLite
> database and the remote are in PostgresSQL. I also show the high scores on
> the website and on a Facebook application. The difference between the 3
> types: The in-game high scores do not support searching (I just don't have
> the visual space to put a search input field, which I want). The website
> ranking supports searching, but otherwise is the same like the in-game one.
> The Facebook one is interesting. If you log-in the game using facebook
> connect, your facebook id is saved and this allows me to show a specific
> ranking based on you and your facebook friends, show their pictures, link to
> their profiles and so on.
>
>
> How do I send the scores to the server? I don't. That's how I prevent
> cheating. What I do is to send the player moves to the server and the server
> replays the game using the player moves. Checks if every move is according
> to the game rules and validates the game. If the game is valid, the server
> just extracts the scores out of its state and saves them. There are no high
> scores send over the network.
>
>
>
> I would also like to know what sort of things are most important for your
>> games. High scores are so yesterday, so to speak. The latest craze in most
>> games seems to be achievements and the ability to obtain extra items for
>> your games, either by buying them, or earning them through achievements,
>> etc. So what are some things you game developers would want to make use of
>> in your game to add more appeal to your game, to draw in players for longer,
>> especially long enough to pass the 48 hour refund time so that you can
>> actually earn some money from your hard work. I look at games on Facebook
>> like Farmville that are doing so well they are hiring more developers at
>> good pay to work on it. I also look at games like World of Warcraft, which I
>> play and got sucked into for a while, due to getting to that next level or
>> getting that next awesome epic gear piece... those sorts of things seem to
>> be what draws in players to otherwise simple games. A number of mobile games
>> that seem to do very well often seem to be fairly simple games but offer
>> that right mix of "I just got to get to that next...". I am curious what
>> some of you developers have found work for games either those that you
>> played, or are working on (or have written) that draw in players. This leads
>> to the next paragraph.. making a living on game development ultimately
>> requires that your game does well and that people pay for it in some manner
>> and not refund it. Hence why I am trying to understand what it is that those
>> otherwise simple games seem to do that draw in the masses.
>>
>>
>
> I'm currently working on a real-time multiplayer. You will be able to play
> against other players from around the world. I will add an option for
> bluetooth challenges later. I'd like to add achievements, but that would be
> after the multiplayer.
>
>
>
>> Which brings about another topic.. how do games like Farmville make so
>> much money being free games, that they can have a company behind it? I can't
>> believe ads on the stie alone make up for all their revenue. I've been
>> considering looking at ads in the game as opposed to charging for it, and
>> that seems like players might keep a game longer than if they pay for it and
>> then refund it within 48 hours if they don't absolutely love the game...
>> although I am not entirely sure how much it annoys players to have a small
>> portion of the screen saved for ads as opposed to just buying it.
>>
>>
>
> Farmville makes little money from ads compared to the money they make from
> selling virtual goods. Last thing I remember was that they released a new
> flower and made $800,000 in a single day. And I personally hate ads. My game
> doesn't have ads and it's free.
>
>
>
>> Lastly, multi-player. I am curious how games work multi-player. The only
>> way I can think of is the client (game) has to update a server of some data,
>> a move, location of a sprite, etc, and at the same time has to poll the
>> server often enough to update the game screen to keep things working. The
>> first part of this, the game side, seems easy enough.. at least to some
>> degree.. when your player makes a move, you send a server request to some
>> server with the data, be it their new location, a weapon they selected, etc.
>> The second part of this is the client polling the server often enough, fast
>> enough, to keep things smoothly on the screen of all players. So how have
>> some of you handled this and yet keep the game playing smooth as well?
>> Probably more important is, the server side. Not necessarily the code bit of
>> it, but how do you handle if your game takes off and you get 10s of
>> thousands of players playing it... what sort of server side technology is
>> used to handle that many requests, that fast, fast enough to allow all those
>> game clients to provide a smooth game experience while keeping the
>> multi-player working solid as well?
>>
>> Thank you. I look forward to learning more about how these things are done
>> in games.
>>
>>
>
> Server polling is always a BAD idea for games, especially for real-time
> games. You have to go lower in the newtwork stack and directly use sockets.
> If you use low-level sockets you can keep the connection to the server
> opened all the time and this way you can push information and the server can
> push information back to you and there is no need for polling. That's how
> multiplayer gaming usually works.
>
>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>
> To unsubscribe from this group, send email to android-developers+
> unsubscribegooglegroups.com or reply to this email with the words "REMOVE
> ME" as the subject.
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

To unsubscribe from this group, send email to 
android-developers+unsubscribegooglegroups.com or reply to this email with the 
words "REMOVE ME" as the subject.

Reply via email to