33
2.5D игры и особенности разработки многопользовательских игр Полушкин Глеб (SM&Partners)

2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

  • Upload
    ontico

  • View
    674

  • Download
    4

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

2.5D игры и особенности разработки многопользовательских игр

Полушкин Глеб (SM&Partners)

Page 2: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Клиентские платформы●Adobe Flash Platform (Adobe Flash player)

●Unity3D (Unity Web player)

●Adobe Director (Adobe Shockwave player)●Microsoft WPF (Microsoft SilverLight).

Page 3: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Выбор для 2.5D игрОбычно для многопользовательских 2.5D браузерных игр выбирается Flash

Platform. C её хорошими характеристиками и транспортом - http, XMLSockets, RTMP* протоколы

Page 4: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Серверу оставьте транспорт сообщений и данных

Остальное отдавайте клиенту:

● Построение сцен 2.5D и сортировки объектов на сцене

● Поиск пути● Логика игры

Распределение логики между клиентом и сервером

Page 5: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Допустимые упрощения в построении игрового мира

Page 6: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Упрощения графики игрового мира● Упрощайте всё что можно● Следите за количеством точек в векторной графике● Используйте оптимизацию растра

Page 7: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Упрощения допустимые для редактирования

Игровой мир сталкивается с самым непредсказуемым создателем – пользователем:

● Пользователь захочет выставить все доступные вещи

● Пользователь обязательно будет ставить вещи мешающие другим

● Пользователь обязательно найдёт все баги

Page 8: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Решение для редактора -Редактор должен быть таким

же игровым элементом

Page 9: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Метод обоснованного обмана пользователя

Зачем обман – экономим ресурсы

Но важно знать кого именно мы обманываем. Кто наш пользователь?

Page 10: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Кто наш пользователь?Можно узнать это из:

● его профиля, с персональными данными,

● профилирующих тестов

● теста производительности его компьютера● GeoIP● анализа поведения пользователя внутри игры

Page 11: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Способы обоснованного обмана 1. Отвлечение внимания

2. Уговоры и юмор

3. Поощрение

4. Скрытие подробностей

5. Безграничные возможности

6. Введение третьего властного лица в игру

7. Красивые персонажи

Page 12: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Пользователь в игре уже настроен на то что его обманут в игровом

процессе

Page 13: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Персонажи - как не испортить ими идеальный игровой мир

Page 14: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Оценка способов сборки персонажейЧто такое миллион персонажей?

- по 8 вариантов вещей на место получаем 2пола*5мест^8вещей = 781250 уникальных персонажей ~1 миллион

- по 9 вариантов вещей на место получаем 2пола*5мест^9вещей = 3906250 уникальных персонажей ~3 миллионов

Page 15: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Критерии выбора способа сборкиКачественные характеристики:

- Качество персонажа

- Реалистичность и плавность движений персонажа

Количественные характеристики:

- Количество классов/полов/рас

- Насколько живой персонаж - как много у него движений

- Скорость интернета потенциального пользователя игры

Page 16: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

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

● Плохие количественные характеристики

● Хорошие качественные характеристики

● Подходит только для игр с совсем небольшим количеством вариантов персонажей. Иначе способ даёт огромные объёмы рутины для художников и аниматоров

Page 17: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Клиентская сборка векторного персонажа

Отрисовка руками скелетной анимации и каждой вещи в векторе. Далее клиентом натягивание векторных вещей на скелет

● Хорошие количественные характеристики

● Средние качественные характеристики

● Чем сложнее скелетная анимация, тем меньше клиент может позволить себе одновременных анимаций

Page 18: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Серверная сборка векторного персонажа

Отрисовка руками скелетной анимации и каждой вещи в векторе. Далее сервером натягивание векторных вещей на скелет

● Хорошие количественные характеристики

● Средние качественные характеристики

● Чем сложнее скелетная анимация, тем меньше клиент может позволить себе одновременных анимаций, но больше чем при клиентской сборке

Page 19: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Клиентская сборка растрового персонажа

Отрисовка руками скелетной анимации и каждой вещи в растре. Далее клиентом натягивание растровых вещей на скелет

● Хорошие количественные характеристики

● Плохие качественные характеристики

● Чем сложнее скелетная анимация, тем меньше клиент может позволить себе одновременных анимаций

Page 20: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Серверная сборка растрового персонажа

Моделинг 3D художником и аниматором персонажа с одетыми вещами. Сервером выбирается нужные вещи, рендерится и клиенту выдаётся нужный персонаж

● Хорошие количественные характеристики

● Лучшие качественные характеристики

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

Page 21: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Дешевая серверная растровая сборка

● Модель – 3DMax● Конвертер в blender – max2blender● Серверный рендер – blender+cmb-render, на выходе cmb файл c покадровай растровой анимацией вещи с картой высот

● Сборщик – smtool + cmb-combine, на выходе анимация swf из нужных вещей и кадров

Page 22: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Увеличение количества вещей:

сводится к изменению blender модели

Плюсы:

- Производительность

Сборка новой незакешированной swf - 1 секунда на 100 кадров, при 5ти одетых вещах

- Стоимость- 4 недели системного разработчика

Минусы:

- blender использует рендер без какой либо аппаратной графической поддержки - рендер cmb долгий процесс.

Page 23: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Выбор метода сборки● Малое количество вещей – ручная сборка

● Несложные, с малым количеством деталей персонажи – клиентская векторная сборка

● На сложных персонажах выбираем серверную растровую сбоку. Мы жертвуем скоростью загрузку в пользу реалистичности.

Page 24: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Масштабируемостьсерверной части

Игровой сервер? Разрабатывать свой или использовать готовый? Вопрос рентабельности и масштабности проекта. В любом случае нам нужен сервер с высокими показателями стабильности и масштабируемости. Мы рассматриваем игровой сервер, как некий уже рабочий отлаженный программный продукт.

Page 25: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Общие возможности SmartFoxServer по нагрузкам

Создание комнаты:

● Одновременных подключений: 5000

● Скорость подключений пользователей: 10 клиентов в секунду

● Создано комнат: 1000

● Загрузка канала: 55-60Мбит/с● Загрузка процессора: 5-6%● Потеряных сообщений: 0

Page 26: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Создание комнаты 2 - критическая нагрузка:

● Одновременных подключений: 7500

● Скорость подключений пользователей: 10 клиентов в секунду

● Создано комнат: 1500● Загрузка канала: ~86Мб/с● Загрузка процессора: 18-20%● Потеряных сообщений: ~12К

Page 27: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Атака личными сообщениями:

● Одновременных подключений: 20000

● Скорость подключений пользователей: 10 клиентов в секунду

● Всего комнат: 1● Загрузка канала: ~28Мб/с● Загрузка процессора: 22-24%● Потеряных сообщений: 0

Page 28: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Вывод: высокая стабильность и масштабируемость

Дополнительные данные тестирования

http://www.smartfoxserver.com/products/benchmarks.htm

Page 29: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Кластер с общей базой данных

Page 30: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Кластерное решение от Terracotta

Page 31: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Решение — сетевая оперативная память

Дополнительная информация:http://www.smartfoxserver.com/download/SmartFoxServer-Clustering.pdfhttp://en.wikipedia.org/wiki/Terracotta_Clusterhttp://www.infoq.com/articles/open-terracotta-intro

Page 32: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

SmartFoxServer Amazon EC2 AMIУ SmartFoxServer есть образ слепок системы Ubuntu 7.04 с предустановленным

SmartFoxServer PRO 1.6.3 с разработческой лицензией под Amazon EC2.

Данные по слепку системы● http://www.smartfoxserver.com/labs/ami/● http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1903&categoryID=101

Page 33: 2.5D игры и особенности разработки многопользовательских игр (Глеб Полушкин)

Спасибо за внимание!

Глеб Полушкин

SM&Partners

+7 495 787 68 57

[email protected]