815750 85917 Timofeev p p Alekseev m n Sofiano t a Anglo Russkiy Geologic
Alekseev
Transcript of Alekseev
Практика создания социальной игры
Николай Алексеевпрограммист mail.ru games
LUA
Реализация игровой логики
Простой и производительный язык
Похож на javascript
Сервер окружений
Все очень просто
Клиент (flash)
LUA N
LUA 2
LUA 1
Хранение данных
Данные хранятся в оперативной памяти
+ Быстрота операций чтения/записи
+ Упрощение кода
- Возможность потери оперативный данных
- Занимаемое место в памяти
Микропотоки
Микропотоки Процессы
Блокировки
Нет проблем с блокировками
if (user[money] > 10) { user[items]++ user[money] = max (0, user[money] – 10)}
Подитог
Низкая связность кода
Повторное использование на всех играх
Удобный способ хранения
Нет блокировок
Клиент - сервер
Умный клиент
Простой код без детализации ошибок
Простой механизм локализаций
Артикулы
Генерация данных в родной код
Отсутствие дополнительных зависимостей
Дешевый доступ к данным
Многие задачи решаются без сервера
Структура рюкзака
user = { bag = { [32] = 4 } ….}
content.items = { [32] = { id = 32, price = 10, skills = { …. } } ….}
Управление контентом
Унифицированный интерфейс
Локализация
Отсутствие рутинного программирования
Unit test
Автоматическая проверка кода при изменении
Удобство в разработке
Улучшение качества кода
Масштабирование
Масштабирование – это просто