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

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

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

   Страница 1 из 2
На страницу: 1, 2  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Архитектура Игры»
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Так, млин, поактивней! В КИМ по 1 сообщению в день. Непорядок!! Разозлен Ругаюсь, недоволен!

Значит, вот вопрос появился. Пришло время писать игру, движок готов. Я раньше уже писал, но вот терзали смутные сомнения - а правильно ли..

Вот решил узнать, как архитектура игры реализована в различных играх (ссори за тафтологию и на фсякий случай за туфтологию Ой, не могу!.. )

Ну например, если кто писал моды, или.. ах, да. Скрипты на х2-х3 тоже катят - там можно узнать как оно организовано. Ну вообще как организованы события, взаимодействия, хранение данных и т.п.

Важно всё - мелочи тож. Как там, что. Особенно это к модам относится, как они к движку присобачиваюццо.


Перечитал 2 раза.. Мысль "наверно, не поймут" появляется. Ну и ладно, всё расскажу и проясню, если вопрос не ясен.
_________________
MOV topka, C++
    Добавлено: 20:03 18-06-2006   
YogSagot
 1175 EGP


Рейтинг канала: 1(8)
Репутация: 275
Сообщения: 2796
Откуда: Daugavpils, Latvija
Зарегистрирован: 17.08.2003
Блин, Юрик, ну почему ты не дотнетчик! Рыдания. А то холивар разводить не хочеться (да и НРГы на страже), но сказать есть что только про дотнет. Расстроен
    Добавлено: 20:17 18-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
2YogSagot

Ну.. Я может и не пойму ничё Ой, не могу!.. но попробовать стоит. А холивар не надо - за этим местом следят гонеры. Ой, не могу!..
_________________
MOV topka, C++
    Добавлено: 21:00 18-06-2006   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
там усё просто, главное чтоп поменьше графики было Улыбка

опычный цикл
графика
физика (считаем на следующий цикл графики)
ИИ (если времени в цикле не хватило, то переносится на след. цикл)
ну и по мелочи (как правило это усё, что перечислено выше)
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 22:31 18-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Это понятно и слишком поверхностно. А как взаимодействия происходят, например?
Какие есть типы объектов?
_________________
MOV topka, C++
    Добавлено: 09:13 19-06-2006   
DreamZzz
 430 EGP


Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
В идеале все должно быть объектами с деревом подчинения. Так, чтобы от солнца можно было получить ссылки на планеты, от планет ссылки на спутники планет и т.д. Объект игра с методами сохранить, загрузить и т.п. Объект звук с методами плэй, стоп...
Для кораблей можно создать объект "крыло". Объекты которых много - в массив. Общие объекты - в статик.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 10:19 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Ладно, напишу как у меня, для примеров, так сказать.

Движок..
-Геометрия
-Система частиц
-Спрайт
-Источник света
-Камера

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

Это структура движка, описанная довольно поверхностно. Цель - написать на нем игру.

Так, вот. Опишите ИГРУ, так же как я описал ДВИЖОК, или поподробнее.
_________________
MOV topka, C++
    Добавлено: 10:53 19-06-2006   
himem
 210 EGP


Репутация: 24
Сообщения: 343
Откуда: Дзержинск- Нижегородский
Зарегистрирован: 24.01.2004
В ИВ2 встроен си подобный язык... Усе написано на нем (данные)... Двиг - черный ящик - реагирует на события и берет данные из переменных/файлов по прописаным путям... Скрипт - суть прога на ентом языке с функцией main и другими...
ЗЫ По мойму идеально...

Плюс - независимость от структуры двига...
Минус - невозможность расширить(я споткнулся о невозможность из скрипта сгенерировать ПС)
_________________
-Что ты чувствуешь став богатым?
-Опустошенность.
-Да,ты подойдешь для Темного Колеса.Это точно!
    Добавлено: 13:22 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
himem, а теперь то же самое но поподробней. Меня интерисует какие данные ты "видишь" и можешь "потрогать" из скрипта.
О движке поподробей...
_________________
MOV topka, C++
    Добавлено: 13:35 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Да, или вот еще вопрос. Какие свойства и методы должны быть у типа "Корабль"?

Ну там.. скорость, маневренность, цена, щиты, прочность.
методы: Поворот, ускорение(хотя, можно матрицу трансформации вынести..), выстрел и т.д.

Нужно назвать как можно больше.
_________________
MOV topka, C++
    Добавлено: 14:15 19-06-2006   
DreamZzz
 430 EGP


Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
В ffe, например, нет объекта типа "корабль". Там любая модель имеет одинаковую структуру. Но тут уж кому как удобней.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 16:05 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
А какую структуру? Что туда входит?
_________________
MOV topka, C++
    Добавлено: 16:40 19-06-2006   
DreamZzz
 430 EGP


Репутация: 90
Сообщения: 642
Откуда: Мурманск
Зарегистрирован: 15.04.2006
Туда входит все. Матрица поворота, координаты, указатель на модель, указатель на предыдущий объект, установленное оборудование... Если это планета, то температура, орбитальный радиус и т.п. Указатель на модель указывает на объект, содержащий параметры типа: координаты выхлопов движков, масса, радиус (для коллизии), указатель на 3d модель и т.д.
_________________
Космос лучше всего исследован научными фантастами
    Добавлено: 17:09 19-06-2006   
Vladimir Kladov
 218 EGP


Репутация: 84
Сообщения: 80
Откуда: Novosibirsk, Russia
Зарегистрирован: 11.04.2006
Я бы добавил вот что. По сути, есть смысл различать тип "корабль" для описания данной модели корабля "вообще", и для характеристик данного конкретного экземпляра (как объекта, который движется, сражается, и т.п - т.е. игрового "персонажа"). То же касается, к примеру, планеты или астероида.

А, вот, DreamZzz уже сказал выше: ссылка на модель. Так вот, координаты выхлопов - это все-таки часть модели, а не данного экземпляра (если у вас не переменное число двигателей, конечно. Ну, если реактивная тяга все еще используется. Я вот не уверен, что на таком будут летать в космосе лет так через 1000. Нет, даже наоборот: уверен, что реактивная тяга уйдет в прошлое).

Опять я невнимательно прочитал: DreamZzz про то и говорит, что это часть модели. Неудобно отвечать в редактировании получается: все собщения треда в этот момент не видно. Ну ладно, спишем на недосып и перетруд Подмигиваю
    Добавлено: 19:21 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Да. Ракета, корабль, мертвое тело(астероид, остатки корабля), выстрел и т.д. надо бы выносить в отдельные классы.

А насчет выхлопов, то это как-бы эффект графический, создающий ощущение реальности, и отказыватся от него не стоит, если, конечно, нет красивой альтернативы.
_________________
MOV topka, C++
    Добавлено: 19:35 19-06-2006   
Vladimir Kladov
 218 EGP


Репутация: 84
Сообщения: 80
Откуда: Novosibirsk, Russia
Зарегистрирован: 11.04.2006
Я не возражаю. Ктати в каком-то фантастическом произведении встретил интересную мысль: звездные корабли будущего обязаны иметь на борту движки всех типов, и реактивный тоже сгодится (вдруг все остальные из строя повыходят). Но маневренные реактивные движки например - их так вообще не видно почти как они работают. Ничего красивого, скажу я вам. Старт лунного модуля с поверхности луны оказался таким неэффектным, что это дало повод (один из многих) критиковать американцев, что они вообще на Луне не были. Может и не были, но не настолько же они дураки, чтобы давать повод и фальсифицировать так некрасиво Улыбка Любой фальсификатор такой эффект бы забабахал, что критики было бы на порядок меньше.
    Добавлено: 19:46 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
Реалистичность в играх - не всегда хорошо.

Вот теперь такой вопрос. Какие команды можно отдавать кораблю. И давайте попробуем разбить их на более простые.

Пожалуй я начну.
Команда "Атаковать цель" разбивается на:
-увеличить/уменьшить скорость
-нацелиться на какую-то точку в пространстве
-выстрелить
-выпустить ракету

вроде всё.. Задача в том, чтобы найти все подзадачи и организовать их.
Активнее жмем на клаву, пилоты! Супер!
_________________
MOV topka, C++
    Добавлено: 19:58 19-06-2006   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
на мой скромный взгляд када типов и объектов вагон лучше не наследоваться, и уж точно не строить длинные цепи, лучше плоско агрегироваться, условно говоря корабель имеет в своём составе индекс модели, индекс элементов анимации, индекс силовой установки в сборе и т.д.
все перечисленные входящие также представляют собой набор индексов объектов рангом помельче. UID'ы хороши тем, что позволяют без проблем сериализовать объекты хошь в файл хошь в сетевой пакет + их можно использовать как seed для ГСЧ. Единственная проблема это целостность объекта, сам по себе он таковую не гарантирует Улыбка
архитектурно сердцевина объека представляет собой список ASCII строк или вектор элементарых типов, целых и с плавающей точкой. Эта сердцевина обёрнута различными обёртками, которые содержат лишь методы работы (не данные, данные есть сердцевине) с объектами.
что-то подобное мне пришлось заимплементить по работе, так что иногда работа совсем не мешает досужим увлечениям Подмигиваю

З.Ы. хе-хе, Jurec, не иначе как ИИ удумал делать Гы-гы
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 20:15 19-06-2006   
Jurec
 348 EGP


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
http://www.gamedev.ru/community/gamedev_lecture/articles/?id=18

вот, aruslan, наверно, слишком крутой Гуру гамедёва, чтобы быть понятным для нас - простых смертных. Но архитектуру он описывает железно, если поймете хоть 20%, считайте вы крутой мэн.

Это я к тому, что подходов огромное количество.

Sh.Tac. :
на мой скромный взгляд када типов и объектов вагон лучше не наследоваться

Дело в том, что объектов не слишком много. Да и наследование, особенно в Делфи - это КРУТО! Супер! очень удобно.

ИИ, да, вот, обычно руки не доходили, а тут решил ВЕСЬ упор на него.
_________________
MOV topka, C++
    Добавлено: 20:29 19-06-2006   
Sh.Tac.
 151 EGP


Рейтинг канала: 5(108)
Репутация: 14
Сообщения: 1426

Зарегистрирован: 27.07.2005
тяжело читать этого гуру Рыдания.

я бы порекомендовал нормальные книжки, одна старая
Гамма Э. и др. - Приемы объектно-ориентированного проектирования

другая поновее Александреску
Обобщенное программирование и прикладные шаблоны проектирования

единственная незадача, что примеры там на Smalltalk и C++
Jurec, мож того, рано плюсы в топку? Подмигиваю
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 21:00 19-06-2006   
Канал Игры Мечты: «Архитектура Игры»
На страницу: 1, 2  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Я смотрю исходя из того, что мы пришли сверху, значит там зад. (объяснил Wite King)

  » Архитектура Игры | страница 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