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.

