HTML5 game unexpectedly closes in mobile browsers

Hi, I’m making a cocos2d-js game that is currently working OK in desktop browsers, but when I try to open it in Chrome or Firefox in a Motorola Moto G it crashes the page with no error information when the game is loading and reaching 94%, and in Opera Mini I can actually play for a while until it crashes suddenly.

Here’s the build with the problem: heartbitgames.com/proto/paranoia

Any thoughts?

Have you tried with https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging ?

That looks promising for debugging, thanks!

Sadly I currently have a small problem with my usb ports, so I’ll have to find another way until I can get that fixed '^^

I’ll try on my side in few hours.

I’ve tried on Firefox on my Nexus 7 2012. There was a lot of errors regarding audio :

> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> "can not found the resource of audio! Last match url is : res/bgm/ivo/intro_paranoia.m4a" game.min.js:76:124
> "can not found the resource of audio! Last match url is : res/bgm/esteban/tarde.m4a" game.min.js:76:124
> "can not found the resource of audio! Last match url is : res/bgm/esteban/noche_dicotomia.m4a" game.min.js:76:124
> "can not found the resource of audio! Last match url is : res/bgm/ivo/dia_the_day.m4a" game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'cama', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'cama_sombra', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'cuadrito', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'cuadro_1', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'cuadro_1_sombra', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'despertador', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'despertador_luz', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'lampara_der', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'lampara_izq', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'luz_techo', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesita_1', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesita_1_sombra', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesita_2', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesita_2_sombra', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'puertaDormitorio', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'ropero', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'ropero_sombra', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'switch', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'puertaPrologo', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'bacha', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'heladera', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'horno', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesada', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'notita', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'puertaCocina', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'puertaBaño', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'sillon', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'silla_der', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'silla_izq', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'puertaLiving', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesaRatona', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'mesa', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'panalla_gaga_en_blanco', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'heladeraAbierta', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'heladeraPuertaCerrada', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'botonALiving', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'botonACocina', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'ventanaLiving', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n01DormitorioDurmiendo', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n02Living', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'nDummyActor', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n02Cocina', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n01DormitorioSentado', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n01DormitorioParadoPijama', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'n01DormitorioNormal', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> "No se definió un nombre para mostrar para el Ente 'gaga02', así que se usará ese id como su nombre a mostrar a los usuarios (no recomendable)." game.min.js:76:124
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> "repitiendo!" game.min.js:1638:481
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> "repitiendo!" game.min.js:1638:481
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> "repitiendo!" game.min.js:1638:481
> "repitiendo!" game.min.js:1638:481
> "ultima!" game.min.js:1639:138
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> Les données passées à decodeAudioData possèdent du contenu de type inconnu. paranoia
> "can not found the resource of audio! Last match url is : res/bgm/ivo/intro_paranoia.m4a" game.min.js:76:124
> EncodingError: The given encoding is not supported. <unknown>
> EncodingError: The given encoding is not supported. <unknown>
> "Error: res/sfx/paso.ogg greater than 5"

I’ve successfully started a new game but browser itself has crashed around 30 seconds later.
And no sound was played by your app.

My second test, I’ve got further in game and my impress is that app/browser has crash during onTouchMoved (if you use it)

Regards,
Michael

Oh!

Thanks man!

Ok, so it may be a number of things.

  • Regarding audio:
  1. I’m using ogg files, I’ll try to change to mp3 or other formats
  2. I’m using a custom method to “animate” changes in volume, that may just be causing some issue.
  • On touch problems: I’m using a custom method to test if the toched area of a sprite is a transparent pixel or not, it relies in WebGL, so that may be what’s crashing the game on touch.

Thanks again! I’m thinking the audio issue is what’s preventing to boot the game in Firefox and Chrome, and the touch problem is what I noticed in Opera Mini. :smiley: