Category Archives: Скетчи
Скетчи, прототипы, идеи
Будущее уже здесь – WebAssembly
Несколько лет назад я прочитал о начале проекта WebAssembly (wasm), идея разработчиков звучала примерно так – разработать байт-код для запуска приложений на разных платформах, архитектурах, акцент делается на запуске приложений в браузере.
Желание выкинуть медленный и непредсказуемый javascript, у меня созрело давно. Уже вчера я собрал и запустил свою тестовую игрушку на WebAssembly.
Здесь я опишу как мне это удалось.
Компиляция WebAssembly с помощью Emscripten
Установка Emscripten описана в прошлой заметке. Допустим у вас уже есть проект который корректно собирается из C++ в javascript, для сборки в wasm вам нужно добавить ключи:
-s WASM=1 -s ""BINARYEN_METHOD='native-wasm'""
Можете также попробовать другие ключи сборки описанные в официальной документации, я выбрал native-wasm как самый производительный вариант.
Включение WebAssembly
На данный момент идет процесс активной разработки, поэтому в стабильных версиях браузеров поддержки последней версии wasm нет. Для запуска wasm кода я использовал браузер Firefox Nightly для Ubuntu. Для включения wasm, нужно зайти в about:config и включить его:
Также заявлена поддержка в других браузерах (Chrome).
WebAssembly в действии
Проверить как работает WebAssembly вы можете открыв страницу игры Tanks движка Unity. Есть подозрение что там используется fallback на javascript, т.к. работает даже в обычном браузере.
Также можете попробовать запустить тестовую версию моей игры Bad Robots для wasm.
Если ваш браузер показывает черный экран и ошибку “Exception thrown, see JavaScript console” и в отладочной консоли текст “uncaught exception: no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods“, тогда устанавливайте лучший браузер Firefox Nightly и включайте WebAssembly по инструкции выше.
Всем удачной компиляции.
Flame Steel Zombie Night прототип (обновлено)
Первая версия Flame Steel Zombie Night для Windows:
FlameSteelZombieNightPrototype2
Можешь бегать, стрелять, зарабатывать очки. Стрелять мышью, бегать вперед назад на стрелках клавиатуры.
Это прототип первой игры на Flame Steel Engine, с единой кодовой базой для нескольких платформ.
16-битные помощники Санты
Мне пришло на почту сообщение:
“Эй мы тут открываем ретро гейм-джем – bibitjam3!!! Ты должен сделать игру на ретро платформу 8-16 бит!!!”
Ба! Это же мечта моего детства – сделать игру для Сеги Меги Драйв Два.
Что-ж я попробовал сделать игрушку, и у меня что-то даже получилось:
Игру я назвал “Замес Красной Королевы”. История такова – “Красная Королева была брошена в смертельный лабиринт, теперь она убьет всех на своем пути к свободе.”
Можно ходить, можно атаковать зеленую штучку с красными глазами, открывать сундуки с сокровищами, и переходить из сцены в сцену.
Это конечно уровень “на попробовать” хоть что-нибудь сделать для сеги и для конкурса.
Я использовать SGDK тулкит – компилятор для моторолы 68к на базе GCC, библиотеки для работы с железом сеги меги.
Теперь я понимаю что это реально было сложно – делать игры 20-30 лет назад. Например каждый тайл – должен быть поделен на кусочки 8х8 пикселей и отрисован кусками по очереди. Также палитра для каждого тайла должна не превышать 16 цветов! Сейчас конечно гораздо проще.
Конечно же нужно создать игровой, звуковой, графический движок для игры, как и сейчас.
Вы можете поиграть в Красную Королеву с помощью эмулятора Sega Genesis и РОМа игры:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampage.zip
Если вы хотите посмотреть исходники:
http://demensdeum.com/games/redQueenRampageSegaGenesis/RedQueenRampageSource.zip