Android :: Game Performance Degrading Over Time
Nov 14, 2010
I've written a game and I've noticed that after playing for about 20-30 minutes the performance starts degrading. By performance degradation I mean my average frames-per-second seem to slowly drop. I'm doing all my allocs at the beginning and the only things that alloc in game according to DDMS are Integer.toString operations (for integer values I need to draw with drawtext) and setBounds on some drawables.
I'm calling System.gc() periodically, when I know not much is going on in-game (e.g. between waves of enemies). I'm doing this in order to avoid GC from happening during critical gameplay periods. If you know the answer to any of the following, please do tell (even a guess would do) Why is performance degrading with time? What could be causing this? Is there a way to avoid allocs due to Integer.toString and Drawable.setBounds calls?
View 16 Replies
Sep 16, 2009
I want to make a tile based game for android. At the moment I am drawing each tile as a separate bitmap. I have a big for loop that reads from a string and draws different tiles depending on what character it finds to draw the level. I have allowed the user to scroll the screen using scrolling gestures. However the game is too slow. It takes a long time to update the screen after the user scrolls. I presume this is because it has to draw each tile's bitmap individually. What would be a faster way to draw the level? I was thinking I could merge all the tiles into one bitmap. But I don't know how to do this.
Anyway here is my code so you can see the problem:
package org.example.tutorial2d;
import android.app.Activity;
import android.os.Bundle;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.OnGestureListener;
import org.example.tutorial2d.Panel;
public class Tutorial2D extends Activity implements OnGestureListener {
GestureDetector gestureScanner; Panel main;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gestureScanner = new GestureDetector(this);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
main = new Panel(this); setContentView(main); }
@Override public boolean onTouchEvent(MotionEvent me) {
return gestureScanner.onTouchEvent(me); }
@Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
main.handleScroll(distanceX,distanceY); return true; }
@Override public boolean onDown(MotionEvent e) { return true;
} @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { return true;
} @Override public void onLongPress(MotionEvent e){
} @Override public void onShowPress(MotionEvent e) {
} @Override public boolean onSingleTapUp(MotionEvent e) { return true; } }
And the class that does all the work:
package org.example.tutorial2d;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.View;
import org.example.tutorial2d.Point;
public class Panel extends View {
private int scrollX = 0; private int scrollY = 0;
public Panel(Context context) { super(context);
} @Override public void onDraw(Canvas canvas) {
/*Bitmap scratch; //Drawable scratch;
//scratch = getContext().getResources().getDrawable(
// R.drawable.icon); canvas.drawColor(Color.BLACK);
//scratch.draw(canvas); int origin = 0;
scratch = BitmapFactory.decodeResource(getResources(), R.drawable.horizontal5);
canvas.drawBitmap(scratch, origin, origin, null);
int width = scratch.getWidth(); int height = scratch.getHeight();
scratch = BitmapFactory.decodeResource(getResources(), R.drawable.room4entrynesw3x3);
canvas.drawBitmap(scratch, origin + width, origin - 32, null);
[Code]
View 3 Replies
View Related
Nov 9, 2010
Lot of people are saying that the Samsung Galaxy S has a better graphics processor than the DHD so it's better for gaming. I was wondering if anyone has tried any of the Gameloft HD games on the DHD yet, or the Playstation emulator?
View 19 Replies
View Related
Oct 28, 2010
Does anyone have an APK for game time. For some reason I cant get it from appbrain/android market but worked fine last year?
View 1 Replies
View Related
Jul 9, 2010
Anyone else noticed a degradation in the camera quality? After I bought the HTC desire a month ago, I took a few photos in sunny midday daylight with default settings which looked beautiful, probably the best camera phone quality Ive ever seen. But over the course of a month I've noticed an overall desaturation and overly bright photos taken in the same lighting conditions as the originals. In fact, scrolling through the camera shots folder, you can see the quality diminishing as you scroll towards more recent pics.
View 9 Replies
View Related
Apr 17, 2010
Does NBA game time not work on 2.1? I cannot find it in the market I've scanned a couple QR codes I've found on the internet and it comes up not found in the market. Really want to listen to the Bulls Cavs game today since I won't be near a TV.
View 6 Replies
View Related
Jan 14, 2010
What is most efficient way of keeping a check on time within a game thread? Currently I create a new Date() when the game starts and was thinking of creating another Date() within the game thread and comparing it with the first one. But with a screen refreshing at around 60fps (hence a new date object each time), I can't help thinking this is rather inefficient. What other ways are there of doing this?
View 8 Replies
View Related
Jun 4, 2010
So I've been struggling with this and I am not sure why because it should be simple, but for some reason I just can not get my head around it !!
I am developing a game and when the user saves their game, I write out the last time I checked their stats using System.currentTimeMillis(). Then when they load in the game I want to see how many total seconds have elapsed since it was last saved. Naturally I thought of getting System.currentTimeMillis() and then deducting my saved value and then converting that into seconds using this :=
long timePassed = System.currentTimeMillis() - lastCheck; int seconds = (int) ((timePassed / 1000) % 60);
But on each load the seconds keep altering, but not within the right bounds. For example on one load it comes as 59 seconds, then it showed 23 seconds etc. Obviously my algorithm is slightly wonky but I can't work out why.
Could some one please elaborate where I am going?
View 4 Replies
View Related
Feb 7, 2010
I want to optimize my game and remove the stuttering. Is there a way to measure the time-consumings of all my functions in the game without having to change all my functions?
View 3 Replies
View Related
May 23, 2010
I'm looking into writing an Android game, tough I don't curerntly own an Android device. For those of you who own a device, how does the performance on the emulator relate to real device performance? I'm especially interested in graphics related tasks.This obviously depends on both the machine running the emulator, and the specific device in question, but I'm talking rough numbers here.This question is a duplicate, but since that post is heavily outdated, I figured it's irrelevant by now.
View 3 Replies
View Related
Jul 13, 2010
CREDIT TO GOODANDEVO.NET. u'll be redirected to the EVO-optimized site where you'll see a limited offer to get Let's Golf at no cost if you download the company's HD games bookmark, which can be uninstalled with no consequence after you get the game. As with all of Gameloft's HD games, Let's Golf usually costs a penny shy of . The game can't be transferred to another device or reinstalled (even if it's backed up), so don't uninstall it or do a hard reset unless you want to contact Gameloft to see if you can get it again.It isn't clear how much longer the free game will be available, so get it now! o download go to the gameloft.com site on your evo using ou default browser.
View 49 Replies
View Related
Mar 24, 2010
Alright I have 3 more Google Voice invites. Of course they aren't free! I have 3 numbers in my head between 1-20. Each person only gets 1 guess for the first hour. If all 3 are not taken in that first hour then everyone can guess until they get it. My girlfriend has posted the correct numbers somewhere in this forum, so that everyone knows I'm not just making up numbers.
View 43 Replies
View Related
Feb 20, 2010
Motorola CLIQ Over-the-Air Update
[Retail Partner Sales - T-Mobile Employees and Authorized Dealers]
February 19 Update
The over-the-air update for the Motorola CLIQ has been delayed to the week of February 22. An updated article will be available once a date has been determined.
On February 18, Motorola will begin sending over-the-air (OTA) software updates to Motorola CLIQ customers. The software update will improve device performance and resolve several known issues.
Improved Performance:
Improved battery life
Improved software performance and stability
Improved widget response
Decreased Force Close error messages
New Manage SIM Card application
Support of .WMA and .WAV media files
Removal of the imeem mobile application
Known Issues Resolved:
Accessories & Bluetooth
Error: 'Unable to pair' or 'Unable to connect to device'
Call functions
Can activate other functions while listening to visual voicemail
Call not ended by pressing the End key
Speakerphone turns on unexpectedly when answer incoming call
Plays ringtone or vibrates while on an active call
Unable to answer incoming call using �Slide to answer� feature
Accidentally opens Dialer or makes outbound while holding device
Device hardware (battery, keys, power, screen)
Battery indicator may not display accurate battery power
Call not eded by pressing the End key
Touch screen issues
Cannot answer incoming call using the Slide to answer feature
Incorrect keys registered using on-screen keyboard
Touch display appears to have �dead spots� that are unresponsive
Accidentally selects item when trying to flick through screens or menus
Messaging
Wrong message deleted
Phone may reset when turning Wi-Fi off in area with no Wi-Fi coverage
Customers can manually download the OTA on demand by going to Settings > About Phone > System Updates. Customers do not need to wait for a notification message to download.
Action Steps
Be aware of the fixes and enhancements included in the Motorola CLIQ update.
If customers are experiencing any Known Issue that will be resolved by the software update:
Do not file a handset exchange
Advise customers that the issue will be resolved by a software update on February 18.
Important Rebate Changes
[Retail Partner Sales - T-Mobile Employees and Authorized Dealers]
Customers eligible for rebates as part of new activations or upgrades must be advised they will receive their rebates in the form of a prepaid Visa card.
When customers take advantage of our new Early Upgrade or Early Upgrade Plus options, they are not eligible for upgrade rebate cards. These new upgrade options allow customers to take advantage of upgrades sooner and provide an instant discount, instead of having to wait for rebate cards.
To be eligible for an upgrade rebate card, customers must meet upgrade eligibility requirements.
Current, 1-year contracts: 11 or more active months since last discounted handset purchase.
Current, 2-year contracts: 22 or more active months since last discounted handset purchase.
Rebates on eligible purchases require contract extensions and a $9.99 or higher Data/Messaging feature.
Valid only on FlexPay plans with 1 or 2-year contracts.
Not valid for Even More Plus plans.
Active Months: The number of months in which the account has been in good standing and during which service has not been suspended.
Action Steps
Inform customers that Early Upgrade and Early Upgrade Plus are not eligible for upgrade rebate cards.
Advise customers eligible for rebates that they will receive their rebates in the form of a prepaid Visa card.
"With the purchase of your new handset, you can submit a rebate form to receive your rebate. The rebate will be in the form of a prepaid Visa card that can be used anywhere Visa is accepted. See the rebate form for additional details."
Trackball Replacement Program
[Retail Partner Sales - T-Mobile Employees and Authorized Dealers]
On February 24, T-Mobile will launch a Trackball Replacement program for BlackBerry Pearl 8100/8120 and BlackBerry Curve 8320 customers that are having trackball issues. This program will be available in T-Mobile retail stores only at this time.
Action Step
Refer customers to a T-Mobile retail store after February 24 for further assistance if they come in to your location looking to complete a trackball replacement.
First Connect for Dealers
[Retail Partner Sales]
First Connect for Dealers is an exciting class designed to help on-board and prepare Retail Partners to successfully sell T-Mobile products and services and provide differentiated customer experiences. This four hour class is conducted via the T-Mobile Live Virtual Classroom and covers the following:
Welcome to T-Mobile
Who is T-Mobile?
PCC
Differentiated Handsets
Differentiated Rate Plans
Service Excellence / Selling Skills
Tools and Resources
Customer On-Boarding
The attached flyer contains dates and times for these calls as well as registration details. ADRs should educate their locations about these calls and encourage them to attend.
To successfully be able to attend the training sessions, Retail Partners should have the following:
Computers with high speed Internet connections
The ability to play and hear video segments on the computer using speakers or headset
The use of a fully charged mobile phone to hear the audio portion of the conference call
Printer access to print Participant Workbook.
Action Steps
Share the attached flyer with your locations and encourage them to attend one of the scheduled calls.
View 1 Replies
View Related
May 22, 2010
I have a square grid, for a turn based game ( grid is similar to the chess board ), but the moves in the games are different based on whether you have lapped your opponent pawn at least once or not.i.e if you have not lapped (beaten any of the opponents pawns) in the outer most grid as below.if you have lapped your opponent pawn once at least, then you get to reach home,this way.Any player having all his pawns reaching "home" first wins.The ones in yellow are safe-houses, i.e both the opponent pawn and the player's pawn get to stay in the same grid, this is not considered to be lapping ( the opponent ).The lapped pawn will return to its start point.Now the question is, what is the effective way to store the paths for the all the pawns.we will have 4 pawns for the player and 4 opponent pawns.Is there any pattern to store such static information, in a elegant way?
View 1 Replies
View Related
Nov 12, 2010
I have a puzzle game with a 7x7 grid of graphics, and a timer, its just about ready to go. But I am stuck on how to go about saving/continuing game. For example when someone exits I want them to be able to save and exit, then come back and click continue to pick up where they left off with all of the graphics in the right place, timer and score. I looked at onSaveInstanceState android examples, but not sure if this is what I need or how to implement it in my case.
View 8 Replies
View Related
May 29, 2009
My calls to getFromLocationName() always fail the "first" time I start my app. I catch the IOException which has reason:
Unable to parse response from server
Then I make a second call and it succeeds. Once things are "awake" all future calls to getFromLocationName() succeed, it's just that first one, and there is a ton of latency.
I haven't run this on a device yet, just in the emulator. This seems like a network problem, but it is so reproducible I'm thinking I'm not initializing something properly. I'm using Android SDK 1.1.
View 2 Replies
View Related
Aug 29, 2010
How can I make progress bar to measure time (pause/playing/total time) of different video which is streaming from website?
View 2 Replies
View Related
Nov 1, 2010
I am getting a date/time string from web in the format of "yyyy/mm/dd'T'HH:MM:SS'Z'" and it is in UTC. Now i have to identify the current time zone of device and then convert this time to my local time. (FYI, Currently, UTC time is 10:25 AM, in india current time is 3:55 PM)
View 1 Replies
View Related
Aug 25, 2009
at the moment I am thinking about a new app and need some information to decide whether to develop on Android or an alternative OS. I am particularly interested in "time to first screen", "boot-up time", "time to first Audio" and "app-start" (can be any from the android market or even one of the pre-installed ones) time? Does anyone know a source or perhaps measured those numbers?
View 9 Replies
View Related
Jul 12, 2009
I want to develop a game, so I need to know elapsed time at lots places in my game. For example, to measuring FPS. I see there is some example use "System.currentTimeMillis" to measure elapsed time. But I see the warning on document: http://developer.android.com/intl/zh-TW/reference/java/lang/System.ht... "This method shouldn't be used for measuring timeouts or other elapsed time measurements, as changing the system time can affect the results." So, if this method should not be used for measuring elapsed time, then what will be suitable?
View 2 Replies
View Related
Nov 11, 2010
So I wanted some DigitalClock help. I have set up a digitalclock, and here's what I want to do. Once the clock hit's a certain time, perform an action. How can I control the actions on the digital time to check for a certain time?
View 2 Replies
View Related
May 17, 2010
Is there any android widget that enable to pick the date and the time at the same time ? I already use the basic date picker and date picker:
http://developer.android.com/guide/tutorials/views/hello-timepicker.html
http://developer.android.com/guide/tutorials/views/hello-datepicker.html
but they are not that sexy and user friendly (I found). Do you know if a widget including both date and time exists? Thanks a lot,WW.
View 1 Replies
View Related
Oct 1, 2010
I'm searching for time and billing apps. I've tried Time Catcher, myTimeSheet, and Time Recording. None of these allows start and stop of clock for multiple entries throughout the day. Any tips for better time sheet apps?
View 1 Replies
View Related
Aug 17, 2010
I am trying to get a local time from a server UTC time. I get the UTC time form the server -- and i want to make it right for each individual Android phone whether it be in California or China. This is the code I am using now -- however it snot working.The time I get from the server is "2010-08-17 19:41:13.0" And the code I use to get the difference(in seconds) is the following: public static long getSecondsDifference(Timestamp timeStamp) { final Calendar calendar = Calendar. get Instance (Locale.getDefault()); int refrenceOffset = TimeZone. get Default (). getOffset(timeStamp.getTime()); final long referenceSeconds = (timeStamp. get Time() + refrenceOffset) / 1000; final long currentTimeSeconds = (calendar. getTimeIn Millis()) / 1000; final long differenceMinutes = (currentTimeSeconds - referenceSeconds) / 60; return differenceMinutes; The timestamp is from the java.sql.timestamp package.Right now the time where I am is 11:50AM -- and the method returns that the given server time is -53 minutes ago( so obviously doing something wrong
View 1 Replies
View Related
Jan 14, 2010
Is there a way to get the time or date stamp of the last time the GPS was updated?
View 6 Replies
View Related
Oct 16, 2010
I got Samsung Galaxy 5.
I got some gameloft games (HD versions) installed but as I Run them only Top left (approx 1/4)view of game screen appers.
As whole game can not to fitted on one screen..
|--------------------|
| |
| |
| |
|Gamel |
| |
|--------------------
It looks like half of screen is cut like on "oft" of Gameloft is invisible
View 3 Replies
View Related
Aug 16, 2010
I deleted all battery monitoring apps and stopped looking at the battery usage info 50 times a day. I did this over one week ago, and couldn't be happier. No more looking at that god awful percentage meter, no more watching in dismay as it drops, and drops, and drops. My battery performance has never been better now that I quite looking at it all day and my sanity has slowly begun to return.
View 5 Replies
View Related
Dec 4, 2009
We acquired a Samsung Moment today, and find that it's 3D performance is very poor compared to the HTC and Motorola devices. I've tried all the tricks I know (color depths, rendering options), but can't get much out of it. Rotating a single textured quad is jerky. I understand that the Galaxy was missing a software component, and that once a surrogate was added, the 3D performance was acceptable. Does anybody have the real low-down on this issue? Specifically: * Do others also find the Moment to be a poor 3D performer? * Is there any word about Samsung fixing this? * Am I missing something obvious?
View 6 Replies
View Related
Jun 19, 2010
I've been trying VBOs (3D) and I've seen no improvement at all on my Motorola Dext over not using VBOs.I've tried all kinds of configurations, interleaved arrays, by t buffers instead of float buffers, both direct and indirect. My question is, has anybody got any measured improvement in frames per second by using VBOs instead of exactly the same content without VBOs? If and only if so, what were your fps results? And can you therefore show me the "proper" way of doing VBOs instead of not? Has anybody else got exactly the same fps with and without VBOs?
View 8 Replies
View Related
Sep 6, 2010
My experience is that loading websites in a WebView is much slower than performing the same actions in the Android Web Browser. I can see that all files have been loaded in my Apache log, it will take a few seconds until the page is displayed in the WebView control, however. Opening the same page in the native Web browser will result in an immediate display. It seems that rendering is somehow crippled.Which browser settings do we have to apply in order to achieve the same performance as loading the page in the native web browser?
View 1 Replies
View Related