Tech Support tips for your game

  ... announce your new project or blog about the development of your project.

Tech Support tips for your game

Postby RealMayo » Thu Aug 15, 2013 3:36 am

Here are some useful tips when providing tech support for your game...

1) Provide a prominent button that the user can click to email you for help. This will help you avoid a lot of 1 star ratings because frustrated people will email you first and you will have a chance to fix their problem.

2) Pre-populate the subject line of the email to contain valuable information about the user's device. The primary reason for this is to determine if they have a crappy device :lol: Then in a worst case scenario you can ban that particular device from being able to download your game :twisted: You do the banning inside your Google Devleoper Console. This prevents other people with the same crappy device to download your game and potentially give you bad ratings because their device sucks, even though your game doesn't suck :roll:

3) Also make sure you check all of the customized crash reports that users send you. Log into your Google Developer Console, then go to "Crashes & ANRs", then click on one of the errors, then click on "User Messages". These are messages that users are able to send you when the game crashes.

4) Ban all crappy devices by going to your Google Developer Console, then choose your game, then click APK, then click "Manage excluded devices"

Of course there are many other things you can do regarding tech support and I encourage you all to post here any other tips you may have :)

Below is a list (WHICH I WILL UPDATE REGULARLY) that shows all of the crappy phones that I have banned so far. Note minSdkVersion="10" so I am not detecting any crappy phones with an API level less than that. Further note that all of these phones suffer from Out Of Memory errors when trying to launch my game.

The point I'm trying to make is that if you have a resource intensive game, you might want to preemptively ban these phones so that you don't get any 1 star ratings. Otherwise you can wait unitl you receive a support request from one of these phones and then just keep in mind that if you can't resolve the issues of that phone, then you likely can't resolve the issues of any of these other phones.

Btw here is a great link describing how forum member jgibbs wonderfully handles crappy devices...
http://forum.slipperysid.com/viewtopic.php?f=8&t=5292

Such errors these phones experience are...
1) java.lang.OutOfMemoryError in android.graphics.BitmapFactory.nativeDecodeAsset
2) java.lang.RuntimeException in android.opengl.GLSurfaceView$EglHelper.throwEglException

NOTE: Some errors are due to the fact that I have some textureAtlas that are larger than 1024x1024. Be warned if you have large textureAtlas, you will suffer the same fate :?


ACER
1. E310– C4R
2. Acer E320-orange– C6
3. Liquid MT– a4
4. E330– C7

CELLON
1. SM55– C8660
3. GIGABYTE
1. GSmart G1345– msm7627_sku2
2. GSmart G1355– G1355

HTC
1. Wildfire S– marvel
2. G2– vision
3. Nexus One– passion

HUAWEI
1. U8650– hwu8650
2. Huawei-U8652– hwu8652
3. M865C– hwm865c
4. GS02– hwu8860
5. M866– hwm866
6. MediaPad 7 Lite– hws7930w
7. M865– hwm865
8. U8652-51– hwu8652-51
9. H866C– hwh866c
10. MediaPad 7 Lite– hws7930u
11. U8655-1– hwu8655

LGE
1. Optinus One– thunder_kor-08
2. Optimus One– thunderg
3. LG-E400– e0_open_eur
4. Optimus One– thunderc
5. LG-E405– e1
6. Optinus One– thunder_kor-05

MICROMAX
1. A45– tinnoes73_s8030_2g

MOTOROLA
1. Droid II– cdma_droid2we
2. Droid X– cdma_shadow
3. XT319– XT319
4. DROID RAZR– cdma_spyder
5. Droid X2– daytona
6. XT311– XT311
7. Droid II– cdma_droid2
8. Milestone2– umts_milestone2
9. XT316– dominoq_umts
10. MB865– edison
11. XT316– XT316
12. XT317– XT317
13. MILESTONE3– cdma_solana

NEC
1. Casio G'zOne Commando– C771

SK TELESYS
1. S150– msm8255_k5

SAMSUNG
1. GT-P7500M– GT-P7500M
2. Galaxy Ace– GT-S5830F
3. Galaxy Mini– GT-S5570
4. Galaxy Y Duos– GT-S6102B
5. Galaxy Xcover– GT-S5690R
6. GT-P7500R– GT-P7500R
7. Galaxy Xcover– GT-S5690L
8. Galaxy Rugby– comanchecan
9. Galaxy Ace– GT-S5839i
10. Galaxy Y Pro Duos– GT-B5512B
11. Galaxy Gio– GT-S5660M
12. Galaxy Ace– GT-S5830M
13. GT-S5830V– GT-S5830V
14. Galaxy Pocket– GT-S5300
15. Galaxy Ace– GT-S5830L
16. Galaxy Y Pro– GT-B5510
17. Galaxy Pocket– GT-S5302
18. Galaxy Y Pro– GT-B5510L
19. Galaxy Y Pro– GT-B5510B
20. GT-S5300L– GT-S5300L
21. Galaxy Pocket Neo– corsica
22. Galaxy Ace– GT-S5830C
23. Galaxy Mini– GT-S5570B
24. GT-S5301B– coriplus
25. Galaxy Y Duos– GT-S6102E
26. Galaxy Ace– GT-S5830B
27. GT-P7500V– GT-P7500V
28. Galaxy Xcover– GT-S5690M
29. Galaxy Ace Advance– GT-S6800
30. Galaxy Pocket Neo– corsicass
31. Galaxy Ace– GT-S5830T
32. Galaxy Ace– GT-S5830D
33. Galaxy Y– GT-S5360B
34. Galaxy Y– GT-S5363
35. Galaxy Ace Duos– SCH-i589
36. Galaxy Ace– GT-S5830G
37. Galaxy Ace Duos– SCH-I589
38. Galaxy Tab 10.1– GT-P7500
39. Galaxy Y TV– GT-S5367
40. Galaxy Mini– GT-S5570I
41. Galaxy Y– GT-S5360
42. Galaxy Ace– SCH-I619
43. Galaxy Gio– GT-S5660V
44. Galaxy Mini– GT-S5570L
45. GT-S5360T– GT-S5360T
46. Galaxy Gio– GT-S5660L
47. Galaxy Gio– GT-S5660
48. Galaxy Ace– GT-S5830
49. Galaxy Tab 10.1– GT-P7500D
50. Galaxy Y– GT-S5369
51. Galaxy Y– GT-S5360L
52. Galaxy Ace Duos– GT-S6352
53. Galaxy Chat– zanin
54. Galaxy Mini– GT-S5578
55. Galaxy Core– arubaslim
56. Galaxy Pocket– GT-S5300B
57. Galaxy Ace Duo– GT-S6802
58. Galaxy Y Pro Duos– GT-B5512
59. Galaxy Ace Duos– SCH-i579
60. Conquer– SPH-D600
61. Galaxy Ace– GT-S5830i
62. Galaxy Y– GT-S5368
63. Galaxy Ace– GT-S6358
64. Galaxy Xcover– GT-S5690
65. Galaxy Y Duos– GT-S6102
66. Galaxy Pocket– GT-S5302B
67. Galaxy Ace Duos– GT-S6802B
68. Galaxy Ace– GT-S5838

SONY ERICSSON
1. Xperia PLAY– R800at
2. MK16a– MK16a
3. Xperia PLAY– R800a
4. ST15i– ST15i
5. Xperia X8– E15i
6. MT11i– MT11i
7. LT18i– LT18i
8. WT19i– WT19i
9. Xperia arc S– LT18a
10. Xperia Play– R800i
11. Xperia X10– X10a
12. Xperia sola– MT27i
13. LT15i– LT15i
14. R800x– R800x
15. MT15i– MT15i
16. Xperia X10 Mini Pro– U20i
17. ST18i– ST18i
18. Xperia X10– X10i
19. MK16i– MK16i
20. SK17i– SK17i

TCT MOBILE LIMITED (ALCATEL)
1. ALCATEL_one_touch_910– one_touch_910_gsm
2. ALCATEL ONE TOUCH 916D– one_touch_916D_gsm
3. One Touch 990S– one_touch_990S_gsm
4. ALCATEL ONE TOUCH 918N– one_touch_918N_gsm
5. ALCATEL ONE TOUCH 918S– one_touch_918S_gsm
6. ALCATEL_one_touch_990A– one_touch_990A_gsm
7. ALCATEL_one_touch_910A– one_touch_910A_gsm
8. ALCATEL one touch 990C– one_touch_990C_cdma
9. ALCATEL ONE TOUCH 4010X/A/D/E– Beetle_Lite_GSM
10. ALCATEL_one_touch_918N– one_touch_918N_umts
11. one touch 995C+– one_touch_995C_cdma
12. ALCATEL ONE TOUCH 918N– ONE_TOUCH_918N_umts
13. ONE TOUCH 983M– ONE_TOUCH_983M_gsm
14. MegaFon_SP-A10– MegaFon_SP-A10
15. MTC 960– MTC_960_gsm
16. ALCATEL_one_touch_918D– one_touch_918D_umts
17. ALCATEL ONE TOUCH 916– one_touch_916_gsm
18. ALCATEL ONE TOUCH 916A– one_touch_916A_gsm
19. ONE TOUCH 983– ONE_TOUCH_983_gsm
20. ALCATEL ONE TOUCH 903A– one_touch_903A_gsm
21. ALCATEL_one_touch_995A– one_touch_995A_gsm
22. Vodafone Smart II– Vodafone_Smart_II_gsm
23. ALCATEL ONE TOUCH 918D– one_touch_918D_gsm
24. One Touch 990– one_touch_990_gsm
25. ALCATEL ONE TOUCH 918D– ONE_TOUCH_918D_umts
26. RPSPE4301– one_touch_995_gsm
27. ALCATEL_ONE_TOUCH_903– one_touch_903_gsm
28. ALCATEL_one_touch_918M– one_touch_918M_umts
29. ALCATEL_ONE_TOUCH_918M– one_touch_918M_gsm
30. ALCATEL ONE TOUCH 903D– one_touch_903D_gsm
31. ALCATEL ONE TOUCH 918– one_touch_918_gsm
32. MTC-962– MTC-962_gsm
33. ALCATEL_one_touch_983A– ONE_TOUCH_983A_gsm
34. ALCATEL ONE TOUCH 918A– one_touch_918A_gsm

TOSHIBA CORPORATION
1. AT100– tostab03

ZTE
1. V9– v9
2. Blade S– blade2
3. ZTE V768– V768
4. Z992– aviva
5. V9S– V9S
6. N788_BASHA– roamer2
7. V880– blade
8. N762– roamer
9. ZTE V768– P253A20
10. ZTE V9A– v9plus
11. 008Z– bladeplus
12. ZTE Blade G– ZTE-Blade-G
13. ZTE-SKATE– skate
14. N860– arthur

IRIVER
1. ULALA– msm7627a_sku3

UNKNOWN
1. nuclear-evb-rtl8723au
2. nuclear-f727
3. bcm21553
4. nuclear-pfdq88d
5. nuclear-f721
6. msm7627a_sku1
7. crane-anpei
8. one_touch_983_gsm
9. hsdroid
10. crane-MID9742-sc3052
11. msm7627a_i5plus
12. g3505
13. nuclear-f728
14. A12
15. V9
16. msm7627a_v12_a100
17. MegaFon_SP-AI
18. nuclear-pfdq88
19. KarbonnA18
20. nuclear-evb
21. nuclear-pfdq88c
22. msm7627a_sku3_HJ7_WS


Here's a complete code example of the Support Email template that I use. If you want to see how it works, just click the help button within my game ;) Note: this is pure Android code and has nothing to do with AndEngine.....
Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. //CALL THIS METHOD UPON THE USER CLICKING A HELP BUTTON ON THE SCREEN
  2. public void showHelpPopup() {  
  3. runOnUiThread(new Runnable() {
  4. public void run() {
  5. //DEFINE A POPUP MODAL THAT NEEDS TO BE DISPLAYED
  6. AlertDialog.Builder mBuildDialog = new AlertDialog.Builder(myMenuWorlds.this);
  7. mBuildDialog.setTitle("Help!")
  8. .setMessage("Send us an email if you are experiencing any problems, or if you have any suggestions! \n" +
  9. "\n")
  10. // ALLOW THE USE OF THE HARD BACK BUTTON TO CLOSE THE POPUP
  11. .setCancelable(true)
  12. // DEFINE THE OK BUTTON
  13. .setPositiveButton("OK", new DialogInterface.OnClickListener() {
  14. public void onClick(DialogInterface dialog, int id) {
  15. //DEFINE HOW THE SUPPORT EMAIL WILL LOOK INCLUDING A PREPOPULATED SUBJECT LINE CONTAINING USEFUL DEVICE INFO
  16. Intent myIntent1 = new Intent(android.content.Intent.ACTION_SEND);                                                             
  17. myIntent1.putExtra(android.content.Intent.EXTRA_EMAIL, new String[] {"traktor2@kuriusgames.com"});
  18. final String my1 = Secure.getString(getBaseContext().getContentResolver(), Secure.ANDROID_ID);
  19. final String my2 = android.os.Build.DEVICE;
  20. final String my3 = android.os.Build.MANUFACTURER;
  21. final String my4 = android.os.Build.MODEL;
  22. final String my5 = android.os.Build.VERSION.RELEASE;
  23. final int my6 = android.os.Build.VERSION.SDK_INT;
  24. final String my7 = android.os.Build.BRAND;
  25. final String my8 = android.os.Build.VERSION.INCREMENTAL;
  26. final String my9 = android.os.Build.PRODUCT;
  27. myIntent1.putExtra(android.content.Intent.EXTRA_SUBJECT, "Support Request: "+my1+"x"+my2+"x"+my3+"x"+my4+"x"+my5+"x"+my6+"x"+my7+"x"+my8+"x"+my9);
  28. myIntent1.setType("text/plain");  
  29. //IN CASE EMAIL APP FAILS, THEN DEFINE THE OPTION TO LAUNCH SUPPORT WEBSITE
  30. String url2 = "http://www.kuriusgames.com/traktor/support";
  31. Intent myIntent2 = new Intent(Intent.ACTION_VIEW);
  32. myIntent2.setData(Uri.parse(url2));
  33. //IF USER CLICKS THE OK BUTTON, THEN DO THIS
  34. try {  
  35. // TRY TO LAUNCH TO EMAIL APP
  36. startActivity(Intent.createChooser(myIntent1, "Send email to Kurius Games"));
  37. //                                                          startActivity(myIntent1);
  38. } catch (ActivityNotFoundException ex) {      
  39. // ELSE LAUNCH TO WEB BROWSER    
  40. startActivity(myIntent2);  
  41. }
  42. }
  43. })
  44. //DEFINE THE CANCEL BUTTON
  45. .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
  46. public void onClick(DialogInterface dialog, int id) {
  47. dialog.cancel();
  48. }
  49. });
  50. // NOW WE ACTUALLY DISPLAY THE POPUP MODAL
  51. AlertDialog myDialog = mBuildDialog.create();
  52. myDialog.setIcon(R.drawable.ic_launcher);
  53. myDialog.show();
  54. }
  55. });
  56. }
  57.  
Parsed in 0.016 seconds, using GeSHi 1.0.8.4
User avatar
RealMayo
 
Posts: 1694
Joined: Sat Sep 03, 2011 9:25 pm
Location: Chicago, IL

Re: Tech Support tips for your game

Postby smartus » Thu Aug 15, 2013 4:32 am

Thanks for this. Subscribed to this topic!
User avatar
smartus
 
Posts: 510
Joined: Fri May 10, 2013 4:17 pm

Re: Tech Support tips for your game

Postby Mathew » Thu Aug 15, 2013 12:26 pm

Thanks for that, your game is in 720p, it probably means you are using texture size larger than 1024, am I right? Also are you rounding your texture sizes to power of 2? Also thanks for email code :)
User avatar
Mathew
 
Posts: 1073
Joined: Sun Jul 31, 2011 2:49 pm
Location: Tarnów, Poland

Re: Tech Support tips for your game

Postby bond » Thu Aug 15, 2013 12:35 pm

Thank you for this code, really useful.
bond
 
Posts: 106
Joined: Sun Mar 27, 2011 1:03 pm

Re: Tech Support tips for your game

Postby smartus » Thu Aug 15, 2013 12:44 pm

Mathew wrote:Thanks for that, your game is in 720p, it probably means you are using texture size larger than 1024, am I right? Also are you rounding your texture sizes to power of 2? Also thanks for email code :)


I got my game tested by one user here (Nonejm) on Samsung Galaxy Ace. I use TMX with texture sizes like 1580x864 :) No problem there.
User avatar
smartus
 
Posts: 510
Joined: Fri May 10, 2013 4:17 pm

Re: Tech Support tips for your game

Postby Mathew » Thu Aug 15, 2013 12:51 pm

smartus wrote:
Mathew wrote:Thanks for that, your game is in 720p, it probably means you are using texture size larger than 1024, am I right? Also are you rounding your texture sizes to power of 2? Also thanks for email code :)


I got my game tested by one user here (Nonejm) on Samsung Galaxy Ace. I use TMX with texture sizes like 1580x864 :) No problem there.


The point is that some devices, besides supporting GLES2, still require power of 2 textures size

Image
User avatar
Mathew
 
Posts: 1073
Joined: Sun Jul 31, 2011 2:49 pm
Location: Tarnów, Poland

Re: Tech Support tips for your game

Postby smartus » Thu Aug 15, 2013 12:59 pm

Mathew wrote:
smartus wrote:
Mathew wrote:Thanks for that, your game is in 720p, it probably means you are using texture size larger than 1024, am I right? Also are you rounding your texture sizes to power of 2? Also thanks for email code :)


I got my game tested by one user here (Nonejm) on Samsung Galaxy Ace. I use TMX with texture sizes like 1580x864 :) No problem there.


The point is that some devices, besides supporting GLES2, still require power of 2 textures size


My texture sizes are not power of 2, should I expect angry emails? :D
User avatar
smartus
 
Posts: 510
Joined: Fri May 10, 2013 4:17 pm

Re: Tech Support tips for your game

Postby Mathew » Thu Aug 15, 2013 1:03 pm

Well I have got no experience with all thing related to publishing, lets say what Simon will say, I will check some top developers game and see if they are using textures which are power of 2, I really hate to use it, usually wasting a lot of space (...)
User avatar
Mathew
 
Posts: 1073
Joined: Sun Jul 31, 2011 2:49 pm
Location: Tarnów, Poland

Re: Tech Support tips for your game

Postby Ashar » Thu Aug 15, 2013 3:43 pm

If anyone finds this out it'll be really useful ...this power of 2 really annoyed me..

Thanks a lot RealMayo! :D
User avatar
Ashar
 
Posts: 47
Joined: Mon Jul 22, 2013 1:29 am

Re: Tech Support tips for your game

Postby RealMayo » Thu Aug 15, 2013 4:25 pm

Yes my game is design for 720p HD which is 1280x720 (which also happens to match the screen resolution of the Samsung Galaxy S3)

My background images are literally 1280x720.  But all of my other textures are less than 1024.  Nevertheless a power of 2 is ONLY required for repeating textures.  The vast majority of phones are fine with this.  I even have some crappy little phones I test with that are fine with this.

Remember the main performance hit in my game results from the fact that I am using more than 100 dynamic bodies in a given level of the game.  I am not going to change this fact.  Therefore my personal opinion is that if a device can't handle large graphics, then it definitely can't handle all the dynamic bodies in my game.  So I'm essentially cutting them off at the pass.  I'm fine with those devices crapping out just trying to load the level, because then they can contact me that the level isn't loading, then I can ban their device :twisted: and spare them the agony of playing my game with severe lag.

This brings me to another point.  I strongly believe in using Android (not AndEngine) menu screens.  I also believe in loading resources upon Level loading (not upon launching the entire game).  Here's why.... When a user has a crappy phone, they ARE ABLE to successfully launch my game and get to my Android based menu screen.  They see my Help button and can use it if necessary.  When they try to launch a level, then that is when I actually call my AndEngine activity and start loading all of my resources.  A user with a crappy phone simply experiences this... They click on the level, the loading screen appears, the loading fails and the AndEngine activity force closes, then the user gracefully gets bounced back to the Android menu screen activity, then they click the Help button and ask me WTF is going on, then I tell them sorry you have a crappy phone, then I ban their device (based on the info in the Subject heading of the Help email) ;)

Otherwise if you don't use an Android-based menu screen, then the user with a crappy phone will experience a Force Close upon trying to launch your entire game.  They will not be able to see nor access the Help button.  They will then go into the Play Store and give you a 1 star rating.

Final note, my Android menu screen activity uses a background image of 1280x720 and crappy phones can load that Android activity just fine. I believe 1024 rule only applies to AndEngine activities.
User avatar
RealMayo
 
Posts: 1694
Joined: Sat Sep 03, 2011 9:25 pm
Location: Chicago, IL

Next

Return to Projects & Project-Development Blogs

Who is online

Users browsing this forum: No registered users and 10 guests