2.5D игры и особенности разработки...

Post on 17-Dec-2014

685 views 4 download

description

 

Transcript of 2.5D игры и особенности разработки...

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

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

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

●Unity3D (Unity Web player)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3. Поощрение

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

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

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

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

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

процессе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Плюсы:

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

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

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

Минусы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SM&Partners

+7 495 787 68 57

business@smandpartners.ru