Play now

четверг, 7 ноября 2013 г.

Создание онлайн игры на Unity. Мой опыт

Привет всем, кто интересуется Unity 3D  и разработкой игр на нем. 

Наконец-то я решился поделится своим опытом в создании своей первой онлайн игры.


Создание игры + сервер  заняло целых 3 месяца весны :) В итоге получил полноценную игру, правда до сих пор не разместил ее в маркетах. (так как изначально эта задача была на плечах заказчика). Но все же дело сделано, коды написаны, ачивки получены !

Итак преступим к делу. С чего начиналось создание игры под названием "PuzzlePro".

Если коротко, игра - собирание комбинаций слов на игровом поле. Все это делается на скорость и одновременном с противником. Поэтому онлайн является важной частью геймплея. 


А теперь о технической стороне.

В качестве сервера я выбрал Photone, так как у него хорошая поддержка unity среды и неплохая документация.  В Photone используется C#, что особенно удобно для unity разработчиков. 

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

Скажу сразу, что есть такая вещь как Photone Cloud. Это тот же Photone server , но с некоторыми ограничениями .  Вы не сможете редактировать серверный код, и поэтому ваш сервер не сможет  работать с базой данных.


Поэтому советую сразу использовать стандартный photone server и размещать его на любом удобном хостинге. (например Amazon Cloud)




Вначале я решил использовать MySQL, так как уже раньше работал с ней. Но так как Photone сервер поддерживает только windows хостинг - позже перенес базу на MS SQL
Кстати она и будет скорее всего установлена по умолчанию на Windows Server. 


Перенос с одной базы на другую получился очень легким благодаря использованию HNibernate. Это прослойка между вашим кодом и SQL запросами. 


У него есть сразу два больших плюса  - это поддержка всех популярных баз данных, а также упрощение сохранения ваших игровых данных, особенно если речь идет об объектно-ориентированном подходе.

Если вы раньше не работали с базами данных - то советую использовать Denwer. Он автоматически установит и настроит связку MySQL+PHP+MyAdmin. 


Именно  это позволит вам просматривать и изменять данные через удобный интерфейс локально, даже без подключения к интернету .


Но чтобы вы ни выбрали -сначала вам нужно будет установить  Photone server.

В этом вам поможет эта подборка видеоуроков. В них вы узнаете все необходимое для создания самого простого клиент- серверного приложения на Unity. 


После того, как вы настроите обмен запросами между клиентом и сервером - можно переходить к механизму хранения информации, то есть базе данных.

Как я уже говорил, проще всего использовать Nhibernate. Вот собственно хороший мануал по этой технологии.

Данных материалов должно хватить вам для создания самого простого сервера игры на Photone.

В следующем посте я поделюсь некоторыми секретами разработки и выложу исходники готовой онлайн игры :) 

P.S так как основной сервер игры временно отключен - выкладываю одиночную версию PuzzlePro. 


Update :

Ссылка на игру исправлена, работает только в режиме 1 игрока.





Комментариев нет:

Отправить комментарий