Play now

среда, 13 ноября 2013 г.

HEX technology




Создание онлайн игры на Unity. Free Source !!!

Настал тот час, когда я решил открыть все исходники моей онлайн игры.

Забирайте, разбирайтесь и запускайте !

На все вопросы буду отвечать в комментариях к статье.

В отдельных случаях могу помочь с настройкой под вашу игру.

Всего написание заняло 3 месяца . Это сама игра и ее сервер.


https://dl.dropboxusercontent.com/u/45268501/OXYpuzzle/PazzleProject.zip

https://dl.dropboxusercontent.com/u/45268501/OXYpuzzle/ServerSource.zip

https://dl.dropboxusercontent.com/u/45268501/OXYpuzzle/PhotonSDK.zip

Удачи :)

четверг, 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 игрока.





пятница, 23 августа 2013 г.

Секреты анти-оптимизации в Unity или как достичь 10 FPS

  1. Двигайте static object, как можно чаще
  2. Кому нужно сжатие текстур? Только не мне !
  3. Текстурный....атлас...что это ?
  4. Debug.Log EVERYWHERE !!! В каждой строчке кода! в каждой функции Update !
  5. Поместите побольше кода в Update ()   !!!
  6. OnGUI anything  используйте стандартный OnGUI .
  7. Ты имеешь Mesh Collider, и Я имею Mesh Collider. Все имеют Mesh Collider.
  8. Материалы!!! Побольше материалов !!!
  9. Destroy() в каждой строчке :)
  10. GameObject.Find.FindGameObjectWithTag.FindWithTag.FindObjectsOfType 
  11. Главный персонаж  (2000 полигонов) + Враги ( 2000 * 30 человек)= 62 000 полигонов одновременно !!!
  12. Skybox для 2D игры - лучший выбор (+ 6 drawcall сразу)
  13. Максимум света - прикрепите источник света на каждый лазер, на каждый снаряд !!!

вторник, 20 августа 2013 г.

Obama says: "Not bad"

Обновление правил блога : 

Теперь комментарии могут оставлять все читатели не ожидая проверки!


воскресенье, 18 августа 2013 г.

Next Castle Party 2013



NextCastle Party – это уникальный некоммерческий игровой фестиваль, который пройдет в Санкт-Петербурге 2-го ноября 2013 года. Основной акцент делается на независимых разработчиках и ретро-играх.

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


------------------------------------------------------------------------------------------------------------
NextCastle 2012

четверг, 3 января 2013 г.

Сервер для игры

После длительного перерыва, возвращаюсь к освоению игровых технологий. На этот раз задачей будет связать простую сцену на Unity и базу данных.

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

Для начала выбрал следующие технологии: MySQL для сервера и .NET для редактора.