Comments 35
Уважаемый bugy, это перевод статьи или ваша игра?
Автору игры и статьи: box2d тут явно лишний, и он время у вас съел. Хватило бы и формулы пересечения прямоугольников либо окружностей, они просты.
И зайдите кто-нибудь на http://selim.co/snowbox/, мне снежком кинуть не в кого! Я стою в центре, у дерева, по нику узнаете.
Автору игры и статьи: box2d тут явно лишний, и он время у вас съел. Хватило бы и формулы пересечения прямоугольников либо окружностей, они просты.
И зайдите кто-нибудь на http://selim.co/snowbox/, мне снежком кинуть не в кого! Я стою в центре, у дерева, по нику узнаете.
0
Это наша игра и статья.
Касаемо box2d — возможно это был сильный оверхед, зато без собственных велосипедов в данном плане гораздо приятнее. И опыт использования движков на будущее.
PS зашел на сервер — кто-то там бегает уже :)
Касаемо box2d — возможно это был сильный оверхед, зато без собственных велосипедов в данном плане гораздо приятнее. И опыт использования движков на будущее.
PS зашел на сервер — кто-то там бегает уже :)
+1
Отличная игра для конкурса и статья.
Как насчёт SnowBox 2.0 и продолжения статьи?
Думаю своих идей у вас хватает, да и пользователи подкинули. Из очевидного:
1. Надо чат, простенький, или возможность сказать что-то (всплывающий бабл со словами) — возможность общенияматом бесценна
2. Селим, уберите очевидный способ чита — заходим на сервер дважды с разных вкладок браузера и набиваем фраги на своём же клоне. Не пускать клонов: IP клиента серверу через вебсокеты известен и куки тоже пригодятся.
3. Строим ледяные крепости — надо. Сейчас «крепость» можно построить из множества своих клонов, то есть возможность уже есть, но читерская.
4. Хочетсянабигать, грабить корованы играть за 2 команды (или более), прокачка персонажа и соответственно хранение этого счастья на сервере, разные локации — и т.д. и т.п.
Как насчёт SnowBox 2.0 и продолжения статьи?
Думаю своих идей у вас хватает, да и пользователи подкинули. Из очевидного:
1. Надо чат, простенький, или возможность сказать что-то (всплывающий бабл со словами) — возможность общения
2. Селим, уберите очевидный способ чита — заходим на сервер дважды с разных вкладок браузера и набиваем фраги на своём же клоне. Не пускать клонов: IP клиента серверу через вебсокеты известен и куки тоже пригодятся.
3. Строим ледяные крепости — надо. Сейчас «крепость» можно построить из множества своих клонов, то есть возможность уже есть, но читерская.
4. Хочется
0
Спасибо большое за фидбек! Касаемо продолжения, очень двоякие мысли. С одной стороны это был проект «попробовать и выкинуть», с другой стороны в процессе создания захотелось сделать что-то более стоящее из этого начинания. Но после того как закончился этот интенсивный месяц, осталось желание не делать абсолютно ничего, т.к. выдохлись. Сейчас уже отошли и посмотрим как жить дальше.
Два из ваших пожеланий для нас новые: чат и командное соревнование.
Остальное планировалось/хотелось, но к сожалению не успелось.
Два из ваших пожеланий для нас новые: чат и командное соревнование.
Остальное планировалось/хотелось, но к сожалению не успелось.
0
Два из ваших пожеланий для нас новые
Да? Тогда я внесу еще несколько ценных предложений в духе времени:
1. Игровая валюта — Snowball. За сноуболы покупаются модные скины, лыжи и эпический скорострельный снегомёт
2. На сайте игры можно купить сноуболы за рубли, доллары и биткойны
3. Премиум аккаунты — удвоенная скорострельность, утроенная скорость прокачки, уникальные шапочка, шарфик и варежки в подарок
4. Выберите краудфандинговую площадку для сбора средств на разработку SnowBox 2.0
5. Прикрутите к игре блокчейн, чтобы точно взлетело
6. Выпустите ICO токены
7. Конвертация сноуболов в деньги для игроков, дайте людям заработать, ваши %-ы
…
100. Мышь и клавиатура — это скучно. Нужен свой, уникальный беспроводной игровой контроллер на Arduino
-1
В моём прошлом каменте перебор с иронией, я пародирую нынешний гейм-дев, «монетезацию», разные модные тренды и все такое. Не ведитесь.
А теперь о серьёзном, мужайтесь.
В дело вступили 2 профи бета-тестера, мои племянники, возраст 8 и 9 лет. Сейчас всё решает молодое поколение. Мы провели час жесткого теста (нет, мы не уронили сервер, и это хорошо). Перевожу их замечания с их языка на обычный язык, выводы комиссии:
1. Нужен чат, или в любом другом виде возможность общения игроков текстом.
2. Голосовой чат не нужен, для такого геймеры сейчас используют сторонние программы типа Discord, TeamSpeek, RaidCall & etc., а между-собой-друзья используют Скайп, Телеграм и WatsApp. Собственно текстовый чат в игре им нужен чтобы договориться о канале голосового общения (это команда) или чтобы обругать противника.
3. Прокачка персонажа нужна. Многие заходят в игру, играют 2 минуты и выходят — потому что нет роста.
4. Скины. Сейчас у вас их 2 (мальчик и девочка). Короче еще просят — допустим скины дают за прокачку персонажа. Нужно: Снеговик, Снежная Королева, Человек-Паук и ещё разные (я всех не запомнила).
5. Боты, которыми управляет сервер, на случай если никого на сервере нет.
А теперь о серьёзном, мужайтесь.
В дело вступили 2 профи бета-тестера, мои племянники, возраст 8 и 9 лет. Сейчас всё решает молодое поколение. Мы провели час жесткого теста (нет, мы не уронили сервер, и это хорошо). Перевожу их замечания с их языка на обычный язык, выводы комиссии:
1. Нужен чат, или в любом другом виде возможность общения игроков текстом.
2. Голосовой чат не нужен, для такого геймеры сейчас используют сторонние программы типа Discord, TeamSpeek, RaidCall & etc., а между-собой-друзья используют Скайп, Телеграм и WatsApp. Собственно текстовый чат в игре им нужен чтобы договориться о канале голосового общения (это команда) или чтобы обругать противника.
3. Прокачка персонажа нужна. Многие заходят в игру, играют 2 минуты и выходят — потому что нет роста.
4. Скины. Сейчас у вас их 2 (мальчик и девочка). Короче еще просят — допустим скины дают за прокачку персонажа. Нужно: Снеговик, Снежная Королева, Человек-Паук и ещё разные (я всех не запомнила).
5. Боты, которыми управляет сервер, на случай если никого на сервере нет.
0
Сколько раз мы в неё ни играли, так и не заметили никаких проблем, как и не слышали их от других игроков.
Странно. Потому что проблема ловится в первую же минуту — персонаж «залип» на подъеме в верхнюю часть экрана. Уперся лицом в забор и отказался менять направление движения.
0
Точно, обманул я :( Эта проблема проявляется когда фокус из окна уходит. И Phaser не замечает отжатия клавишы и лишь перебором клавиш 10-20 раз это иногда лечится… Но баг не совсем наш :)
Проявляется он не так часто, поэтому я решил не делать workaround для этого.
Проявляется он не так часто, поэтому я решил не делать workaround для этого.
0
А еще положение персонажей почему-то разное для разных игроков. Посмотрите на ровность «стеночки»:
И хорошо бы добавить отброс персонажа, в которого попали. Иначе можно выстраивать вот такие вотснежные игроковые крепости и там обороняться. :D А еще менюшка звука перекрывает рейтинговую таблицу.
Игрок 1
Игрок 2
Игрок 3
И хорошо бы добавить отброс персонажа, в которого попали. Иначе можно выстраивать вот такие вот
0
Уперся лицом в забор и отказался менять направление движения.
Это не баг, это фича — ловить нубов и набивать на них фраги.
0
Ой, сколько вас набежало то! Предлагаю правила:
1. Перестаньте только в меня кидаться, я первая зашла а теперь в топе снизу.
2. Заходите под своими никами на ГикТаймс
3. Способ разбиться на 2 команды — команда А — ник начинается с «А.», например «A.John», команда B — ник начинается с «B.», например «B.George». В своих не кидаемся! Кто без команды — тот против всех.
1. Перестаньте только в меня кидаться, я первая зашла а теперь в топе снизу.
2. Заходите под своими никами на ГикТаймс
3. Способ разбиться на 2 команды — команда А — ник начинается с «А.», например «A.John», команда B — ник начинается с «B.», например «B.George». В своих не кидаемся! Кто без команды — тот против всех.
0
В Edge вообще не играбельно. Постоянно залипает ход в одну сторону, а у стенки вообще всё залипает. Думал, я туплю, но нет — оказалось ещё не выстрелить. Надо заходить через другой браузер…
0
Как умудряетесь снежки так быстро кидать?))
0
Просто нажимая клавишу часто. Важный момент — запас снежков ограничен (см. правый нижний угол). Потом они постепенно восстанавливаются. Соответственно пока снежки есть, можно хоть все 5 одновременно бросить. А потом бросать только со скоростью восстановления.
(Этот запас многие вообще не замечают, это к вопросу об игровом тестировании)
(Этот запас многие вообще не замечают, это к вопросу об игровом тестировании)
0
Просто нажимая клавишу часто.
Гениально. Ресурс механической кнопки на современных мышках достаточно большой — при обычной работе кнопки на несколько лет всем хватает. Но если в вашей игре выигрышная стратегия — постоянно и непрерывно нажимать клавишу мыши, метая снежки (игрок займётся наведением), то тут явно требуется автоматизация. Есть 2 варианта:
1. Я могу написать автокликер — читерскую утилиту на ваш случай, посажу хук на клик мыши (магия WinAPI), проверю что фокус в окне браузера, нагенерирую кликов — и вуаля, буду строчить как из пулемёта не напрягая пальцы. А из браузера, у вас клиент на JS, античит вы не сделаете. Короче — кому чит на SnowBox за $10 с носа?
2. Как автор игры, вы должны разобраться как играют в вашу игру, какие приёмы применяют игроки, какие стратегии сейчас выигрышные. Игроки уже знают больше вас, вам же некогда играть. Если в геймплее есть занудное действие (например, 100500 кликов мышкой), то его нужно автоматизировать в игре (авто-выстрел что ли). Или иначе — сделайте эту стратегию невыгодной: долгая перезарядка, дорогие «патроны», штраф за промах, в статистике падает оценка меткости, усталость… что то такое.
Мы плавно подошли к вопросу баланса.
0
Абсолютно согласен! Это как раз к вопросу об игровых тестах.
И именно эту проблему я хотел исправить в первую очередь, но проект уже был сдан
0
А зачем вообще было писать разный код для клиента и сервера? Почему нельзя сначала было написать рабочий код для локальной машины, а после этого добавить синхронизацию состояний с сервером?
0
Не совсем понял ваш вопрос. Отвечу на то, что точно понял:
1. Нельзя было терять ни минуты. Т.е. если бы сперва закончили клиент, а потом принялись бы за сервер, точно не успели его сделать.
2. На клиенте и на сервере разная физика. Например, столкновения движущихся объектов на клиенте не проверяются, потому что клиент не может знать реальное положение объектов в данный момент времени
1. Нельзя было терять ни минуты. Т.е. если бы сперва закончили клиент, а потом принялись бы за сервер, точно не успели его сделать.
2. На клиенте и на сервере разная физика. Например, столкновения движущихся объектов на клиенте не проверяются, потому что клиент не может знать реальное положение объектов в данный момент времени
0
В смысле можно было использовать вообще полностью одинаковый код для клиента и сервера. Просто еще до кучи добавить синхронизацию.
0
Это трудно достижимо по ряду причин:
1. Разные движки на клиенте и сервере. Которые работают по-разному
2. Логика на клиенте не может быть полностью такой же как на сервере, т.к. состояния на клиенте и сервере всегда разные. А на клиенте присутствует логика, которая не нужна серверу (например прозрачность деревьев)
3. Сервер — java (можно считать это требованием), клиент — JS
1. Разные движки на клиенте и сервере. Которые работают по-разному
2. Логика на клиенте не может быть полностью такой же как на сервере, т.к. состояния на клиенте и сервере всегда разные. А на клиенте присутствует логика, которая не нужна серверу (например прозрачность деревьев)
3. Сервер — java (можно считать это требованием), клиент — JS
0
Все три пункта идут от того, что вы изначально планировали обратный подход. Но в тех игровых движках, которые я знаю, клиент и сервер используют одинаковый игровой код, а сетевое взаимодействие реализуется так, что клиент отправляет на сервер пользовательские команды, а а сервер на клиент — снапшоты игрового мира.
0
Все три пункта идут от того, что вы изначально планировали обратный подход.
По пунктам 1 и 3 (разные движки и языки) я соглашусь. Можно было бы выбрать другие технологии и тогда можно было бы частично одинаковый код.
Пункт 2 же про более оптимальное и точное поведение. На вышеупомянутых примерах:
1. Прозрачность объектов. Зачем серверу знать об этом и тратить на это вычислительные ресурсы? Более того, в нашем случае сервер даже не знает о том, как выглядят деревья. Для него существует только та часть ствола, которая является препятствием.
2. Столкновения динамических объектов. Какая бы ни была идеальная синхронизация, состояния объектов в двух независимых процессах будут отличаться. Соответственно клиент не может со 100% уверенностью гарантировать (вот кто-то так же думает)
Подобные различия можно было бы вынести и использовать дополнительно к общей логике, здесь я согласен.
Отдельный вопрос по нагрузке на I/O. Слать постоянные снапшоты нам не хотелось. От этого подхода мы отказались почти сразу.
0
bugy, а будет ли статистика по серверу — сколько игроков за сегодня было (размер хабра-эффекта), среднее время в игре, кто откуда (география) — ну и самое главное: кто же всё-таки сегодня победил по очкам?
0
Минимальный вариант «для ленивых» — на страничку selim.co/snowbox прикрутить на входе Google Analytics, или что-то подобное.
0
При каких условиях, кстати, твой ник в таблице очков на первом высвечивается крупными буквами? Некоторое время висел в топе, пару раз заметил, что ник вдруг стал огромным :) Скрин снять не успел, от игры невозможно оторваться!
0
Это похоже на ещё один баг. Вроде как при изменении списка игроков, иногда шрифт слетает. Точнее не скажу, т.к. это не так часто проявлялось.
Спасибо за комплимент игре :)
Спасибо за комплимент игре :)
0
Ох, а я-то подумал, что это поощрение за длительное пребывание на 1-м месте :)
Игра реально затягивает. Очень классно, что при своей простоте в ней при этом есть определённые фишки, позволяющие создать свою стратегию боя и защиты от снежков, а не просто мутозить кнопку мыши :)
Печаль только от лагов, когда заходит много игроков сразу. :(
Игра реально затягивает. Очень классно, что при своей простоте в ней при этом есть определённые фишки, позволяющие создать свою стратегию боя и защиты от снежков, а не просто мутозить кнопку мыши :)
Печаль только от лагов, когда заходит много игроков сразу. :(
0
Ого, вот за последний комментарий особое спасибо! Т.е. всё-таки игра не выдерживает более 10 игроков сразу. Надо будет её по-стресс-тестировать
0
Игра реально затягивает. Очень классно, что при своей простоте в ней при этом есть определённые фишки, позволяющие создать свою стратегию боя и защиты от снежков, а не просто мутозить кнопку мыши :)
mindjammer, поддерживаю. Мы сегодня компашкой играли — нашли свою стратегию боя и защиты, всех нагнули и вылезли в топ. Простота в игре только внешняя (графика — закос под примитив), на самом деле механика сделана довольно таки правильно. Автор то ли скрывает, то ли сам еще не осознал — фишка игры нынче в сражении между игроками. Задача разработчиков — дать честное поле боя для всех, а уж мы там подерёмся. И даже как бы баги игры стали не баги, а фичи, это тайное знание доступное старпёрам (напомню, игра на ГикТаймс опубликована сегодня, я зашла первая, значит я самая древняя).
Игра реально затягивает.Что-то в ней есть. Моя задача — убедить авторов не забивать на свой эксперимент, а продолжить свои опыты, не потеряв это «что-то». Они нащупали — играбельность. Это как золото в Калифорнии найти, такое не бросают.
0
Зашёл посмотреть, что получилось, но, видимо, в неудачный момент – на сервере никого, поэтому удалось только побегать и покидать снежки в пустоту, но мне кажется, что у игры есть перспективы. Развлечься с её помощью можно определённо (но были бы хотя бы боты...) По-моему, для первой игры у вас получилось просто отлично.
0
Sign up to leave a comment.
История участия в Game Jam. Snowbox