Well, it's more expensive to use the web view, because all the html that you
transmit over the network is redundant and the server traffic cost goes up.
What I don't want to do is to pay to support a free game. That's why I made
my own binary protocol, which is very efficient - loads the data very fast
and the bandwidth cost is very low.
For example, last month I had only 4GB of traffic, which costs me $0.61 with
amazon aws.

Implementing the social features in Bebbled was not hard. The hard part was
to make the current facebook-connect library (
http://code.google.com/p/fbconnect-android/) work. It's not an official one
and it's a direct port of the iPhone version. It has many bugs and issues
with threading, but I managed somehow to make it work for me. I even
returned some patches to the maintainer, but he hasn't responded yet.

As for twitter, I didn't find a "Sign in with Twitter" library for android.
There's even no such library for iPhone. I created this from scratch using a
great OAuth client implementation (http://code.google.com/p/oauth-signpost/).
I'm thinking to release this code as an opensource project as soon as I have
the time.


On Tue, Mar 23, 2010 at 3:01 PM, Justin Giles <[email protected]> wrote:

> 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]<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