Giter Club home page Giter Club logo

warlock-server's Introduction

Warlock

Установка

Подготовка

Перед устновкой необходимо иметь уставонленные локально Node js и NPM

Выкачать проект

git clone https://github.com/vasilisq/warlock-server.git

Перейти в папку с проектом

cd warlock-server

Запуск в PRODACTION

npm install
npm run build
npm start

Запуск в DEVELOPMENT

Подтянуть зависимости

 npm install

Запустить в одном терминале сборку фронта в watch режиме:

npm run build:dev

или

npm run webpack-dev-server

Запустить в другом терминале сервер в watch режиме

npm run start:dev

Запуск тестов

to be continued

npm run test

Linter

to be continued Линтер на клиентский js:

npm run lint:front

Общая информация

API

warlock-server's People

Contributors

d3m1d0v avatar dyadyajora avatar vasilisq avatar unforgiven avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

warlock-server's Issues

Наложение freeze-эффектов

При применении эффекта на игрока, на которого уже действует эффект, исходное состояние ему уже не возвращается. Т.е. если стартовая скорость 10, после первого фриза 5, после второго 2.5. Через время ему возвращается скорость 5, и далее она не меняется.

Ники игроков (backend)

При соединении ожидать от фронта ивент authenticate, только после которого создавать инстанс игрока и выбрасывать событие connected. В authenticate сейчас должно приходить поле nickname. Добавить поле nickname в класс Player.

Ограничение dt

Задать в entityManager нижний предел для dt константой, только по достижению которого он будет вызывать think у сущностей.

Смерть игрока (Backend)

Реализовать смерть игрока при уроне (не удаляя его из менеджера сущностей) и возрождение через заданный промежуток времени; и события для этого.

Деплой

Адекватно настроить деплой. Возможно сделать авто-пуш в heroku при слитии с мастером. Настроить мастер-ветку.

Столкновения с невидимыми скилами

Обнаружил что Player иногда натыкается на невидимые препятствия и не может их обойти.
Есть предположение, что скилы сталкиваясь с границей карты остаются на границе, поэтому и невозможно пройти их насквозь.
Это лишь догадки, но стоит проверит

Ящики (Frontend)

Реализовать ящики на стороне фронта + обработка новый месседжей.

Сборка FE

Починить сборку:

Starting to optimize CSS...
Processing style.css...
Processed style.css, before: 115853, after: 115812, ratio: 99.96%
Hash: e941fc2d23a0e6c63c5d
Version: webpack 2.6.1
Time: 32312ms
Asset Size Chunks Chunk Names
glyphicons-halflings-regular.woff 23.4 kB [emitted] 
derevo3.jpg 394 kB [emitted] [big] 
glyphicons-halflings-regular.eot 20.1 kB [emitted] 
modalBG.png 1.46 MB [emitted] [big] 
glyphicons-halflings-regular.svg 109 kB [emitted] 
glyphicons-halflings-regular.ttf 45.4 kB [emitted] 
spinner.png 10.3 kB [emitted] 
glyphicons-halflings-regular.woff2 18 kB [emitted] 
build.js 404 kB 0 [emitted] [big] main
style.css 116 kB 0 [emitted] main
build.js.map 3.4 MB 0 [emitted] main
style.css.map 86 bytes 0 [emitted] main

WARNING in ./client/api/socket.js

/app/client/api/socket.js
14:5 warning Unexpected console statement no-console
19:5 warning Unexpected console statement no-console
33:5 warning Unexpected console statement no-console
44:5 warning Unexpected console statement no-console
64:5 warning Unexpected console statement no-console
74:5 warning Unexpected console statement no-console
79:5 warning Unexpected console statement no-console

✖ 7 problems (0 errors, 7 warnings)

@ ./client/main.js 4:0-34

WARNING in ./client/store/modules/playersStore.js

/app/client/store/modules/playersStore.js
7:13 warning Unexpected console statement no-console
12:13 warning Unexpected console statement no-console
20:13 warning Unexpected console statement no-console
49:13 warning Unexpected console statement no-console

✖ 4 problems (0 errors, 4 warnings)

@ ./client/store/index.js 5:0-53
@ ./client/main.js

WARNING in ./client/store/modules/konvaStore.js

/app/client/store/modules/konvaStore.js
33:17 warning Unexpected console statement no-console
79:13 warning Unexpected console statement no-console
84:13 warning Unexpected console statement no-console
95:13 warning Unexpected console statement no-console
110:13 warning Unexpected console statement no-console

✖ 5 problems (0 errors, 5 warnings)

@ ./client/store/index.js 6:0-49
@ ./client/main.js

ERROR in ./client/main.js

/app/client/main.js
6:8 error 'bootstrap' is defined but never used no-unused-vars
42:46 error 'e' is defined but never used no-unused-vars

✖ 2 problems (2 errors, 0 warnings)

ERROR in ./client/main.js
Module not found: Error: Can't resolve 'imports' in '/app'
@ ./client/main.js 6:0-34

npm ERR! Linux 3.13.0-112-generic
npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "run" "build"
npm ERR! node v6.10.3
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build: `cross-env NODE_ENV=production webpack —progress —hide-modules`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the [email protected] build script 'cross-env NODE_ENV=production webpack —progress —hide-modules'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the warlock-server package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! cross-env NODE_ENV=production webpack —progress —hide-modules
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs warlock-server
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls warlock-server
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR! /app/npm-debug.log

Server: Синхронизация

Сейчас realtime-ивенты типа движения снарядов рассинхронизированы с клиентами, к тому же перемещение игроков не плавное.
Продумать решение, возможно реализовать нить синхронизации, отсылающую данный сигнал с определенной частотой (до 100мс)

Ящики (Backend)

Добавить на сервер базовый класс для ящиков (прим. аптечка, ящик с патронами и т.д.). Ящики должны спауниться в рандомные места через рандомный промежуток времени, заданный в определённом диапазоне (напр. [20;30] сек.). Так же добавить новые messag'ы для ящиков.

Server: Перенос socket-event'ов на Message. Документация API

Нужно перенести оставшиеся обращения к this.server.(...) на Message.
Убрать из entity геттер server(), таким образом сущности будут взаимодействовать с сокетами только через Message.
Задокументировать остаток API.

Прикрутить к проекту eslint

Добавить на проект линтер кода.
Возможно понадобятся разные конфиги для клиентского и серверного кода.

Ники игроков (frontend)

Нужно создать логин-скрин, в котором пока можно ввести только Nickname и нажать кнопку Play. Учесть валидацию на пустое поле. По нажатии на Play отправляем по вебсокету событие authenticate, в котором отправляем Nickname. Также необходимо реализовать отображение ника над самим спрайтом игрока (текстом).

UI

Обсудить, как будет выглядеть UI, и распределить задачи по работе над ним.

Damage (frontend)

Реализовать обработку событий, связанных с повреждениями.

Client: Папка public

Создать папку public, которая будет единой точкой входа для веб-сервера. Туда складывать всю статику, в т.ч.: index.html, favicon.ico, скомпиленный js/css.

EffectApplied (backend)

Все эффекты должны броадкастить событие effectApplied, в котором мы передаем:

  • entityName
  • effect ( имя класса эффекта, должно доставаться динамически: EFFECT_CLASS.constructor.name.toLowerCase() )

General: Перемещение игрока

При зажатии клавиши перемещения происходит следующее: сначала отрабатывает одинарное перемещение, а затем, спустя ~300мс срабатывает зажатие клавиши, и игрок начинает перемещаться постоянно. Нужно чтобы этой задержки не было, то есть при keydown мы начинаем двигать игрока, и двигаем до тех пор, пока не наступит keyup. Реализовать startMove и endMove для игрока.

Animate

Реализовать на фронте анимацию с использованием animate, в отличие от перерисовки по таймауту.

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.