Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Многопользовательские браузерные игры нового типа

8,021 views

Published on

  • Dating for everyone is here: ❶❶❶ http://bit.ly/39pMlLF ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/39pMlLF ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Многопользовательские браузерные игры нового типа

  1. 1. Многопользовательские браузерные игры нового типа Александр Карпович, генеральный директор, 15 мая 2009
  2. 2. <ul><li>План доклада: </li></ul><ul><li>Знакомство </li></ul><ul><li>История проекта </li></ul><ul><li>Ситуация на рынке </li></ul><ul><li>Проблематика </li></ul><ul><li>Интересы участников </li></ul><ul><li>Субъективный вывод </li></ul><ul><li>Обзор клиентских технологий </li></ul><ul><li>Flash Player 10 </li></ul><ul><li>Игровой сервер </li></ul><ul><li>Итоги </li></ul>
  3. 3. Можно грабить корованы...
  4. 4. <ul><li>Flash 3D-движок </li></ul><ul><li>Физический 3D-движок </li></ul><ul><li>Интерфейсная библиотека </li></ul><ul><li>Быстрый real-time сервер </li></ul><ul><li>Тулзы </li></ul>
  5. 5. Adobe MAX 2009
  6. 8. Другим путём!
  7. 9. <ul><li>7 3D-движков </li></ul><ul><li>3 серверных движка </li></ul><ul><li>2 GUI-движка </li></ul><ul><li>2 физических движка </li></ul>
  8. 13. Город Лизы Шариковой
  9. 15. Застой?
  10. 16. Почему?
  11. 17. <ul><li>Технологическая база </li></ul><ul><li>Ограниченный бюджет, риски </li></ul><ul><li>Геймдизайнеры </li></ul>
  12. 18. Вомгла
  13. 19. <ul><li>Участники процесса: </li></ul><ul><li>Разработчики </li></ul><ul><li>Издатели, инвесторы </li></ul><ul><li>Игроки </li></ul>
  14. 20. Почему получается то, что получается?
  15. 21. Клиентская часть Антон Волков, технический директор
  16. 22. <ul><li>Распространение технологий: </li></ul><ul><li>Flash ~95% </li></ul><ul><li>Shockwave ~50% </li></ul><ul><li>JavaFX ~35% </li></ul><ul><li>Silverlight ~20% </li></ul><ul><li>Quest3D, Unity3D, O3D и др. ~1% </li></ul>
  17. 23. Flash в России
  18. 24. FPS Количество треугольников Производительность
  19. 25. FPS Anti-alias Количество треугольников
  20. 26. Изометрическое 3D с освещением
  21. 27. Перспектива
  22. 28. Перспектива
  23. 29. Демо-эффектам — нет! Даёшь практическое применение!
  24. 30. Миф о лёгкости объединения демок
  25. 31. <ul><li>Основная проблема — </li></ul><ul><li>последовательность отрисовки: </li></ul><ul><li>Сортировка по средним Z </li></ul><ul><li>Коррекция Z-конфликтов </li></ul><ul><li>BSP, kD, Octree </li></ul><ul><li>Подпространства </li></ul>
  26. 32. Multiuser Real-time Game Server Алексей Квиринг, ведущий программист
  27. 33. JBOSS Отлично подходит для бизнес-логики, но для игр многое придется начать с нуля. Не обладает достаточным быстродействием. FMS, RED5, SmartFoxServer <ul><li>Шаблонные решения для небольших проектов без серверных программистов: </li></ul><ul><ul><li>Упрощенная работа с данными; </li></ul></ul><ul><ul><li>Упрощенное серверное программирование; </li></ul></ul><ul><ul><li>Нет поддержки ресурсов на должном уровне. </li></ul></ul>
  28. 34. <ul><li>Apache Mina </li></ul><ul><li>Hibernate </li></ul><ul><li>JMS </li></ul><ul><li>JGroups </li></ul><ul><li>LDAP </li></ul><ul><li>Jabber </li></ul><ul><li>AspectJ </li></ul><ul><li>Quartz </li></ul>OSGi JAVA
  29. 35. Модели поведения Стул Автомобиль <ul><li>Имеет вес </li></ul><ul><li>Цвет </li></ul><ul><li>Стоимость </li></ul><ul><li>3D-модель </li></ul><ul><li>На нем можно сидеть </li></ul><ul><li>Имеет вес </li></ul><ul><li>Цвет </li></ul><ul><li>Стоимость </li></ul><ul><li>3D-модель </li></ul><ul><li>На нем можно сидеть </li></ul><ul><li>На нем можно ездить </li></ul>Модели поведения = Данные + Логика + Интерфейс клиент-сервер
  30. 36. Объектная модель сервера <ul><li>Вес </li></ul><ul><li>Цвет </li></ul><ul><li>Стоимость </li></ul><ul><li>Возможность сидеть </li></ul>Васин синий стул Синие стулья Красные стулья Игровой класс «Стулья»
  31. 37. Диспетчер Разработчик Ресурсный сервер PSD Web-сервер Игровой сервер Диспетчер Flash-клиент Cache, proxy JPG, XML /resource/id/version/image.jpg Загрузка/выгрузка 100 запросов 10 запросов Игровые ресурсы
  32. 38. <ul><li>Интерфейсы </li></ul><ul><li>Типы </li></ul><ul><li>Кодеки </li></ul><ul><li>Модели поведения </li></ul>Генерация кода <ul><li>Проверка типов </li></ul><ul><li>Автокомплит </li></ul><ul><li>Ошибки компиляции </li></ul>Генератор кода Java-код Maven Клиентский код Клиентские библиотеки
  33. 39. Протокол Код команды X Y Z Long 8 bytes Number 8 bytes Number 8 bytes Number 8 bytes Код команды battleName players Long 8 bytes ShortString 1 byte + N bytes ShortArray of int 1 byte + 4xN bytes
  34. 40. Протокол Скорость <ul><li>Асинхронные сокеты; </li></ul><ul><li>Постоянное соединение; </li></ul><ul><li>Apache Mina; </li></ul><ul><li>Простая бинарная структура, быстрое кодирование/декодирование. </li></ul>Минимальный размер пакета <ul><li>Принимающая сторона всегда знает какие типы данных она ожидает; </li></ul><ul><li>Маркеры не нужны; </li></ul><ul><li>Три способа передачи длины массива; </li></ul><ul><li>GZip архивирование. </li></ul>Удобство для программиста <ul><li>Генерация клиентского кода по серверным моделям поведения; </li></ul><ul><li>Передача любых структур, перечислений и массивов. </li></ul>
  35. 41. Способы оптимизации <ul><li>Кеширование базы данных (кеш второго уровня Hibernate); </li></ul><ul><li>Отложенная запись в базу данных; </li></ul><ul><li>Многопоточное программирование; </li></ul><ul><li>Кластер. </li></ul>
  36. 42. Кластер User User User User User Координатор Сетевой сервер Сетевой сервер Сетевой сервер Игровой сервер Игровой сервер JGroups Hibernate
  37. 43. Система администрирования
  38. 44. Сервер в работе
  39. 45. Пофантазируем?
  40. 46. Технологическое партнёрство — ваш продакшн + наши технологии
  41. 47. Ваше приглашение в закрытое тестирование Танки Онлайн
  42. 48. Спасибо за внимание! Александр Карпович +7 902 790 9419 Антон Волков +7 902 473 1986 Алексей Квиринг +7 902 830 2324 [email_address] [email_address] [email_address]

×