Coder Social home page Coder Social logo

igor-unity's Introduction

Демонстрационная 2D MMORPG игра "Игорь" (клиент) проекта http://mmogick.ru/ на Unity.

Смотрите так же Игорь - серверная часть.

Демо тут

Слайд16

При компиляции не забудьте сменить ИД игры на вашу (из сервиса)

Общее описание папок:

Assets\Plugins						- плагины для работы с игры Unity с: фокусом WebGl, страницы отладки на странцие http://mmogick.ru/api, websocket в тч webgl и др описанные в этой папке отдельно
  Assets\Plugins\GitIntegration				- плагины интеграции с Git по статье https://habr.com/ru/post/493488/
  Assets\Plugins\Joystick Pack				- джойстик ttps://assetstore.unity.com/packages/tools/input-management/joystick-pack-107631
  Assets\Plugins\SharpZipLib		    		- плагин распаковки игровых карт (http://mmogick.ru/articles/frontend/index/eyJpZCI6MTd9) которые приходят с сервера
  Assets\Plugins\Startup		    		- добалвяет сцену RegisterScene и MainScene в настрйоки сборки билда + может подтягивать доп плагины из unity (не обязателен в проекте)
  Assets\Plugins\WebGLSupport		    		- набор плагинов нужных в сборке WebGl для: работы фокуса текстовых полей, изменение размера окна, Websocket соединения (в браузере), работы с отладкой в админ панели (http://mmogick.ru/articles/frontend/index/eyJpZCI6MjB9)
  Assets\Plugins\WebsocketSharp				- скомпилирвоанный плагин (https://github.com/sta/websocket-sharp) для Websocket соединения (в мобильных устройствах и ПК)
  Assets\Plugins\MyFantasy		   		- плагин для интеграции с онлайн-сервером http://mmogick.ru/articles/frontend/index/eyJpZCI6M30=
	Assets\Plugins\MyFantasy\Model  		- базовые классы моделей (PlayerModel.cs, EnemyModel.cs, ObjectModel.cs) которые изменяют анимацию в клиенте в зависимости от того что за стандартные данные (например координаты) пришли
	Assets\Plugins\MyFantasy\Protocol  		- содержит классы что создают WebSocket класс (для браузера и ПК с мобилками он разный) и вешают на него обработчики
	Assets\Plugins\MyFantasy\Scripts\Controller 	- игровые классы 
	  BaseController.cs		 		- базовый класс от которого наследуются RegisterController.cs и ConnectController.csю содержит адрес сервера и общий метод для управления фокусов в WebGl и http запросов
	  ConnectController.cs				- создает инициализирует вызрв класса WebSocket, обрабатыавет пакеты с игровым миром и шлет данные дальше в модели через метод SetData
	Assets\Plugins\MyFantasy\Struct  		- описание структур запросов и ответов от сервера
	  Map\						- описание стрктур на которые разбивается декодированная карта с сервера
	  Recive\  					- описание структур полученных от сервера данных (это базовые полученыне пакеты которые не зависят от компонтентов и механик в админке, например карты, авторизация и тд)
	  Response\  					- описание структур отправляемых на сервер данных (это базовые запросы которые не зависят от компонтентов и механик в админке, например для движения) 
Assets\Resources		- папка с графикой и префабами (пока у сервера нет функционала загрузки и работы с графикой и анимацией что бы хранить ее на сервере)
Assets\WebGLTemplates  		- содержит шаблон WebGl для работы панели отладки (http://mmogick.ru/articles/frontend/index/eyJpZCI6MjB9) - отличается от стандартного наличием дополнительного JavaScript кода 
Assets\Scenes			- содержит сцену входа/регистрации и сцену игры. тк все даныне карт и инфомрация о объектах содержится на сервере - то сцена пуста, ее заполняет Assets\Scripts\Controller\ConnectController
Assets\Scripts\Model  		- классы моделей префабов (унаследованных от PlayerModel.cs, EnemyModel.cs, ObjectModel.cs) которые изменяют анимацию в клиенте в зависимости от того что за данные пришли (в частности компоненты)
Assets\Scripts\Struct  		- описание структур запросов и ответов от сервера
  Recive\  			- стуктуры что нужно переопределить в плагине (в частности это стукруты игроков, монстров и объектов и их пользовательские поля (http://mmogick.ru/articles/frontend/index/eyJpZCI6MTl9))
  Response\  			- структуры игровых механик (команд что отправляются с клиента) с данными что ожидает сервер (настраиваются в личном кабинете сервера http://mmogick.ru/articles/frontend/index/eyJpZCI6MTh9)
Assets\Scripts\Controller       - игровые классы 
  CameraController.cs		- изменение размер отдаления камеры для разного масштаба
  PlayerController.cs   	- класc обрабатывает что нажал игрок и что надо отправлять на сервер, наследуется от ConnectController
  RegisterController.cs		- класс обработчик сцены входа и регистрации в игру , после загружает сцену Main и передает управление PlayerController.cs 

Для разработки непосредственно вашей игры вам работать в папке Assets/Scripts, подробнее в документации на сайте

PS NewTonJson выбран взамен стандартного UnityJson для работы со структурами не просто так, менять его на UnityJson - на свой страх и риск 
PS для webgl может понадобиться отключить profiling в Built Settings тк забьется память браузера в console после прихода по websocket большого количества пакетов	 

Игра одинаково хорошо взаимодействует с сервером в версиях для ПК, браузеров или мобильных устройств

Презентация игрового сервера Моя Фантазия от программиста Стрельцова Михаила Вячеславовича Игорь - 2D MMORPG на Unity, клиентская часть

igor-unity's People

Contributors

webrobot1 avatar

Stargazers

 avatar

Watchers

 avatar

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.