Ужас разработчика: Как избежать бага загрузки на Kongregate

Game on Kong doesn't load
Думаю, не многие догадались, что изображено на представленном выше скриншоте. Но на самом деле все просто! Именно так выглядит игра, которую вы только-что добавили на Kongregate, но она по каким-то причинам не загружается. Учитывая тот факт, что первые несколько часов пребывания на портале во многом определяют дальнейший успех игры, такая ситуация вполне может превратится в настоящий ужас для разработчика. Особенно, если вы находитесь не на рабочем месте и никаких исходных файлов, кроме, собственно, финального swf (как было в моем случае) у вас нет.

В итоге моя игра When I Was Young провисела в таком состоянии около 2 часов и ее только чудом не заминусовали. Думаю, за это я должен благодарить рейтинг группу. Но кто знает, если бы не было проблемы с загрузкой сразу после публикации на Конге – возможно рейтинг сейчас был бы куда выше!
Впрочем, пишу эту статью я совсем не для того, чтобы «пожаловаться на тяжелую жизнь», а для того, чтобы помочь избежать подобной ошибки другим начинающим разработчикам.

Как известно, по правилам Конга, разработчики должны выключать любую внутриигровую рекламу. Исключением служит только реклама Mochi, поскольку на Kongregate она фильтруется автоматически. Но так же известно, что многие порталы забирают к себе игры именно с Конга. Поэтому желательно все же не полностью удалять рекламу из игры, а просто фильтровать ее для домена kongregate.com.

Судя по всему именно неправильная фильтрация рекламы и стала причиной того, что игра на Конге не загружалась. При чем как-то хитро не загружалась… То-есть в режиме просмотра все было нормально, но как только я жал Publish – игра переставала работать и пользователи видели унылый синий экран (как на скриншоте выше… ну вы поняли).

В моей игре используется реклама CPMStar, которая отображается в прелоадере. В хелпе по размещению CPMStar написано, что для отображения нужно создать MovieClip adBox и добавить методом addChild рекламу в этот блок. Собственно при загрузке я проверял домен и в случае kongregate.com просто ставил adBox.visible = false, а саму рекламу – не добавлял.

Похоже, что Конгу «не понравилось» именно название блока с рекламой и он каким-то образом определил наличие мувиклипа adBox в файле игры, после чего загрузка автоматически блокировалась.

Помогло простое переименование блока adBox в squareContainer. Больше ничего в игре я не менял, но после этого игра начала загружаться. Надеюсь, это поможет хоть кому-то избежать подобных проблем.

Поиграть в игру можно на Конге и НГ.

Если вас интересует архив с игрой для размещения на своем портале (пока FlashGameDistribution почешется, чтобы заапрувить игру), то скачать его можно здесь: When I Was Young Distribution Version.
  • +8

Комментарии (31)

0
А я напоролся на то, что у них нигде не сказано на какой адрес создавать урлок, в итоге я выяснил это опытным путем (вставив textfield в загрузчик), при чем publish версия отличалась от preview и пришлось проводить опыт повторно, но уже на живую :).
0
Кстати, можно было просто вернуть игру в песочницу.
0
Я так и не разобрался, как это сделать.
0
Вроде бы после загрузки новой версии статус меняется на preview могу ошибаться. Я всего одну игру публиковал, и делал это довольно давно.
0
Да, это пробовал. Статус меняется на preview для только-что загруженной версии. Но старая то все-равно висит в published пока не опубликуешь новую.
0
Значит я ввел тебя и себя в заблуждение, спасибо за то что направил меня на путь истинный. Надо будет написать игрушку простенькую, и статью как пихать игры на конг.
0
во всех моих играх блок называется adBox, полёт нормальный.
0
значит это действует как-то выборочно. Но я действительно больше ничего не менял. С adBox не работало. С squareContainer заработало. Может у тебя просто метод фильтрации другой…
0
да вообщем то обычно делаю, на главном таймлайне, на кадре прелоадера


if(mainGlobal.showAds)
{
        var CPMStarContentSpotID:String = "3333Q3DB3333D";
        
        var ad:DisplayObject = new CPMStar.AdLoader(CPMStarContentSpotID);
        adBox.addChild(ad);
}
0
У меня так (в прелоадере):

if (isUrl(["kongregate.com"])) {
        squareContainer.visible = false;
} else {
        ad = new CPMStar.AdLoader(CPMStarContentSpotID);
        squareContainer.addChild(ad);
}
0
А эти?
chat.kongregate.com
cdn2.kongregate.com
cdn3.kongregate.com

Когда-то нашел их на форуме конга. Может ситуация уже и поменялась.
+3
так конг же, домен 2-го уровне везде одинаковый
0
Когда вместо squareContainer было adBox — игра на конге не грузилась.
0
я думаю у конга вряд ли стоит какой-то бот, который проверят наличие мувиклипа с таким название
0
думаю это просто мистика)
+4
Может быть что у тебя реклама каким-то образом запускалась, Loader не мог загрузить рекламу и приложение падало с ексепшеном.
Я у себя повесил такие события на лоадер:
m_CpmstarLoader = new Loader();
m_CpmstarLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, OnLoadlingComplete, false, 0, true);
m_CpmstarLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, OnLoadingIOError, false, 0, true);
m_CpmstarLoader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, OnLoadingError, false, 0, true);
m_CpmstarLoader.contentLoaderInfo.addEventListener(AsyncErrorEvent.ASYNC_ERROR, OnLoadingAsyncError, false, 0, true);
m_CpmstarLoader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, OnLoadingSecurityError, false, 0, true);

Теперь если реклама по какой-то причине не загрузилась, то игра все-равно работает.
0
Спасибо. Надо будет запомнить и использовать.
0
О, не у меня одного, значит, такое было. Но я винил SecureSWF (где-то между выкладываниями обновлений игры я внял его просьбам и загрузил новую версию, хотя коней, как известно, на переправе не меняют).

А что при пустом экране показывала правая кнопка? У меня открывалось меню с одним пунктом «Ролик не загружен». Но было ещё чудесатее: после обновления страницы ролик грузился, причём как будто из кеша. Из разных браузеров пробовал — каждый раз по-разному: то грузится, то не грузится.

Потом пережал Киндисофтом на средних настройках, выложил — кажется, заработало. Чуть позже появился ещё один отзыв, что игра не грузится, но больше подобных сигналов не было.

Я вот ещё что думаю — может, просто Конги у себя что-то настраивали? Когда с твоей игрой это случалось? У меня где-то между часом и тремя по Киеву.
0
Да я и сам теперь вот думаю — может действительно совпало с какими-то внутренними работами на Конге…
0
Похоже, то, всё-таки, были они. Вот, сейчас, в форме обновления появился пункт

Modify Preview Version

Flash/Unity

Хотя раньше такого не было.

А под самой игрой появились пункты
edit game | send message to active players | send message to inactive players | api | destroy

Под старыми играми — тоже, только без второго и третьего. (Там рейтинг у игр меньше).
0
Сейчас вот вообще Конг через раз ошибку выдаёт при открытии любой страницы.
+1
Название студии здорово придумано и хорошо обыграно в прелоадере :)
0
Спасибо. Я сам был в шоке, что домен thegamest.com оказался свободен.
+1
С the много свободныйх доменов.
thefacebook это не круто © Соц сеть )
+1
Ну, я так понял, что это игра слов. Типа «самый игровой». the ...est -превосходная степень.
Тогда уж надо thefacebookest. Типа «самый мордокнижный». Действительно, не очень круто.
0
Да, в контексте, хорошо ложится, согласен )
Но домен без the смотрится симпатичнее.
0
Ну как мед — так и ложкой ;) Домен gamest.com был занят, конечно.
А вообще Dimuron прав. Идея была в слогане: Game, Gamer, The Gamest!
0
МНе с «Зе» тоже не нравиться… и я не такой знаток английского — но теперь суть ясна)
0
В игре всего один уровень или это я что-то не так делаю?
0
один
0
Требую продолжения
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.