Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Использование баз данных в "элитных" играх. | страница 1
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 1 из 1
 
Поиск в этой теме:
Канал Игры Мечты: «Использование баз данных в "элитных" играх.»
Как лучше управляться с данными в больших играх?
Данные упаковываются в компанентах программы вместе с кодом.
10%
 10%  [ 1 ]
Использовать отдельные гипертекстовые файлы.
10%
 10%  [ 1 ]
Написать простую СУБД заточенную под конкретный проект.
20%
 20%  [ 2 ]
Подобрать готовую СУБД наиболее подходящую в данном случае.
60%
 60%  [ 6 ]
Всего проголосовало : 10
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Обсуждаем вопрос использования СУБД для хранения данных в игровых проектах.
Так или иначе любая программа это код и набор данных, причём постоянно модифицируемых как в процессе разработки, так и в зависимости от вида программы -- в процессе её исполнения.
Игровой проект не исключение, а яркое подтверждение данного тезиса, тем более в играх данные наиболее разнообразны.
Возможно в небольшой игре данные не так многочисленны и управляться с ними не трудно, что нельзя сказать о проекте где речь идёт о множестве планет космолётов и станций, к коим относятся "элитные" игры.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.

Последний раз редактировалось: Zachesa (10:35 09-11-2008), всего редактировалось 1 раз
    Добавлено: 10:34 09-11-2008   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Телега впереди паровоза.
Имхо, вопрос надо ставить не "Для чего бы нам использовать БД?", а "Имеются данные такой-то структуры, такого-то объема, движок программы предъявляет к ним такие-то требования. Как их организовать?" Но без конкретизации перечисленного (и много чего еще) вопрос смысла не имеет.
Лично мне не кажется, что объем данных игры, хоть элитной, хоть нет, требует организации БД.
_________________
Конец света в конце тоннеля

Последний раз редактировалось: Diff (13:11 08-12-2008), всего редактировалось 2 раз(а)
    Добавлено: 03:18 08-12-2008   
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Вот столкнулся с таким затруднением, есть желание использовать для своего проекта Oracle.
Количество объектов будет огромным по этому есть идея сделать отдельные базы для каждой планеты. Основной плюс возможность разнести часть баз со временем на разные сервера (не надо будет мудрит с кластером), возможность отдельного администрирования баз.
Ускорение работы проекта за счёт дублирования программ обработчиков событий для каждой планеты, в общем распараллеливание вычислений естественным путём.
Отдельная база для характеров индивидов, а также для транспортных средств и стационарных космических комплексов. Программы игрового ИИ будут работать непосредственно с ней.
Отдельная база для товаров и расчёта экономики мира UEF.
Также можно сделать отдельную базу для объектов микромира и обработки звёздной механики.
Базы для планет создавать копируя некоторую эталонную базу с усреднёнными параметрами без объектов, потом частично в ручную, частично автогенерацией формировать уникальные свойства, ландшафт и при необходимости флору и фауну, в плоть до индивидов и продуктов их жизнедеятельности.
В общем затруднение в том, что сделать программный комплекс на нескольких базах, при чём число будет постоянно увеличиваться -- как с этим хозяйством справиться Совсем запутался... пока в голове не может уложиться.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.

Последний раз редактировалось: Zachesa (05:40 25-07-2010), всего редактировалось 1 раз
    Добавлено: 07:10 08-12-2008   
Diff
 708 EGP


Модератор
Рейтинг канала: 2(11)
Репутация: 44
Сообщения: 4179
Откуда: Сферическая Земля в вакууме.
Зарегистрирован: 04.07.2003
Размах впечатляет. Вообще, почему бы и нет. Только по-моему, 90% данных там будут статичными - то есть однажды забитыми и никогда не изменяемыми. Нужна ли здесь база? Может, да, а может и нет.

Zachesa :
В общем затруднение в том, что сделать программный комплекс на нескольких базах, при чём число будет постоянно увеличиваться -- как с этим хозяйством справиться Совсем запутался... пока в голове не может уложиться.


Ты слишком сильно размахнулся. Тут от простого к сложному идти надо.
Отдельные базы для каждой планеты - в любом случае безумие.
_________________
Конец света в конце тоннеля
    Добавлено: 13:27 08-12-2008   
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Diff :
Отдельные базы для каждой планеты - в любом случае безумие.
Согласен что сначала надо сделать все планеты в одной базе в виде наборов таблиц, которые при развитии проекта могут быть легко перенесены в новую базу.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 08:33 28-12-2008   
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Определился окончательно использовать несколько баз для проекта UEF на основе PostgreSQL, с Oracle у меня нет времени и сил разбираться, тем более у этой СУБД достаточные возможности для творческих изысков (даже с половиной ещё не разобрался Улыбка )
Пока это будет четыре базы на одном сервере, потом по мере развития проекта основную базу можно будет вынести на отдельный сервер, а далее уж выносить таблицы с группами объектов в новые базы на другие сервера (здесь как уже принято на канале КИМ раздаётся дружный смех).
Основная база будет содержать общие понятия, виды и свойства объектов, текстуры и меши, фразы, образцы договоров и формулы расчётов.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 10:57 19-01-2009   
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 к ресурсам можно только представить.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 16:19 21-07-2010   
Варсик
 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 раз
    Добавлено: 21:19 21-07-2010   
Crimson
 560 EGP


Рейтинг канала: 4(83)
Репутация: 130
Сообщения: 3041

Зарегистрирован: 03.09.2003
Zachesa :
Основная база будет содержать общие понятия, виды и свойства объектов, текстуры и меши, фразы, образцы договоров и формулы расчётов.


Нахрена, я извиняюсь, текстуры и меши в основной базе? Подозрение.
    Добавлено: 01:51 22-07-2010   
бухой джедай
 183 EGP


Рейтинг канала: 2(19)
Репутация: 70
Сообщения: 7906 Предупреждений: 1
Откуда: Одесса:)
Зарегистрирован: 08.09.2007
Crimson :
текстуры и меши в основной базе

ну единственное что приходит в голову чтоб их можнобыло сортировать по признаку и применять в зависимости от этого ...
_________________
Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист...
    Добавлено: 03:04 22-07-2010   
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Crimson :
текстуры и меши в основной базе?
сами эти данные статичны и поэтому в базе нужно только описание их и ссылки на файлы.

Кстати сама
Zachesa :
Основная база
тоже вещь довольно таки статичная и вместе с другими ресурсами будет дублироваться в клиентах, обновляясь как и сами ресурсы, так и исполняемые модули клиента по мере развития проекта. Для неё можно использовать обычный XML файл, который будет разворачиваться в ОЗУ во время работы клиентского (и серверного тоже) ПО.

Warstone :
Если конечно Летограф не умер.
http://www.letograf.ru/letograf/site/products/materials/page3.html здравствует вроде бы ещё.

Мне не интересна сама по себе Каше, не считая, что мне с ней приходится работать и она кстати вызывает меньше проблем чем связка 1C8 Предприятие с MSSQL, работая с тем же объёмом данных. Интересна сама идея совмещения сервера приложений и баз данных и нет ли более современных её реализаций. То что предлагает ИнтерСистемс на самом деле красивая обёртка над лохматой технологией MUMPS.

Мне пришлось буквально ломать голову, чтоб представить мир проекта UEF в виде совокупности взаимосвязанных двухмерных таблиц. Механизм обращения с SQL СУБД, кэширование запросов к базам всё это конечно здорово и технологично, но как это далеко от реального отображения мира, в том числе и виртуального.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 21:56 23-07-2010   
Варсик
 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.
    Добавлено: 13:24 24-07-2010   
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 СУБД" в одном флаконе. Что же касается встроенных языков хранимых процедур -- это конечно интересно, но я не видел примеров реализации сервера приложений чисто внутри таких СУБД и что-то мне подсказывает, что на это есть свои причины.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 00:59 25-07-2010   
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 и соответственно некое расширение существующих языков для работы с этой библиотекой. В итоге не надо создавать ни какой новой СУБД, а просто реализовать библиотеку и некий демон, который будет обслуживать наши "глобалы". Блин нифига, всё равно новая СУБД получится Совсем запутался...
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 20:39 03-08-2010   
Варсик
 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.
    Добавлено: 08:58 04-08-2010   
Zachesa
 151 EGP


Рейтинг канала: 4(95)
Репутация: 13
Сообщения: 1420
Откуда: Хабаровск
Зарегистрирован: 12.11.2007
Оракл это монстр сопоставимый с продуктами M$ по сложности, а в чём-то и превышающий их, там по намешано столько всего, что сам чёрт ногу сломит.

Потом делать ставку на платную (и очень дорогую кстати) для коммерческих проектов СУБД, как и Cashe' впрочем, не хочу, поэтому и пробую понять что есть ещё такое доступное и не слишком "говёное", прошу прощения за мой французский.
_________________
Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
    Добавлено: 16:18 05-08-2010   
Канал Игры Мечты: «Использование баз данных в "элитных" играх.»
 
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Я их профили рассматриваю долгими зимними вечерами и вспоминаю, кто из них кто? (Pinocchio об обитателях его аськи)

  » Использование баз данных в "элитных" играх. | страница 1
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18