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

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

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

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


Ведущий раздела
Рейтинг канала: 4(76)
Репутация: 102
Сообщения: 1441 Заблокирован
Откуда: Seattle
Зарегистрирован: 25.02.2006
я думаю позно, т.к. переучиватся не собираюсь. Да, может скорость в обмен на проблемы с ООП (особенно с метаклассами) и невразумительный синтаксис (}{& - ужос! begin end как-то роднее) не по мне. Но это не холивар, спокойней. Я понимаю С++, хоть и туго.

Так не оффтопим (эт я больше себе) - все на штурм клавы Супер!
_________________
MOV topka, C++
    Добавлено: 21:10 19-06-2006   
AlexD
 383 EGP


Рейтинг канала: 2(10)
Репутация: 82
Сообщения: 1084
Откуда: Тюмень, Россия
Зарегистрирован: 25.04.2003
Эх блин... как же ты не вовремя. Улыбка С годик-полгодика назад я бы так засел за клаву.... Ие-е-е-е-х... Гы-гы
А сейчас, блин, своя компания, только набираем обороты, работы не в проворот... Расстроен С одной стороны хорош, что все не стоит колом, с другой стороны - на хобби не хватает времени...
_________________
тетрагидрометаноптерина макарена
метилентетрагидрофолата макарена
ЭЭЭЭЭ МАКАРЕНА
    Добавлено: 15:00 20-06-2006   
TpuCTaH
 63 EGP


Рейтинг канала: 1(4)
Репутация: 8
Сообщения: 128
Откуда: Харьков
Зарегистрирован: 12.06.2006
Есть интересная система.
Есть базовый класс приложения назовем эго базовое состоЯние.
Стартовый екран - состоЯние
полет корабля - состоЯние
внутринности корабля - состояние
...

все состояния наследються от базового.
базовый содержит стек из обектов подчиненых класов
Верхний элемент стека ЯвлЯеться активным
в какомто состоянии space_fly описываеться ,например, при нажатии "P"
срабатывает метод который создает состояние pause и заносит эго в стек тем самым становясь активным а space_fly смещаеться ниже.
из паузы вызвали состояние настройки он сменил паузу став ативным
нажали отмена в настройках он себя вытащил из стека и убил пауза стала активной. нажали кнопочку вернуться в игру, пауза вытащила себя из стека и ликвидировалась. space_fly снова активен лити куда хочеш.
Гдето примерно так, хотя обяснить мне сложно есть документация но она на англицком Расстроен
_________________
Если вы считаете, что C++ труден, попытайтесь выучить английский.(с)Bjarne Stroustrup
С++&&DirectX
    Добавлено: 12:31 15-07-2006   
Sh.Tac.
 151 EGP


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

Зарегистрирован: 27.07.2005
в каком-то смысле игра действительно представляет собой машину состояний, это удобно на макроуровне, т.е. когда прога оперирует целыми подсистемами, вот щаз типа работает модуль "физика", значит у проги состояние "работаю физику"

но сильно увлекаться этим я б не советовал, потому как на "микроуровне", скажем в модуле ИИ машина состояний ничуть не лучше тупого скрипта, на одинаковые действия игрока, машина реагирует одинаково

это удобно для отлова багов, но играть в это уже не очень интересно Расстроен
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 13:40 17-07-2006   
Sh.Tac.
 151 EGP


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

Зарегистрирован: 27.07.2005
вот, по теме Улыбка
Проектирование и архитектура игр

примерная цитата оттуда:
Цитата:
игра - это база данных реального времени с красивым интерфейсом

_________________
This is what you get ...
(c) Radiohead
    Добавлено: 18:46 14-12-2006   
Jurec
 348 EGP


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

хе, ну если бы так всё просто было...

Так можно сказать, наверно только про ММОРПГ.. Да и то потому что там таки база данных используеться Ой, не могу!... В остальном - всё не так.

Ну или под "красивым интерфейсом" имеется ввиду 99% игры. Взять хотя бы физ. движок - при чем тут база данных? Да не при чем.
_________________
MOV topka, C++
    Добавлено: 20:17 14-12-2006   
Protectorat
 70 EGP


Рейтинг канала: 1(1)
Репутация: 15
Сообщения: 170
Откуда: Москва
Зарегистрирован: 13.10.2006
Jurec :
Sh.Tac. :
игра - это база данных реального времени с красивым интерфейсом

хе, ну если бы так всё просто было...

Так можно сказать, наверно только про ММОРПГ.. Да и то потому что там таки база данных используеться Ой, не могу!... В остальном - всё не так.

Ну или под "красивым интерфейсом" имеется ввиду 99% игры. Взять хотя бы физ. движок - при чем тут база данных? Да не при чем.


Ну если рассматривать в качестве примера data-driven архитектуру движка, то это как раз и получается база данных реального времени. А такие мелочи, как физический движок, здесь уже можно не принимать во внимание - всего лишь одна из "процедур", которая тоже выдает какие-то выходные данные, прежде обработав входные.

P.S. А красивым интерфейсом в данном случае выступают графический и звуковой движки.
P.P.S. Которые, кстати, тоже могут быть "маленькими базами данных", т.е. иметь data-driven архитектуру.
    Добавлено: 20:35 14-12-2006   
Jurec
 348 EGP


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

Не База Данных. Ну малость не в том смыле. Это будет(и должен быть) менеджер данных... Ну в принципе, с некоторой натяжкой можно назвать базой данных, но..

Я к тому что нельзя говорить, что это "база данных". Ведь в этой "базе" происходят нехилые взаимодействия, всё постоянно меняеться.
Почему физ. движок - мелочь? Игровой движок, тогда - тоже всего лишь процедура? А что остаеться? А остаються просто структуры хранения данных. Впринципе - база данных. Т.е. сам движок не входит в определение "база данных реального времени с красивым интерфейсом".

З.Ы. Вообще перечитал всё... Ну впринципе, тут особо спорить то и не очем - в общем оба правы, каждый в своём..
_________________
MOV topka, C++
    Добавлено: 21:52 14-12-2006   
Protectorat
 70 EGP


Рейтинг канала: 1(1)
Репутация: 15
Сообщения: 170
Откуда: Москва
Зарегистрирован: 13.10.2006
Jurec :
...


Не просто база данных, но СУБД. Возьмем к примеру СУБД типа Oracle. Такие СУБД включают в себя не только таблицы данных, но процедуры для работы с ними, которые можно добавлять и дописывать. Там тоже есть классы, методы. В принципе, на таких СУБД можно запросто написать игру (правда, пошаговую, из-за невысокой скорости работы), поэтому в книге и говорится об игре, как о "БД в РВ".
Я принимал участие в проектах, двжики которых с самого начала проектировались как data-driven, так что могу подробнее рассказать, если интересно. Правда, педагог из меня никакой, расскажу, как сумеюУлыбка
    Добавлено: 00:24 15-12-2006   
Jurec
 348 EGP


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

О! Напиши урок! А что? Неплохо бы было Подмигиваю
_________________
MOV topka, C++
    Добавлено: 12:32 15-12-2006   
Protectorat
 70 EGP


Рейтинг канала: 1(1)
Репутация: 15
Сообщения: 170
Откуда: Москва
Зарегистрирован: 13.10.2006
Jurec :
Protectorat :
Я принимал участие в проектах, двжики которых с самого начала проектировались как data-driven, так что могу подробнее рассказать, если интересно.

О! Напиши урок! А что? Неплохо бы было Подмигиваю


Урок написать не смогу - времени на это нет, к сожалению. Могу в форуме немного написать, что и как.
    Добавлено: 12:43 15-12-2006   
Jurec
 348 EGP


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

Давай.
_________________
MOV topka, C++
    Добавлено: 13:20 15-12-2006   
Crimson
 560 EGP


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

Зарегистрирован: 03.09.2003
Jurec :
вот, aruslan, наверно, слишком крутой Гуру гамедёва, чтобы быть понятным для нас - простых смертных.


Он описывает всего лишь то, что архитектура проекта зависит в первую очередь от самого проекта. Там в самом начале сказано

[00:23] <aruslan> :
Петпрожекты не требуют мощных сложных комплексов паттернов. Это будет для них overkill.


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

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

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

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

Если ты делаешь игру в одиночку для себя - тебя вообще не должны волновать эти заморочки. Они для тебя лишние. Если ты собираешься писать коммерческий движок - посмотри как можно больше уже готовых. На то чтобы дойти до всего самостоятельно надо два пожизненных срока.
    Добавлено: 05:05 16-12-2006   
Launcher
 





Crimson :

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

Нонсенс. Движок может только использовать модель или модифицировать ее в своем теле, но никогда моделлеры и дизайнеры не создают свои объекты в движке. Для дизайна и моделлинга используются всем известные пакеты типа 3дс, майя, фотошоп. Если движок не может воспринимать форматы этих пакетов, разработчики пишут конверторы или тулсет(собственно с которым уже работают сценаристы, мапперы и т.д и т.п.).
    Добавлено: 23:50 24-12-2006   
Crimson
 560 EGP


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

Зарегистрирован: 03.09.2003
Сам ты нонсенс Гы-гы

Я не предлагаю встраивать в движок редактор мешей. Я просто говорю о том, что если движок не может загрузить модель (что-то не то с геометрией, или там текстуру забыли куда надо положить) - он должен вежливо ругнуться по этому поводу, а не молча упасть где стоял.
    Добавлено: 08:55 25-12-2006   
Vitaliy
 55 EGP


Репутация: 10
Сообщения: 43

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

В общем программу нужно структурировать, структурировать и ещё раз структурировать.
    Добавлено: 17:09 04-02-2007   
Protectorat
 70 EGP


Рейтинг канала: 1(1)
Репутация: 15
Сообщения: 170
Откуда: Москва
Зарегистрирован: 13.10.2006
Vitaliy :
Я бы сделал так: создаём класс "обладатель модели" - содержит только модель и текстуры для прорисовки объекта. От него наследуем класс "космический объект" - имеет параметры скорости, размера (физическая модель), масса и тд. От этого класса наследуем класс "корабли" - тут мы добавляем специфические свойства кораблей - ускорение, ссылки на объекты оборудования и тд.


Практически такая-же система используется в "PROTECTOR космическая боевая платформа" ( http://www.elite-games.ru/conference/viewtopic.php?t=38103 ) для кораблейУлыбка
Должен заметить, не самый лучший вариант, но тоже имеет право на жизньУлыбка
    Добавлено: 23:50 04-02-2007   
Vitaliy
 55 EGP


Репутация: 10
Сообщения: 43

Зарегистрирован: 04.02.2007
2Protectorat

Схема наследования - довольно неплохой метод (если представлять все космические объекты объектами в памяти, а не массивами данных). Не знаю как на счёт других языков и сред разработки, а в C# (.NET платформа) - первый вариант на много удобней и не менее скоростной, чем второй.

PS вышеописанная объектная модель - это чистая и непродуманная импровизация. Так что, естественно, есть варианты по-лучше.
    Добавлено: 00:01 05-02-2007   
Канал Игры Мечты: «Архитектура Игры»
На страницу: Пред.  1, 2 | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: По-моему, пилот просто по образу мыслей должен верить в НЛО. (сказал Hamster)

  » Архитектура Игры | страница 2
Каналы: Новости | 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