Wednesday, December 22, 2010

Contracts

A new version was released tonight, the biggest change being Contracts. Users can take out a contract at a specific location.  They can get to that location by clicking on a map, or by entering a address/location name.

Once a contract has been taken out, anyone that places a bomb near the contract point will get a bonus.

Some back-end work needs to be done with this (news, points for who placed it when the contract is fulfilled, etc).  Contracts have always been in the base system, just not directly available on the Android app - "Missions" are just contracts that are auto-gen'd.

App install count has gone to around 7,800. 10k just around the corner!

Friday, December 3, 2010

67k

Working on a movie of the bombs going off... so had to D/L some data.  Noticed that as of this afternoon, 67,082 bombs have been placed. Cool!

Saturday, November 27, 2010

Thursday, November 4, 2010

2315

Up to 2,315 installs.  Not bad, for about two weeks on the marketplace!

Players can now hook up to Facebook. FB is fairly annoying, in that they are limiting to 10 posts per user.  That will increase over time, but for a new app, that's it.

Thursday, October 21, 2010

First day

Market Place #'s came out a bit ago - PhoneBomber was installed 756 times since around 1:30 AM.  Pretty good! 

Some performance issues on the server - the users aren't seeing it, as AppEngine scales up just fine, but it's eating CPU cycles.

Wednesday, October 20, 2010

...

Huh.  16 users playing in about 10 mins...

Live!

Beta 1 is in the Marketplace.  I pretty much finished up last weekend, and was going to release this coming weekend... but decided I might as well move it.  The only big outstanding I have on this version is Facebook integration.

Give it a try!

Tuesday, October 19, 2010

Tweet!

The first PhoneBomber tweet went out this evening.  I have OAuth working inside of the PhoneBomber app, and the server can now tweet for a user (place bomb, disarm bomb, take damage, and when killed).  The user can choose which of the above to tweet.

Seems to work pretty well. Ending up having to do OAutho on both Android (java) and AppEngine (python), which kinda of sucked.  Wishing for the old days of VERY simple login!

Sunday, September 19, 2010

PhoneBomber Version Alpha 5 available

Lots of changes on this one.  The only issues I have on my V1-todo are Better Logo, flush out bomb selection, and game play.  So doing pretty good :)

I'm going to have my 4 alpha users hit this for a couple of days.  If that goes well, it will go into Alpha 1 with more users.

I've would like to get the iPhone version done, and am looking at the Windows Phone 7 platform - it's WPF/C#, so I should be able to get something done there pretty quick (doubly so as I already have the back end written, for my tester app, as a WinForm C# .Net App)

Changes 9/11/2010
Alpha .5
- SAX (performance should be better)
- Improved reverse geocode (Using Bing)
- Show local time (was GMT)
- All news now showing
- Countdown times showing seconds
- Enter stats lines now clickable for stats leveling on user tab. Also did bigger, better graphic
- Logoff user now verifies that they really want to.
- Map of user bombs off of main tab.
- Clicking on news icon will now give details, with map
- On distance too far, showing better info.
- Place totals on user (Total Bombs Placed/Exploded, Total people injured/killed, etc)
- Fix death on explode (seem to be getting 1 HP on return, need to show 0)
- On Computer spawn, match both level AND location.
- Reduce disarm to 150 meters
- "Far" is now 50 miles
- Show map on Combo Place and Disarm (no move)
- Home screen - now showing system news.
- On My Bombs, show damage bomb did, details, etc (popup)
- Improve signup screen
- Must be within 150 meters of bomb to disarm.

Saturday, September 18, 2010

Heading to Beta1

Lots of cleanup, with some new function added.  Users can now request missions.  When they get them, they'll need to get within 200 meters and place a bomb. If it blows that close, they'll get a extra bonus for taking out the contract.

I tried it for real - request 5.  1 was about 4 blocks from my house, so drove over.  Had some problems getting close enough.  Drove back and forth a few times, to get close to area.  For a while I thought I was going to have to wander into someones front yard... which wouldn't have been good.

Anyway, finally got it - had a lot of fun doing it:)

May increase the distance to be in range, so you just need to get in the general vicinity to get it.

Going to ship this out to a few testers this weekend.  If it goes well, I'll post over on XDA to get some more on it.

I will likely, beyond bug and game balance fixes, be putting the facebook and twitter feeds in next.


Beta 1
 - Request Missions
 - SAX (performance?)
 - Improved reverse geocode (Using bing)
 - Show local time (was GMT)
 - All news now showing
 - Countdown times showing seconds
 - Enter stats lines now clickable for stats leveling on user tab. Also did bigger, better graphic
 - Logoff user now verifies.
 - Map of user bombs off of main tab.
 - Clicking on news icon will now give details, with map
 - On distance too far, showing better info.
 - Return bomb on disarm message, for detailed info
 - Place totals on user (Total Bombs Placed/Exploded, Total people injured/killed, etc)
 - Fix death on explode (seem to be getting 1 HP on return, need to show 0)
 - On Computer spawn, match both level AND location.
 - Do full bomb list (now available to level 1000)
 - Reduce disarm to 150 meters
 - "Far" is now 50 miles
 - On distance too far, showing better info.
 - Show map on Combo Place and Disarm
 - Home screen - now showing system news.
 - On My Bombs, show damage bomb did, details, etc (popup)
 - Improve signup screen
 - Base Stamina to disarm on bomb stamina required (new bomb/placed bomb fields)
 - Show current location on map on contracts and disarm map (and update) (so you can walk towards the bomb and see it on the map)
 - Help
 - Top Players list (off of users)

Friday, September 17, 2010

Clearing Info

Work has been VERY busy the last couple of months, so haven't had a chance to work on PhoneBomber at all.  Going to do some head-down work this weekend, and try to get beta one ready to go.

Going to be doing a purge of alpha bomb info (keeping user info for now).


Here's the last status map:

Friday, August 27, 2010

GPSCheat!

I've been VERY distracted by a tool I decided to write (working name was SmartLocation, current release name is GPSCheat!).  As testers played PB game, I want to be able to be near them to play around where they were at.  There's some fake-GPS apps out there, but not very well done and a pain to use.

The biggest thing was having to keep re-enter locs.  GPSCheat lets you add a (named) loc to a list, and then you can just click to go back.  Also helps a bit with getting the user setup (still a pain, but at least guides you through the process)

Main site is at http://www.gpscheat.com

It's out on the Market Place, selling for $1.29 (Woot! Got an actual released app on now, Finally!  Just wish it has PB :)

GPSCheat! - V1.3

Changes for V1.3:
  • Address Look-up.  This allows the user to request the lat/lon for a specific address (zip, street/city/state, well know location, whatever).  Will set the pop-up map to that location, and then can click to adjust.  This is the biggest enhancment for 1.3 - should be VERY handy!
  • Fix for menu/back resetting spinner to none  (I was looking for key events, and on ANY (for lat/lon) was setting the current location to none.  So if one was selected and the back key was pressed, it gets a special key event - which I am now ignoring, as far as spinner processing goes. )
  • On non-user GPS locations, truncate to 4 decimal places (map click and address lookup).  4 is very accurate - and fits better on the entry fields (doubt many people would want it out to 8...)
  • Better error handling
Probably not going to mess with this for a while, unless a major bug is found.  14 have sold since it went up 5 days ago

Wednesday, July 28, 2010

Next Alpha

Just some quick updates tonight.


Changes - 7/29/2010

Alpha .4


- After login,  the loc engine wasn't started.  It is now
- Correctly update stats on user page (X/Y - slash was missing)
- Threading stat update - buttons grey out while stats update request is in process.
- Computer players were placing bombs to be disarmed - but they were not blowing up.  That limit has been turned off.-
- Duplicate players can't be created (based on e-mail)

Sunday, July 25, 2010

Update .3

Release Alpha .3
- Reverse Geo-code working. Should put something helpful for "Location Name" on place bomb
- Convert toast when bomb explode seconds to time (+ warning if level 10+)
- Clicking on the near tab will force a refresh of near list
- Showing location name in near list
- Fixed Injured stats for user
- Add cached update of exploded bombs, for Google Maps - Updates every 6 hours
- Keep track of if a bomb blows or is disarmed, and if blown what kill/injury it did.
- On Google map, diff icons for blown vs disarmed (and give stats for both)

Saturday, July 24, 2010

Leveling

Been working on leveling a bit. The below is the current leveling points, by level. I want the first few levels to be very easy, then it needs to get harder. I want to tie this to if the player correctly places stats, they can keep just behind or at the level point daily.

Friday, July 23, 2010

Live Google Maps!

http://www.phonebomber.com now contains some Google maps.  I wrote something last night to generate KML for active and inactive bombs.



The inactive bombs (because of the number) will be generated nightly.  The Active Bombs are live bombs - as soon as a user places one, if they go to the web page they'll see it placed.

Tuesday, July 20, 2010

PhoneBomber - Alpha 2

Making great progress!  The trip to Michigan was ok, but I (while developing in the emulator) had only been doing real GPS, not "Coarse" (e.g., cell phone tower triangulation, know wifi-location, etc) so it was only working outside with a clear view. Both Paul and I played, but it was limited

Last weekend I ripped apart the GPS code.  Now doing whatever GPS the phone can get at any given time. Each activity that needed GPS was doing it's own GPS notification logic.  Changed it so only the main activity is getting location, and the rest feed off of that.

Also got mapping working.  Now that it's up, I realized I needed a screen to show all the USERS bomb, regardless of location (both in a list and on a map).  Maybe show both current and exploded bombs. Good way to keep track of the mayhem you've been up to :)

Here's the change log for this version:

- GPS Fix - now doing both real GPS and triangulation
- GPS Overhead reduction (only one Activity does GPS)
- When app is hidden (not on top, or phone suspended), it won't ask for GPS updates (no battery burn)
- Defuse now will update list of near bombs screen, if a bomb is disarmed or it blows up.
- Stamina updated on Disarm screen
- Level screen now dialog (and only shows once)
- Increased size of + buttons on user screen (for leveling)
- Disarming now costs, in stamina, the level of the bomb
- Placing a bomb will give exp that is equal to the level of the bomb
- You must now be within 1000 meters to disarm a bomb
- If your level is below the bombs level, increased chance of the bomb randomly exploding
- Reduce chance of creating computer player (and placing a bomb) - was every time but now 1 in 10
- If a computer player is created, only ONE will spawn (and will place one bomb)
- On computer player spawn, will re-use any computer players around you.
- On Users screen, plus's bigger, with some space between them.
- Maps work!

Monday, July 5, 2010

Playing!

Some more milestones hit tonight.  The GF came over for dinner and played a bit.  She was the first non-dev to: place a bomb, disarm a bomb, get blown up by a bomb (both on a disarm and one I had placed earlier in the day), and the first non dev death.  Way to go, B!!!

I also, for the first time, took the Nexus One out and around to play. Worked GREAT - placed some at Startbucks, and Target (while B shopped).  Placed some bombs, and created a new account and played (blew up on a disarm of a high level bomb). 

Have some issues when no connection is available - need to add some null checks on middle-tier data returns of NULL.

Sunday, July 4, 2010

Screen shots

These are from the real cell phone (Nexus One).  I'm pretty happy with the top status bar - updates whenever you do anything (from server). I changed the Exp from current/total to a % (as that will fit, as the user levels the total will be a large number).  The 1027/50 is the stamina - and is wrong because I edited the user on the server to give them a lot of stamina (as I was testing).


Leveling is working, but for some reason the user is going to 87% of level when they level (d'oh!).  I also have to work on game balance - how quickly a player will normally level (total exp, exp doing stuff, and stamina).

Android!

So finally bought a Nexus One. Right now I've got a AT&T data only card - $19 for 100 MB. Using Wireless during dev, but this will let me get out and around and use the game. The AT&T guys were initially boggling over what I wanted (pre-paid SIM, data only, no minutes, no phone number). LOL.

I have also ordered a MicroSIM to SIM adapter, so I can also switch over my normal plan from my iPhone to the Nexus, if I need more than what I've got.

Debugging on the Nexus is GREAT! I've done cell phone dev in the distant past (MS's stuff), and it was a pain.

The interface is starting to look solid - actually GOOD in areas. Still need to do the home page and the user page (stats, handling leveling up, et al). It took me about 2 hours to go from Emulator-only to working on the real phone 100%. Most of it was buttons where I'd set the height instead of wrap_content. I think this was causing androids auto-resolution to mess up (as the nexus is a different res then I was developing against).

I'm heading to Michigan next week for vacation. Will take the Nexus along and place bombs as I go :)

Friday, June 11, 2010

Some milestones

Been working away. Get the COM down, and I'm getting used to write for the Android. Been moving slow, but hit some milestones tonight:

From the Android app:

- Placed a bomb (and had it go off, injuring the test player)
- Listed placed bombs
- Disarmed a bomb.
- Had a computer place a Small Nuke (still not sure WHY) - and had it go off while trying to Disarm (so first Nuke Explosion in the PB virtual world! :)

I've got a lot of cleanup to do (Screens mostly look nasty), need to do home screen, user stats and leveling area, and sign-up. I'm thinking I've got 40-80 hours more unit I could get some beta users on it.

I'd like to use it myself -looks like Android on the iPhone is questionable right now, so may go buy the dev phone or something...

Friday, May 28, 2010

Android and game play

So I've been annoyed at getting this running on the iPhone. While I love the iPhone, to do this I'm having to learn a new os, a new keyboard w(hich I'm about to break!), a new dev env, a new way of doing apps (on a phone) and a new language. Plus I'm off my uber-dev machine and on a single screen Macbook Prop. Parts of which I enjoy, but I have limited time and I want to get this running, so its driving me a bit crazy!

Sooooo.... It occurred to me to look at Android. Very cool - it's in java, which is a lot closer to c++ and c#, and dev tool of choice is Android - which is what I've been doing Google app engine stuff in (the back end for PB). So I'm already pretty comfy doing apps for Android :)

I've got the sdk and spent last weekend working on the comm. Which was a huge pain as XML support in Android sucks - but I can now list news for a user and list bombs the user has place. Very cool! Of course it's all running on the emulator, but it does work. I will likely get the new iPhone next month and jail break my old one and install Android so I an test and play the game. Hope i can get a min data play as I don't want to have to rely on wireless.

- Posted using BlogPress from my iPhone

Monday, May 3, 2010

Explode time

One issue I've been dealing with is driving actions in the game,specifically bombs blowing up. I was originally going to use a cron job, but the lowest time resolution it has it 1 minute. This obviously isn't fast enough. I started to look at using Tasks as a timer - do the task, which presses bombs and then starts a new task in 3 seconds or some such. Did work, but then it still had lag - and each task was taking too long if a bunch of bombs go off at one.

So instead I am using tasks to do each bomb - when a player places a bomb a task is created to run at the explode time. When it hits, if the bomb still hasn't gone off it will just process that bomb. Works great!

Monday, April 26, 2010

Backend V1 - Done?

So I think, after tonight, that the back end part of this has settled down.

I now pass back complex (plist) data on most calls - which usually includes the user info.  I was originally doing a double trip - for example, when a disarm attempt was made, the client would get back info about it - but then would have to get user info, to get sta/hp/exp info.  So that user info is now passed on most calls.  Kind of a pain - not to much change in the back end, but had to rip the tester a bit.

Leveling is in - user has minlevel/maxlevel, current exp, and level.  When Max is hit, the user info is updated.  They now have skill points, which can be spent on Sta/Defuse/Making

Regen is working - as the user makes calls, if more than a minute has passed since a stamina/hp update, that info is updated.  So if 5 minutes have gone by, the user regens 5 hp and 5 stamina (might be every 4 or something, but that's what I have for testing).  The client can also do a timer to update that info on the client - but the server is always in charge of what's "real".

Both leveling and regen happen pretty much whenever a validated user does anything... so for example they could be just mucking around with listing bombs - a bomb they placed a day ago goes off - and they'll see exp/level info updated the next time they do any action.

The only big thing I have left is bonus items and purchases.  I want the first version to have some kind of profit model (which has always been users purchasing virtual goods).  Eventually this will be things like buying power ups and the like for bombs, and special defusing items - but for the first version I very well may just let them buy bombs.  I will likely work that out once the iPhone client is done, as I don't understand the details of in-app purchases yet.

I'm still worried this isn't going to get past the Apple mods.  I want to get the basic iPhone client running ASAP so I can submit this sucker and see if I'm going to have something or not. VERY frustrating not knowing that.

If it's no go, then I'll likely be dropping my iPhone and moving my daily use and development to Android.

Saturday, April 10, 2010

Live!

Well, ok, not really - but I was able to deploy to the cloud and run my tester app against it - worked GREAT! Very fast, and no trouble (after I remembered to seed the test users and some bombs :)

One area I was somewhat worried about was the cron job, and the resources it will take. I am running it as quick as AppEngine lets me (once a minute).  I am going to assume that if no records are returned it will have very little quote-impact. If not, I'll have to take a look at that.

I'm very interested over all what performance and usage will be once I get a bunch of users on this - and what it will do to the quota...

I have the cron job running now - I placed some bombs and they've all gone off (wiping out my tester users!), so I'll be able to see what that looks like in DB/CPU usage over night.

REALLY Glad to have gotten this far with the back end. I feel like I'm working well with AppEngine now, and OK with Python.  I may be off on the GQL part of this (I think I may be doing too many refs), but am at least kinda getting the hang of it.

Wish I knew more Objective-C and had done more with the iPhone - only have a few hours of both at this point, so it's going to be a while before that part is done.

Progress

Have a LOT done on the back end right now.  My tester app is letting my two test users log in, place bombs, disarm bombs, and the cron job is blowing bombs up.  I've decided to NOT do the daily job thing - if Apple lets this thing through, I'll do it then.

I think the only big back-end pieces I have left are auto-updating HP/Stamina (e.g., user regains that to a point so I need to deal with it), correctly showing level based on exp, and dealing with leveling (how users can spend points)

I think they can spend points on Bomb Defuse Skill, Bomb Making Skill (or maybe get that from doing those), and then Stamina and HP.

I'll then start working on the iPhone part of this... which is a whole big project in and of itself (plus I'll have to learn a bunch).

Wednesday, March 31, 2010

Game Play

So I've gotten a lot of the basics down - really at the meat of the game now (the daily gameplay).

I think I've gotten it down to:

  1.  Users can try to make bombs.  
    1. This is based on their level - the higher the level, the more variations they can make.
    2. They will consume energy to build bombs.  They will get X energy per Y hours.  As they level, they will get more energy
    3. They will get various qualities - from the best possible of that type to not working.  So they could make a mid-level pipe bomb (e.g., 1/2 the max damage, or 1/4 the radius
    4. If they are able to make the bomb, they will get experience.
    5. [?] Higher level bombs will require lower level bombs.  For example, if they user wants to make a timer pipe bomb, they'll first need to have a basic pipe bomb.
  2. Users can place bombs
    1. When placing a bomb, they will use stamina.  They will get X stamina per Y hours.  As they level, they will get more stamina
    2. Placing a bomb will result it success, failure, or the bomb going off.  The bomb going off will be as normal (damage anyone around it, etc) but the want-to-be bomber will loose HP and get no exp.  Failure will be something like a Guard discovers them, etc., and they can just re-try.
    3. If they are able to place the bomb, they will get a small amount of experience.
    4. If the bomb goes off, they will get more experience and possible rewards.
  3. Users can disarm bombs
    1. When disarming, they will use stamina.  
    2. Disarming will result it total success, partial sucess, failure, or catastrophic failure.
      1. Success will give the disarmer experience and rewards.
      2. Partial will take X amount of HP off of the bomb (a bomb is disarmed when it hits 0 hitpoints).  Anyone who was able to take partial hitpoints off of a bomb will get a small amount of exp if the bomb is finally disarmed.
      3. Failure means they didn't affect the bomb
      4. Catastrophic failure means they made the bomb go off.  This will be just like the timer ran down - bomber gets full exp, disarmer gets damage along with anyone around them.
  4. Bombs can go off
    1. Whenever a bomb goes off, the user who placed the bomb will get exp and items.
    2. When the bomb goes off, anyone that had a last know location around the bomb will loose HP.
    3. If the bomb goes off on a disarm, the user trying to disarm will get extra damage
    4. If the bomb goes off when being placed, the user who tried to place it will get extra damage but no exp or items.  Users with a last know location will take damage.
    5. If the bomb goes off as part of a contract, the user who put the contract out may get a reward, and the bomber will get extra exp and items.
  5. Users can gain items.
    1. As users bomb and disarm, they will get items.  These items can help them make bombs, place bombs, or disarm bombs (e.g., a special pair of wire cutters that give a +2 to disarming).
    2. Users will be able to purchase special items.  These will help as in #1, or be special bombs.

Monday, March 29, 2010

Progress


So I've been working on a new location-aware app for a while now, which has the working title "Phone Bomber".

The basic idea is people can place bombs at locations, others can try to defuse them, and bombs blow up. It's essentially a virtual world mapped on the real one - users can place a virtual bomb at the McDonald's down the street, others can then see there' sa bomb there and try to defuse it. If the defuse works, those that participated in defusing get rewards. If the bomb blows, the bomber gets some points, and anyone that's within the blast radius takes a HP hit (even if not playing - if you last did something at that McDonald's and a nuke goes off, you are SOL :)).

This is all based on my previous work on AnnotatedEarth. I had a list of things I wanted to do on the platform, from dating to gaming. This is built on a more simple game I had planned on doing (and still will at some point)

I'm a bit worried about releasing it, from a controversy point of view - this IS a game - it's all virtual. No worse than any other game involving guns and war, etc. - but as it's mapped on the real world, I'm not exactly sure the reaction it will get... Also not sure if Apple will approve it. If they don't, I may do something (lame) like change bomb to "Fluffy bunny"  that throws stuffing up over a radius, if no one pets them before a timer runs out.  So basically the same game with different terms and graphics.  

I will also likely do a VERY graphically/UI simple version of the game up front, to get some friends using it - and to see what Apple does.

Anyway. I've been working on it off and on now for a couple of months. MOSTLY thinking about it, designing it in my head. I've also got some of the basic pieces working.

I'm using Google AppEngine for the back end. Using it's (wild) DB, and Python, to write a basic web service that can be hit. I'm new to both Python and AppEngine (along with its DB). Which is cool, I wanted to learn something new, but it's not going as quickly as if I'd done it in C#.

The basic web service is done at this point. I still need to flush out the actual game play, but these works:
  • Signup
  • Login
  • Get user info (name, last location, etc).
  • Create Bombs (admin function)
  • Place Bombs
  • Place Contracts (Drive-thru person piss you off? You can take a contact out on that Local McDonald's!)
  • List Bombs around a users location
  • List Contracts around a users location
Still to do (that I know of):
  • Defuse bomb
  • Defuse bomb for contract
  • cron job to trigger bombs when their timer hits zero (if not defused) + calculate who gets rewarded and who gets a HP hit.
  • Spawn Bombs
That last one, Spawn Bombs, is important I think. One of the huge problems location-aware apps run into is when someone uses the app in an area where no one else is using it - there's not a lot for them to do. In order to deal with this, if no bombs are within a certain distance (5 miles? 10?) the game will randomly place bombs when the user requesst a list around them. That is, if the user asks for a list of bombs and there isn't any, there will be a 1 in X chance of a the game creating a bomb (using a system account) that the user can interact with.

I will also likely have a  cron job that looks for bombs that no one but the placer is around - and randomly try to defuse them.

I will be hiding this from the user - when they try to do this, I very well may also create a local account (that will be re-used to place future system generated bombs) - it SHOULD look like others are playing. As more actually do, then the system bombs won't be generated.

As I'm also fairly new to iPhone development (my first target device), I decided to write a test app in .NET that hits the AppEngine app. This will allow me to test all the calls - AND fully test out the game play. Once all that's done, then I just need to write the iPhone app (which will mostly involve that platform, as the backend should be done).

Here's a screenshot of the test app:

Yes, it's one freakin' huge window, and complex. Again, this is just my test app. I wanted something that where I could see what was going on, adjust game balance, and easily test stuff.

I am hoping I will get the back end done in the next couple of weeks. Day job + SR is taking a lot of time :)

I have also tentatively named the new company "Location Play" (thus this blogs name).  I really didn't want it tangled up into RS (in either direction), and I'm planning on writing more than just this game, for location aware.  I'd actually like to do like Zynga - create a back-end template that can just be re-done a bit for new games, but are essentially the same.  e.g., do a bio-attack game that focuses around that (but essentially the same).  I think Location Play was a decent name, and fairly meaningful.