Многопользовательские браузерные игры нового типа Александр Карпович, генеральный директор, 15 мая 2009
<ul><li>План доклада: </li></ul><ul><li>Знакомство </li></ul><ul><li>История проекта </li></ul><ul><li>Ситуация на рынке <...
Можно грабить корованы...
<ul><li>Flash 3D-движок </li></ul><ul><li>Физический 3D-движок </li></ul><ul><li>Интерфейсная библиотека </li></ul><ul><li...
Adobe MAX 2009
 
 
Другим путём!
<ul><li>7 3D-движков </li></ul><ul><li>3 серверных движка </li></ul><ul><li>2 GUI-движка </li></ul><ul><li>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>Игроки ...
Почему получается то, что получается?
Клиентская часть Антон Волков, технический директор
<ul><li>Распространение технологий: </li></ul><ul><li>Flash ~95% </li></ul><ul><li>Shockwave ~50% </li></ul><ul><li>JavaFX...
Flash в России
FPS Количество треугольников Производительность
FPS Anti-alias Количество треугольников
Изометрическое 3D с освещением
Перспектива
Перспектива
Демо-эффектам — нет! Даёшь практическое применение!
Миф о лёгкости объединения демок
<ul><li>Основная проблема — </li></ul><ul><li>последовательность отрисовки: </li></ul><ul><li>Сортировка по средним Z </li...
Multiuser Real-time Game Server Алексей Квиринг, ведущий программист
JBOSS Отлично подходит для бизнес-логики, но для игр многое придется начать с нуля. Не обладает достаточным быстродействие...
<ul><li>Apache Mina </li></ul><ul><li>Hibernate </li></ul><ul><li>JMS </li></ul><ul><li>JGroups </li></ul><ul><li>LDAP </l...
Модели поведения Стул Автомобиль <ul><li>Имеет вес </li></ul><ul><li>Цвет </li></ul><ul><li>Стоимость </li></ul><ul><li>3D...
Объектная модель сервера <ul><li>Вес </li></ul><ul><li>Цвет </li></ul><ul><li>Стоимость </li></ul><ul><li>Возможность сиде...
Диспетчер Разработчик Ресурсный сервер PSD Web-сервер Игровой сервер Диспетчер Flash-клиент Cache, proxy JPG, XML /resourc...
<ul><li>Интерфейсы </li></ul><ul><li>Типы </li></ul><ul><li>Кодеки </li></ul><ul><li>Модели поведения </li></ul>Генерация ...
Протокол Код команды X Y Z Long 8 bytes Number 8 bytes Number 8 bytes Number 8 bytes Код команды battleName players Long 8...
Протокол Скорость <ul><li>Асинхронные сокеты; </li></ul><ul><li>Постоянное соединение; </li></ul><ul><li>Apache Mina; </li...
Способы оптимизации <ul><li>Кеширование базы данных (кеш второго уровня Hibernate); </li></ul><ul><li>Отложенная запись в ...
Кластер User User User User User Координатор Сетевой сервер Сетевой сервер Сетевой сервер Игровой сервер Игровой сервер JG...
Система администрирования
Сервер в работе
Пофантазируем?
Технологическое партнёрство — ваш продакшн + наши технологии
Ваше приглашение в закрытое тестирование Танки Онлайн
Спасибо за внимание! Александр Карпович +7 902 790 9419 Антон Волков +7 902 473 1986 Алексей Квиринг +7 902 830 2324 [emai...
Upcoming SlideShare
Loading in...5
×

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

7,700

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
7,700
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  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]
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×