|
|
|
Канал Игры Мечты: «Игровой движок» |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
Ну мне приходилось писать программное обеспечение по работе на: Бейсик, Паскаль (в дальнейшем Дельфи), Асемблер, Фартаран, Си.
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis. |
|
|
бухой джедай
183 EGP
  Рейтинг канала: 2(19) Репутация: 70 Сообщения: 7906 Предупреждений: 1 Откуда: Одесса:) Зарегистрирован: 08.09.2007
 |
|
ну так обьясни ты писал на многих языках ... почему именно с++ ??
ок Гвест намек понял
_________________ Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист...
Последний раз редактировалось: бухой джедай (23:04 04-04-2009), всего редактировалось 1 раз |
|
|
Guest
2075 EGP
              Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004
 |
|
Delta_Q, бухой джедай - давайте всё-таки к теме топика. Холивары и меряние шворцами - в отдельно.
Автором был задан вполне конкретный вопрос, и про язык программирования - заметьте! - там не было ни одного упоминания.
_________________ Трещит земля как пустой орех
Как щепка трещит броня
Последний раз редактировалось: Guest (23:02 04-04-2009), всего редактировалось 1 раз |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
бухой джедай : |
ну так обьясни ты писал на многих языках ... почему именно с++ ??
|
1) Скорость исходного кода.
2) Очень много разработано для него библиотек.
3) Мнемоника языка очень гибкая. (Наверное не спроста языки типа Джава и многих других языков имеют схожий синтаксис)
добавлено спустя 1 минуту:
Delta_Q : |
Я могу лишь акцептировать внимание на то что именно меня интересует в при выборе:
1) Быстрота реиндеринга
2) Наличие готовых функций подгрузки Моделей (желательно нескольих форматов), Текстур и возможность наложение текстур на модели.
3) Наличие сетевого протокола (т.е. простота реализации сетевого обмена)
4) возможность подгружать поверхности при помощи бит-мапов (очень удобно когда нужно грузить ланшафт)
5) Элегантность написания кода. (чем проще и универсальней выглядит написание программы на таком движке тем лучше)
6) А и еще... после одной из моих последних попыток наличие в движке удобной и простой системы Вода вывода.. (Т.е. к примеру вы смотрите на Контейнер мышкой щелкаете по нему как винде и у вас меню тип возможные варианты манипуляции с данным контейнером) общем чтоб не самому эту всю механику писать а пользовать уже готовую...
|
Вот по сабжу...
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis.
Последний раз редактировалось: Delta_Q (23:08 04-04-2009), всего редактировалось 1 раз |
|
|
Digited
271 EGP
   Рейтинг канала: 4(99) Репутация: 49 Сообщения: 932
Зарегистрирован: 24.08.2004
 |
|
Delta_Q
Да ладно, бросьте.
EVE Online - python
Постил недавно - http://www.gamedev.ru/gamedesign/forum/?id=91302 Один человек + паскаль + скилл + три года
Мы с Юрой на D пишем потихоньку, перешли с С++.
Для загрузки и оптимизации серьезных сцен конкретной игры 99% нужен будет самописный тулз и свой формат.
Сеть к графическому движку и игровой логике ака игромеханике не имеет никакого.
Ландшафт - слишком специфичная для конкретных игр вещь, чтобы то, что делают в двигах, подошло большинству.
Элегантность написания кода относится к пишущему сей код.
GUI часто идут отдельно, а которые не, переписываются.
Насчет приятного интерфейса к игровым объектам - игровой редактор 99% пишется под конкретную игру. Если есть "как в винде", скорее всего то, как двиг результаты этих "кликов" сохранит и будет использовать, вас обломает в плане скорости.
Последний раз редактировалось: Digited (17:26 05-04-2009), всего редактировалось 1 раз |
|
|
бухой джедай
183 EGP
  Рейтинг канала: 2(19) Репутация: 70 Сообщения: 7906 Предупреждений: 1 Откуда: Одесса:) Зарегистрирован: 08.09.2007
 |
|
Digited : |
Для загрузки и оптимизации серьезных сцен конкретной игры 99% нужен будет самописный тулз и свой формат.
|
пример прикрутили бодун к хзе и тормаза явились из ничего
_________________ Так Добрый вечер...Превед с большого Бодуна...
Магистр Непросыхаемость...
Злобный Рецедивист... |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Digited : |
Сеть к графическому движку и игровой логике ака игромеханике не имеет никакого.
|
ммм.. насколько я помню вы там вроде как ММОG ваяете...
так вот странно, что по-вашему сеть не имеет ниакого отношения к игромеханике
насколько я успел понять в ММО игровой движок (игромеханика) надстроен над сетевым, что на сервере, что на клиенте
сетевой каркас является несущим, а всё остальное является подчинённым и должно отъедать CPU по минимуму
и если выясняется, что образовался излишек по CPU, то тут самое время подумать над включением физики в модель перемещений
_________________ This is what you get ...
(c) Radiohead |
|
|
Digited
271 EGP
   Рейтинг канала: 4(99) Репутация: 49 Сообщения: 932
Зарегистрирован: 24.08.2004
 |
|
К игровому движку имеет отношение только обработка ввода/вывода по сети. Чем он осуществляется - самописной частью, .dll на любом языке программирования или сторонней либой - игромеханике должно быть пофиг, потому конкретная сеть к ней отношения как бы не должна иметь.
|
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Digited : |
игромеханике должно быть пофиг
|
ага, имеено так и надо рассуждать
а то я столкнулся недавно с такой "орхетехтурой", непосредственно в игровую логику протянуты XML'ные ноды из которых в рантайме выискиваются нужные значения, синхронно процессятся и запихиваются обратно в ту же, либо создаётся новая
в таком раскладе загрузка CPU явно перевешивает I/O
и ещё одна вещь, многие из лучших побуждений накапливают очередь пришедших команд в памяти, позволяя сетевому фреймворку работать максимально быстро
в общем, если CPU не хватает, очередь понятное дело растёт и видимых лагов это не уменьшает
вот я думаю иногда, не лучше ли в таком случае предоставить TCP/IP стеку самому справляться с нагрузкой, но тогда растёт количество повторно переданных пакетов и лагать начинает уже по-чёрному
в общем диллема'c
да, сорри, что не совсем по теме, просто никак не могу отойти от увиденного, с чем придётся по всей видимости работать
_________________ This is what you get ...
(c) Radiohead |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
Digited : |
Delta_Q
Да ладно, бросьте.
EVE Online - python
...
|
Ну я говорю свою ИМХУ и формирую мнение на основании своего и чужого опыта.
Ладно раскажу немного:
EVE Online -да знаю что на Путоне ибо играю в нее уж более 2 лет И скажу вам что Путон, это большая ошибка разрабов.. меня поймут те кто учавствовал в войнах коалиций или просто в крупных баталиях. У меня бывали случаии когда я вис один в системе лиш потому, что кластер както пересекался с местом сражения где бились 300 на 300. бывали случаи когда наш ганг в 50 тел просто на 30 минут глухо вис на подлете к зоне боев. А лаги вовремя боя это непередаваемые впечатления и матюги в ТС. Просто разрабы не расчитывали, что у них эпики будут с локалом в 800-1000.
Тепрь про языки.
Как-то давно года 3-4 назад я наткнулся на один движок.. просто случайно лазия по инету, назывался он Blitz3D. И просто заинтересовался ибо сцены и прочее получалось на удивление просто и быстро ибо правда пришлось отвыкать от С++ мнемонике ибо сам двигун работал с Бейсиком.
Удалось сделать Солнечную систему, сделать обсчеты гравитационных взаимодействий колижен детекшен и прочее. Правда чем дальше тем сильней все тормозило, потом мне зубры этого двигуна объяснили, что не стоит усердствовать с большим числом полигонов иначе двигу не справляется.
Все кончилось в момент когда мне нужно было вчухать математику в это дела для обсчета (ИИ там и прочие математические фокусы) начинало все дико тормозить ФПС-ы падали дико... Я написал 2 программы одна на этом Близе вторая на Си которые вычисляют время за траченое на простые арифметические операции... Близ показал время в районе десятков микросекунд, а Си десятков наносекунд.
Написать можно на любом языке только все зависит от того, что именно пишешь и годиться ли под ту задачу тот интрумент, что используеш.
Поэтому подытожу: Да писать можно на любом языке все зависит, что именно пишешь на этом языке.
добавлено спустя 22 минуты:
Digited : |
Delta_Q
Мы с Юрой на D пишем потихоньку, перешли с С++.
|
Я так понимаю ты про Дельфи?
Да согласен Борлан очень хорошый и удобный делал интерфейс в этом плане мне Билдер Борлондовикй тоже нравиться в плане разработки... Мелкософт в этом плане уступает.
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis.
Последний раз редактировалось: Delta_Q (22:00 05-04-2009), всего редактировалось 1 раз |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
Delta_Q : |
Я так понимаю ты про Дельфи?
|
нет, гуглить Digital Mars D
вообще если работать в коде напрямую со строками, пример чего я приводил выше, то в таком случае плюсы работают ничуть не быстрее любого интерпретируемого скриптового языка
_________________ This is what you get ...
(c) Radiohead |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
Sh.Tac. : |
Delta_Q : |
Я так понимаю ты про Дельфи?
|
нет, гуглить Digital Mars D
вообще если работать в коде напрямую со строками, пример чего я приводил выше, то в таком случае плюсы работают ничуть не быстрее любого интерпретируемого скриптового языка
|
http://www.digitalmars.com/d/
Он? ну почему он мне чертовски по синтаксису напоминает Си
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis. |
|
|
Sh.Tac.
151 EGP
  Рейтинг канала: 5(108) Репутация: 14 Сообщения: 1426
Зарегистрирован: 27.07.2005
 |
|
дело не в синтаксисе
лично меня плюсы устраивают тем, что большую часть кодогенерации можно переложить непосредственно на компилятор
то есть "отливаю" в шаблоне нужное мне поведение, а потом говорю компилятору, - наклепать столько-то рабочих классов или методов по отливке для таких-то типов под текущую задачу
получается на порядок надёжнее и дешевеле, чем нанимать манки-кодеров
_________________ This is what you get ...
(c) Radiohead |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
Delta_Q : |
И скажу вам что Путон, это большая ошибка разрабов.. меня поймут те кто учавствовал в войнах коалиций или просто в крупных баталиях. У меня бывали случаии когда я вис один в системе лиш потому, что кластер както пересекался с местом сражения где бились 300 на 300. бывали случаи когда наш ганг в 50 тел просто на 30 минут глухо вис на подлете к зоне боев.
|
Каждый второй знает почему лажаются авторы самой массово по единомоментному подключению к одному миру MMOG. И каждый первый знает, как надо делать такие игры, как управлять самым большим суперкомпьютером в игровой индустрии и на каком языке нужно решать такие задачи А ССР - лохи замызганные, которые нишиша в этом не рубят, да.
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (01:49 06-04-2009), всего редактировалось 1 раз |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
Shirson : |
Delta_Q : |
И скажу вам что Путон, это большая ошибка разрабов.. меня поймут те кто учавствовал в войнах коалиций или просто в крупных баталиях. У меня бывали случаии когда я вис один в системе лиш потому, что кластер както пересекался с местом сражения где бились 300 на 300. бывали случаи когда наш ганг в 50 тел просто на 30 минут глухо вис на подлете к зоне боев.
|
Каждый второй знает почему лажаются авторы самой массово по единомоментному подключению к одному миру MMOG. И каждый первый знает, как надо делать такие игры, как управлять самым большим суперкомпьютером в игровой индустрии и на каком языке нужно решать такие задачи А ССР - лохи замызганные, которые нишиша в этом не рубят, да.
|
Я уже щас не помню точно, но в одном из ревю нового патча... была затронута тема тормозов где разработчики ССР сами признают, что небыли готовы к тому, что будет такая нагрузка на кластер при сражениях, и мол понимают свою ошибку и пытаются ее исправить, у них даже лозунг был какой-то типа все для скорости или что-то в этом духе...
Так что не моя вина что они сами об этом говорят.
З.Ы. А один раз они патчь выложили такой, что он тер boot.ini или чето в этом духе, слава богу я его не успел скачать, во народ там кипятком писал когда у ни винда не загружалась... Очень ответственный подход к релизам
ССР молодцы ... у них по крайней мере все получается и они что-то делают, Просто не надо идеализировать, все могут ошибаться.
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis.
Последний раз редактировалось: Delta_Q (12:10 06-04-2009), всего редактировалось 2 раз(а) |
|
|
Digited
271 EGP
   Рейтинг канала: 4(99) Репутация: 49 Сообщения: 932
Зарегистрирован: 24.08.2004
 |
|
Shirson : |
Каждый второй знает почему лажаются авторы самой массово по единомоментному подключению к одному миру MMOG. И каждый первый знает, как надо делать такие игры, как управлять самым большим суперкомпьютером в игровой индустрии и на каком языке нужно решать такие задачи Да. А ССР - лохи замызганные, которые нишиша в этом не рубят, да.
|
Лаги - это прекрасно.
Потому что Еве до анонса разработки, после анонса, до выхода, во время запуска и долго после пророчили мучительную смерть.
Мега космосим от независимой команды, активно развивающийся и имеющий огромную аудиторию.
Такую большую, что разработчики просто не предполагали такого успеха и такого количества подписчиков.
Во многом, Питон является причиной того, что разработчики потянули игру, запустили и активно развивают. Если бы это были плюсы, возможно, игру бы не запустили или закрыли, или она была бы совсем не того масштаба, что сейчас.
Лучше уж лаги в отличной развивающейся игре, чем судьба Blackstar.
Последний раз редактировалось: Digited (15:49 06-04-2009), всего редактировалось 1 раз |
|
|
Shirson
1605 EGP
           Рейтинг канала: 7(626) Репутация: 219 Сообщения: 16511 Откуда: 79°W 44°N Зарегистрирован: 29.01.2002
 |
|
>Delta_Q
Пошли им стратегию перехода с Питона на С++, это же просто
_________________ У меня бисера не доxеpа.
Последний раз редактировалось: Shirson (18:36 06-04-2009), всего редактировалось 1 раз |
|
|
Delta_Q
245 EGP
  Рейтинг канала: 2(12) Репутация: 46 Сообщения: 1722 Откуда: Русь Зарегистрирован: 07.02.2001
 |
|
Shirson : |
>Delta_Q
Пошли им стратегию перехода с Питона на С++, это же просто
>Digited
"Ответчика" перепутал?
|
Они ребята головастые сами разберутся чё им с Питошей делать
_________________ Двенадцатый пилот.
In nomine patris, et filii, et spiritus sanctis. |
|
|
Digited
271 EGP
   Рейтинг канала: 4(99) Репутация: 49 Сообщения: 932
Зарегистрирован: 24.08.2004
 |
|
Shirson : |
"Ответчика" перепутал?
|
уточнил.
|
|
|
AlexPin
51 EGP
 Репутация: 2 Сообщения: 21
Зарегистрирован: 14.06.2008
 |
|
2Delta_Q
По моему скромному разумению необходимо сначала придумать игру, потом продумать игру, потом разработать под нее движок. Если хорошо продумать, то движок разработать будет намного проще.
2Guest
Цитата: |
Я бы разделил 4-й пункт на интерфейсную часть (фидбек) и ИИ ...
|
Подумал и согласился.
В итоге, получается следующее:
Движок должен:
1. Отображать на мониторе требуемые объекты игры.
2. Обрабатывать физику объектов.
3. Обеспечивать звуковое сопровождение событий.
4. Позволять использовать стандартные интерфейсы игроку и ИИ для получения информации об окружающем мире.
5. Обрабатывать команды ИИ.
6. Обрабатывать команды игрока.
Насчет скриптов пока отложим потому как не уверен, нужны ли они мне (но будем держать в уме).
____________________
Попробуем немного углубиться в дебри движка
Пункт 1:
Отображение на мониторе требуемых объектов игры.
Каждый игровой объект имеет 3 координаты в пространстве (x,y,z) и направление.
Чтобы отобразить объект надо а) отобразить его каркас и б) "натянуть" на него текстуры.
Пункт 2:
Обрабатывать физику объектов.
Под физикой (я так думаю) надо понимать в первую очередь а) движение объектов, затем б) столкновение объектов, в) уничтожение объектов, г) обработку физических явлений (таких как расход топлива, энергии и т.д.)
Пункты 3-6 пока оставим.
Наиболее важным пунктом является 2-ой, т.к. он определяет координаты объектов, возможные повреждения при столкновениях объектов и отвечает за их возможное уничтожение. Он также определяет значения физических величин (скорость, количество топлива на борту и др.), предоставляя их затем по требованию ИИ и игрока.
Попробуем представить игровой процесс в, скажем, Солнечной системе. Объекты делятся на неуправляемые, которые движутся по стационарным орбитам (под действием природных сил) и управляемые, которые имеют двигатели и могут двигаться в разных направлениях с разной скоростью.
Неуправляемые объекты делятся на: подходящие для расчета столкновений (сопоставимые с размерами корабля - такие как астероиды, станции и т.д. При столкновении с ними корабль или станция повреждаются или уничтожаются) и неподходящие для расчета столкновений (такие как планеты, их спутники, звезды. При столкновении с ними корабль или станция уничтожаются). Управляемые объекты по определению считаются подходящими для расчета столкновений.
Неуправляемые объекты движутся по своим постоянным круговым орбитам с постоянной скоростью вокруг центра (планеты вокруг звезды, спутники вокруг планет и т.д.). Координаты этих объектов рассчитываются от центра их вращения. Т.о., неуправляемые объекты имеют постоянную скорость, заданную в момент их образования (постройки), их координаты можно определить в любой момент времени.
Рассчет столкновений следует вести только для пар: управляемые-управляемые, управляемые-неуправляемые.
Теперь про расчет столкновений:
По моему скромному мнению расчет столкновений по всей Солнечной системе вести не надо. Игрок все равно не видит, что происходит на другом конце системы, поэтому можно считать, что 2 корабля, допустим, летели навстречу друг другу и успешно сманеврировали и разошлись. Расчет столкновений надо вести только в пределах сферы с определенным радиусом. Центр сферы совпадает с позицией корабля игрока. Точно также столкновения не надо учитывать и в других системах. Это позволит сэкономить значительные ресурсы.
Представим 2 корабля (форма - цилиндр). 1 корабль (длина L1, диаметр D1, скорость V1 и координаты X1, Y1, Z1 ), 2 корабль (L2, D2, V2, X2, Y2, Z2). Координаты кораблей определены в момент времени t1. Квант времени игры T. Корабли в течении кванта времени движутся по прямой с постоянной скоростью. Т.е. мы имеем 2 прямые (точнее - 2 отрезка) в пространстве. Нам надо определить минимальное расстояние между этими отрезками в течение кванта времени. Если оно окажется меньше (D1+D2)/2, то в течение этого кванта времени происходит столкновение.
Завтра попробую вывести формулу для нахождения наименьшего расстояния между двумя отрезками в пространстве (если никто раньше не подскажет).
|
|
|
|
|
|
Канал Игры Мечты: «Игровой движок» |
|