Мобильные платформыФорумОбщее

LocalDB на мобильных?

#0
13:07, 28 фев 2014

Наверное каждый, кто пробовал разрабатывать какие-нибудь экономические симуляторы или стратегии, особенно если по профессии занимается разработкой информационных систем, задумывался о том как удобно было бы создать БД, предзаполнить ее и использовать в игре.
Конечно есть альтернатива в виде сериализации всего и вся, а потом разворачивания этого дела в память, но тогда мы теряем возможность писать логику хранимками на SQL и объем данных ограничен ОЗУ.

Короче, вы поняли к чему я :)
Вопрос: пробовал ли кто-то и что именно использовал?
Может подскажете какое решение?
Мне надо:
- Работа с предзаполненными базами
- Полная поддержка T-SQL
- Работа на большинстве актуальных мобильных платформ (Android, iOS, WinRT, WP обязательно, остальное не особо важно).

#1
14:57, 28 фев 2014

T-SQL

С таким требованием остается только MS SQL Server :D

Смотри sqlite. Штатно имеется уже в Android и HTML5.
Есть сборки под разные ОС.

#2
15:12, 28 фев 2014

Ну, не только T, но и любой сравнивый по возможностям. Oracle тоже пошел бы :D

sqlite судя по всему единственный вменяемый вариант, да.

Еще нашел некую Ninja DB: поддержка всех платформ через Xamarin, а MSовских через .Net есть; обращения к ней через интегрированные запросы.
Из минусов - платная.

#3
16:17, 28 фев 2014

Ну, не только T, но и любой сравнивый по возможностям. Oracle тоже пошел бы

Из серии: посоветуйте электронный микроскоп помощнее. Мне гвоздь забить надо.

Зачем в игре мощная аналитика, распределенная база, маштабируемость по пользователя и прочее-прочее, тем более на мобильных ОС?
Хранимки без проблем можно реализовать и на уровне приложения.
Я даже не уверен, что даже транзакции нужны. База же в монопольном режиме скорее всего будет использоваться, правильно?

#4
16:37, 28 фев 2014

Привычка использовать крупные субд :)
Естественно все функции крупных СУБД не нужны, но
а) хранимки хочется настоящие, ибо при каждом вызове парсить и интерпретировать запрос - лишняя трата ресурсов (а значит, горячий телефон и севший аккумулятор)
б) транзакции нужны. например, чтобы посреди хранимки, когда уже сделаны изменения, то можно было их легко откатить. да и телефон может, например, сесть и резко выключиться во время выполнения транзакции - будет битая операция (например, золото потрачено, юнит не куплен).

Кстати, про sqlite говорят, что легко огрести проблемы с кодировками, ну и нормальных хранимок нет - печалит.

#5
16:47, 28 фев 2014

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

а) Неужто такие ядреные запросы будут, что время на их парсинг будет огромным? Поддержка кеша запросов то же ресурсы жрет.
б) Всё может быть, всё может статься. Для игры enterprise уровень защиты данных обычно не нужен.

По умолчанию в sqlite используется utf-8, который сейчас стал уже стандартной кодировкой. При желании можно и utf16 использовать.

Привычка использовать крупные субд

Да у вас, батенька, БД-головного мозга! :D

#6
19:06, 28 фев 2014

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

Ну это да, безумный уровень защиты не обязателен, но все же транзакции во многом еще и инструмент, используемый при описании бизнес-логики. "Если а, то откатывайся, если б, то коммит".

Ну и не отрицаю про БД головного мозга :)
Все же для простых целей и правда такой микроскоп как хочется не обязателен.

#7
19:39, 28 фев 2014

но все же транзакции во многом еще и инструмент, используемый при описании бизнес-логики

Делай проверку до вставки/изменения данных, чтобы обойтись без constrains (в том числе и FK/PK).
На потерю производительности мобил я бы подзабил - процы сейчас достаточно мощные почти везде, в отличии от видюх.
Вместо БД и текстовых файлов, я бы рассмотрел вариант XML (надо знать потребности, прежде чем советовать, поэтому не настаиваю :))

P.S. Сам DWH-разработчик на Oracle обычно.

#8
19:13, 4 мар 2014

Какой-то бред использовать БД для игр. Любой достаточно быстрый интепретатор + Json / Xml / скрипт для хранения данных. Сохранение данных на ключевых событиях - покупка денег, получение levelup'a, сворачивание приложения. Можно почитать как сделали в Battle for Westnoth: http://rus-linux.net/MyLDP/BOOKS/Architecture-Open-Source-Applica… wesnot-0.html

#9
19:33, 4 мар 2014

eyenie
> Какой-то бред использовать БД для игр.
Ты sqlite хоть видел?

#10
23:13, 4 мар 2014

Eyenie, если данные такие, что предполагают реляционную модель, а не объектную, то как раз таки БД - самое логичное решение.

Мобильные платформыФорумОбщее

Тема в архиве.