3. Зачем нам все это?
• Плюсы
– Каждый писал игрушки в детстве
– Рынок доступен каждому
– Это интересно
– Радость от результатов
• Минусы
– Играть и разрабатывать — не одно и то же
– Большой уровень вхождения
– Играть в игры уже не хочется
10. Обычная задача для game-handler
melee attack
• Валидация параметров
• Расчет урона
• Отправка клиенту списка
команд(нанесение урона, смерть юнита)
11. Обычная задача для game-handler
melee attack
• Валидация параметров
• Расчет урона:
– у атакующего юнита есть меч, который наносит двойной урон для
скелетов
– у атакованного есть броня +10% от двуручного оружия
– на атакованного наложено заклинания “проклятье” – атакующий наносит
половинный удар
– битва проходит на святой земле, где с вероятностью 70% урон от
“черных ” заклинаний сокращается на половину
– у атакуемого юнита висит амулет, увеличивающий силу черной магии на
25%
– у атакуемого юнита есть аура: 20% урона с вероятностью 25%
возвращается атакующему
• Отправка клиенту списка команд (нанесение урона, смерть юнита)
12. Другие виды задач
• Общие
– Селекция целей
– Выбор оружия
– Поиск пути
• Сетевые
– Пинг и быстродействие
– Оптимизация производительности сервера
– Таинственные баги Flash или другой клиентской
платформы
20. Примеры багов
• ООП костыли
– Уплывший корабль
– Фау 2 в Блицкриге
– Патроны для собаки
• Большое количество if
– Воздушный щит при осаде
• Непродуманные граничные условия
– Лучники в Викингах
23. Ошибки
• Ошибки будут всегда
• Правильное логирование
• Устойчивость к нештатным ситуациям
• Терминаторы и восстановление состояния
24. Gameplay
• Моделирование
• Гибкость настройки игровых параметров
• Гейм-дизайнеры должны иметь
возможность менять максимальное
количество параметров без участия
программистов
25. Тестирование
• Сложность автоматического тестирования
• Привлечение community
• Логирование и анализ поведения
пользователя
• Возможность динамически менять уровни
логирования
26. Безопасность!
• Клиенту доверять
нельзя
• Ради нового стула
пользователи готовы
10 часов "хакать" ваше
приложение.
27. Безопасность
• Проверка на сервере
• Система арбитров
• Основные характеристики на клиенте
должны быть защищены от artmoney
• Шифрования трафика
• Проверка подлинности
• Проверка “времени жизни” пакета