Coder Social home page Coder Social logo

ergoonline's Introduction

ErgoOnline

Реализация онлайн варианта игры Ergo

Функциональность

В игре будет присутствовать лобби, с возможностью создать игру или присоединиться к существующей по указаным параметрам. Для игроков будет вестись рейтинг, а также будет реализована система достижений. Игра карточная, пошаговая, в одном поединке участвует от 2 до 4 игроков. Во время игры будет видно как игрок выбирает или перекладывает карты, также можно будет грабить корованы обмениваться публичными или приватными сообщениями во время игры с другими игроками.

Взаимодействие с сервером

Данные отправляются на сервер кадрами по 1-3 секунд, все действия игрока записываются в очередь с меткой изменения времени от начала кадра, в ответ клиент получает изменения от сервера и события дургих игроков с метками времени, что позволяет воспроизвести их последовательно. Если результат действий игрока несовместим с реальной ситуацией, то возвращается полное состояние игры, для восстановления. (после 10 некорректных запросов игрок выбрасывается из игры за подозрение в попытках жульничества, информация записывается в лог, также за несоблюдение временного размера кадра, игрок выбрасывается из игры за попытку дестабилизации сервера, информация записывается в лог, оба типа инцидентов не могут произойти без намеренного изменения пользователем настроек клиента) Действиями игрока могут быть: взятие карты, размещение карты на поле, перемещение карт в руке, просмотр карт, отправка сообщения.

Правила игры: http://www.catalystgamelabs.com/download/Ergo%20Rules%202015.pdf

Макет интерфейса игры

Технические средства

Backend: Django, ngnix, sqlite3, memcached, redis.

Frontend: HTML5, CSS3, JS, jQuery, Angular2 (возможно), Twitter Bootstarp 3.

Что уже работает

Для начала нужен локальный redis на 6379 порту по дефолту (можно настроить в ergo_core.py). Далее по адресу /register/ можно зарегестрировать пользователя. Так как пока работа производится больше по backend, то немного API: /game/?create=true&test=true создаст игровую сессию, в ответе будет json с ID сессии, теперь можно подключиться к ней: /game/?init=true&session_id=... указав полученный номер сессии. Карты можно передвигать между рукой игрока и 4 линиями, синхронизация с сервером происходит кадрами через 1.5 сек, обновив стараницу, можно убедиться, что никакие изменения не пропали.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.