Skip to content

Unity клиент 2D MMORPG игры Игорь

Notifications You must be signed in to change notification settings

webrobot1/igor-unity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Демонстрационная 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, клиентская часть

About

Unity клиент 2D MMORPG игры Игорь

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published