Лабораторная работа 7. Сетевые игры

Используя популярный игровой движок Phaser, создайте сетевую HTML5 игру. Можно выбрать любой из свободных примеров Phaser (список занятых находится у преподавателя) и превратить его в сетевой так, чтобы у всех клиентов было все синхронизировано. Для этого понадобится библиотека для удобного сетевого взаимодействия клиентов и сервера. Можно использовать socket.io, но удобнее - более высокоуровневую библиотеку RPC, например, eureca.io. Ссылка на хороший тьюториал по переделке готовой игры на Phaser в сетевую версию с использованием eureca.io. Сделанное задание нужно показать преподавателю на занятии и после этого загрузить решение в Moodle.

Для профессионалов: статья 1 и статья 2 на русском про компенсацию латентности сети в играх.

Как начать работать с phaser? Инструкции:

  1. Скачайте и распакуйте выбранный пример. В архиве будет масса файлов от других примеров. Нам нужно будет выделить только один
  2. Создайте (в другом месте) папку проекта и в ней подпапки lib, src и assets
  3. Скопируйте в lib минимизированный файл библиотеки Phaser из подпапки examples/_site/phaser и переименуйте его в phaser.min.js
  4. Скопируйте в assets все файлы из папки вашего примера в подпапке examples/assets
  5. Скопируйте в src - js-файл вашего примера из подпапки examples. Замените в нем все пути, например, так 'assets/games/tanks/...' -> 'assets/...'
  6. Создайте в корне вашего проекта файл index.html с содержимым:
    <html><head><title>Multiplayer tanks game</title>
    <script src="lib/phaser.min.js"></script>   
    <script src="src/game.js"></script>
    </head></html>
    
    где вместо game.js нужно указать имя файла вашего примера.
  7. Откройте папку проекта в терминале и выполните команду установки внутрь вашего проекта веб-сервера express: npm install express
  8. Создайте файл server.js с кодом:
    var express = require('express'), app = express(app), server = require('http').createServer(app);
    // serve static files from the current directory
    app.use(express.static(__dirname));
    server.listen(8000);
    
  9. Ваш проект готов к первому запуску! Запустите сервер командой nodejs server.js в терминале. Зайдите на ваш сайт в браузере: http://127.0.0.1:8000

Примеры выполненных работ

RGBWarriors


Рекомендуем использовать Google Chrome