|
|
|
Канал Игры Мечты: «Использование баз данных в "элитных" играх.» |
|
Как лучше управляться с данными в больших играх? |
Данные упаковываются в компанентах программы вместе с кодом. |
|
10% |
[ 1 ] |
Использовать отдельные гипертекстовые файлы. |
|
10% |
[ 1 ] |
Написать простую СУБД заточенную под конкретный проект. |
|
20% |
[ 2 ] |
Подобрать готовую СУБД наиболее подходящую в данном случае. |
|
60% |
[ 6 ] |
|
Всего проголосовало : 10 |
|
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Обсуждаем вопрос использования СУБД для хранения данных в игровых проектах.
Так или иначе любая программа это код и набор данных, причём постоянно модифицируемых как в процессе разработки, так и в зависимости от вида программы -- в процессе её исполнения.
Игровой проект не исключение, а яркое подтверждение данного тезиса, тем более в играх данные наиболее разнообразны.
Возможно в небольшой игре данные не так многочисленны и управляться с ними не трудно, что нельзя сказать о проекте где речь идёт о множестве планет космолётов и станций, к коим относятся "элитные" игры.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (10:35 09-11-2008), всего редактировалось 1 раз |
|
|
Diff
708 EGP
      Рейтинг канала: 2(11) Репутация: 44 Сообщения: 4179 Откуда: Сферическая Земля в вакууме. Зарегистрирован: 04.07.2003
 |
|
Телега впереди паровоза.
Имхо, вопрос надо ставить не "Для чего бы нам использовать БД?", а "Имеются данные такой-то структуры, такого-то объема, движок программы предъявляет к ним такие-то требования. Как их организовать?" Но без конкретизации перечисленного (и много чего еще) вопрос смысла не имеет.
Лично мне не кажется, что объем данных игры, хоть элитной, хоть нет, требует организации БД.
_________________ Конец света в конце тоннеля
Последний раз редактировалось: Diff (13:11 08-12-2008), всего редактировалось 2 раз(а) |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Вот столкнулся с таким затруднением, есть желание использовать для своего проекта Oracle.
Количество объектов будет огромным по этому есть идея сделать отдельные базы для каждой планеты. Основной плюс возможность разнести часть баз со временем на разные сервера (не надо будет мудрит с кластером), возможность отдельного администрирования баз.
Ускорение работы проекта за счёт дублирования программ обработчиков событий для каждой планеты, в общем распараллеливание вычислений естественным путём.
Отдельная база для характеров индивидов, а также для транспортных средств и стационарных космических комплексов. Программы игрового ИИ будут работать непосредственно с ней.
Отдельная база для товаров и расчёта экономики мира UEF.
Также можно сделать отдельную базу для объектов микромира и обработки звёздной механики.
Базы для планет создавать копируя некоторую эталонную базу с усреднёнными параметрами без объектов, потом частично в ручную, частично автогенерацией формировать уникальные свойства, ландшафт и при необходимости флору и фауну, в плоть до индивидов и продуктов их жизнедеятельности.
В общем затруднение в том, что сделать программный комплекс на нескольких базах, при чём число будет постоянно увеличиваться -- как с этим хозяйством справиться пока в голове не может уложиться.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (05:40 25-07-2010), всего редактировалось 1 раз |
|
|
Diff
708 EGP
      Рейтинг канала: 2(11) Репутация: 44 Сообщения: 4179 Откуда: Сферическая Земля в вакууме. Зарегистрирован: 04.07.2003
 |
|
Размах впечатляет. Вообще, почему бы и нет. Только по-моему, 90% данных там будут статичными - то есть однажды забитыми и никогда не изменяемыми. Нужна ли здесь база? Может, да, а может и нет.
Zachesa : |
В общем затруднение в том, что сделать программный комплекс на нескольких базах, при чём число будет постоянно увеличиваться -- как с этим хозяйством справиться Совсем запутался... пока в голове не может уложиться.
|
Ты слишком сильно размахнулся. Тут от простого к сложному идти надо.
Отдельные базы для каждой планеты - в любом случае безумие.
_________________ Конец света в конце тоннеля |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Diff : |
Отдельные базы для каждой планеты - в любом случае безумие.
|
Согласен что сначала надо сделать все планеты в одной базе в виде наборов таблиц, которые при развитии проекта могут быть легко перенесены в новую базу.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Определился окончательно использовать несколько баз для проекта UEF на основе PostgreSQL, с Oracle у меня нет времени и сил разбираться, тем более у этой СУБД достаточные возможности для творческих изысков (даже с половиной ещё не разобрался )
Пока это будет четыре базы на одном сервере, потом по мере развития проекта основную базу можно будет вынести на отдельный сервер, а далее уж выносить таблицы с группами объектов в новые базы на другие сервера (здесь как уже принято на канале КИМ раздаётся дружный смех).
Основная база будет содержать общие понятия, виды и свойства объектов, текстуры и меши, фразы, образцы договоров и формулы расчётов.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
На новой работе познакомился с СУБД Cashe http://intersystems.ru/cache/index.html заинтриговала данная штука скоростью работы.
Что особо понравилось, так это то, что по сути идёт объединение в одной системе сервера и СУБД, снижаются расходы на запись и чтение данных. Есть аналог open source GT.M. Фактически программа на MUMPS http://ru.wikipedia.org/wiki/MUMPS обращается к данным в базе также как и к переменным в ОЗУ. Сам по себе язык MUMPS довольно примитивен (по современным понятиям) и имеет нестандартный синтаксис, но Cashe является виртуальной машиной, что ставит его вровень к примеру с Java. Потом есть инструменты для работы с Cashe при помощи других языков и сред.
Конечно это технология очень редко применяется, специалистов очень мало, отсутствует русскоязычная документация. И насколько менее требовательным был бы игровой сервер MMO игры на Cashe к ресурсам можно только представить.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
О боже... Вам в Летограф... Оно там применялось. Если конечно Летограф не умер. А вообще... Все просто: PostgreSQL в качестве тяжелого бекэнда, Memcached в качестве прослойки между бекэндом и сервером, Си в качестве движка и C#(предпочтительней Mono, ибо может много)/Lua/Python/Perl(Я фанат этого) в качестве скрипт языка. Если это веб, то FastCGI с nginx в качестве прозрачного прокси для быстрой отдачи статики и nginx поверх для балансинга, если статика отдается медленно.
Если это 3д с клиентом, то Си в качестве сервера (исключительно на Linux, так как в Венде только Completion Ports дают нормальную скорость работы но ценой оперативки и доступны только на серверах).
добавлено спустя 1 минуту:
Если-же хотите скорости при обсчете физики/чегото похожего, то Tesla S1070 вам в помощь.
_________________ WARNING: By reading this post you accept that this post is genius.
Последний раз редактировалось: Варсик (21:19 21-07-2010), всего редактировалось 1 раз |
|
|
Crimson
560 EGP
    Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003
 |
|
Zachesa : |
Основная база будет содержать общие понятия, виды и свойства объектов, текстуры и меши, фразы, образцы договоров и формулы расчётов.
|
Нахрена, я извиняюсь, текстуры и меши в основной базе?
|
|
|
бухой джедай
183 EGP
  Рейтинг канала: 2(19) Репутация: 70 Сообщения: 7906 Предупреждений: 1 Откуда: Одесса:) Зарегистрирован: 08.09.2007
 |
|
Crimson : |
текстуры и меши в основной базе
|
ну единственное что приходит в голову чтоб их можнобыло сортировать по признаку и применять в зависимости от этого ...
_________________ Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист... |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Crimson : |
текстуры и меши в основной базе?
|
сами эти данные статичны и поэтому в базе нужно только описание их и ссылки на файлы.
Кстати сама
тоже вещь довольно таки статичная и вместе с другими ресурсами будет дублироваться в клиентах, обновляясь как и сами ресурсы, так и исполняемые модули клиента по мере развития проекта. Для неё можно использовать обычный XML файл, который будет разворачиваться в ОЗУ во время работы клиентского (и серверного тоже) ПО.
Warstone : |
Если конечно Летограф не умер.
|
http://www.letograf.ru/letograf/site/products/materials/page3.html здравствует вроде бы ещё.
Мне не интересна сама по себе Каше, не считая, что мне с ней приходится работать и она кстати вызывает меньше проблем чем связка 1C8 Предприятие с MSSQL, работая с тем же объёмом данных. Интересна сама идея совмещения сервера приложений и баз данных и нет ли более современных её реализаций. То что предлагает ИнтерСистемс на самом деле красивая обёртка над лохматой технологией MUMPS.
Мне пришлось буквально ломать голову, чтоб представить мир проекта UEF в виде совокупности взаимосвязанных двухмерных таблиц. Механизм обращения с SQL СУБД, кэширование запросов к базам всё это конечно здорово и технологично, но как это далеко от реального отображения мира, в том числе и виртуального.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Zachesa : |
чем связка 1C8 Предприятие с MSSQL
|
Привет от убежденного Постгрешника.
Zachesa : |
Интересна сама идея совмещения сервера приложений и баз данных и нет ли более современных её реализаций.
|
ривет от постгрешника. Тут язык Хранимых процедур - любой... От PL/pgSQL (PL/SQL негодует на клона) до PL/Mono, PL/TCL, PL/Perl короче - любой.
Zachesa : |
но как это далеко от реального отображения мира
|
Откройте для себя NoSQL СУБД вообще и BerkleyDB в частности.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Буквально излазил весь интернет прежде чем нашёл http://www.esiobjects.org/ -- свободная "объектно-ориентированная среда разработки и выполнения приложений" для СУБД Cashe, MSM и, самое главное для меня, недавно портированная для GT.M.
Warstone : |
Откройте для себя NoSQL СУБД вообще и BerkleyDB в частности.
|
Так об этом и речь, но вот только мне не интересна просто иерархическая СУБД, как BerkleyDB, вопрос в том что GT.M это и сервер приложений и "NoSQL СУБД" в одном флаконе. Что же касается встроенных языков хранимых процедур -- это конечно интересно, но я не видел примеров реализации сервера приложений чисто внутри таких СУБД и что-то мне подсказывает, что на это есть свои причины.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
С GT.M пока ещё не привелось поработать, дома хочется отдохнуть от компьютера, а на работе только только выбил хлам под тестовую машину и "с дуру" решил поставить Gentoo, оказалось это не так просто (особенно на старую машину). Есть уже запущенный сервер с FreeBSD, но нужен именно Linux под фряху надо ещё что-то допиливать.
Сам язык M (MUMPS) простой как C, но синтаксис непривычный, неприятный момент -- нет приоритета математических операций, только по порядку или скобками. Возможность писать в одну строчку и сокращать операторы до одной буквы, удобна для работы в командной строке, в тоже время ни что не мешает писать операторы полностью и каждый на новой строчке, для удобства восприятия. Можно даже препроцессор некий соорудить или вернее использовать что-нибудь готовое, который будет преобразовывать текст...
Да я прекрасно понимаю, что писать сервер игры полностью внутри GT.M -- бред, современные веб технологии рулят непременно. Но в то же время хочется попробовать что-нибудь этакое. Не зря же говорят, что новое это хорошо забытое старое.
Вот бы сделать аналогичную систему на .NET можно было бы Boo использовать и прочий "зоопарк". К примеру расширить Boo командами позволяющими работать с "глобалами" M (MUMPS), а в MONO поддержку таких операций. Самое главное, что структура и данные в "глобалах" M (MUMPS) сохраняется на диск, в отличии от обычных строк, массивов и деревьев (многомерных массивов), что и является основой иерархической СУБД кстати. Что для этого потребуется? Некая библиотека расширяющая .NET и соответственно некое расширение существующих языков для работы с этой библиотекой. В итоге не надо создавать ни какой новой СУБД, а просто реализовать библиотеку и некий демон, который будет обслуживать наши "глобалы". Блин нифига, всё равно новая СУБД получится
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Варсик
545 EGP
    Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002
 |
|
Zachesa : |
но я не видел примеров реализации сервера приложений чисто внутри таких СУБД и что-то мне подсказывает, что на это есть свои причины.
|
Вы просто, как обычно, не смотрите. Гуглите Oracle Forms и тот факт что BerkleyDB это часть Оракла.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Zachesa
151 EGP
  Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1420 Откуда: Хабаровск Зарегистрирован: 12.11.2007
 |
|
Оракл это монстр сопоставимый с продуктами M$ по сложности, а в чём-то и превышающий их, там по намешано столько всего, что сам чёрт ногу сломит.
Потом делать ставку на платную (и очень дорогую кстати) для коммерческих проектов СУБД, как и Cashe' впрочем, не хочу, поэтому и пробую понять что есть ещё такое доступное и не слишком "говёное", прошу прощения за мой французский.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
|
|
|
Канал Игры Мечты: «Использование баз данных в "элитных" играх.» |
|