Привет всем, кто интересуется 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 игрока.
Ссылка на игру исправлена, работает только в режиме 1 игрока.
Комментариев нет:
Отправить комментарий