|
|
|
Канал Игры Мечты: «Необходима помощь в создании Elite-подобной игры» |
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
Здравствуйте.
Начата разработка новой Elite-подобной игры.
Задумка (в плане gameplay'я)
1. Гигантская игровая галактика, которая, в основном, генерируется игрой. Предполагается, что заселённая часть галактики будет насчитывать 10 тыс. систем (в каждой до пяти населённых планет и некоторое количество станций). Заселённые миры предполагается "оснастить" такими атрибутами, как своя культура, история. Незаселённых миров - около нескольких миллиардов (незаселённые не означает - мёртвые, а скорее - неосвоенные).
2. В этом гигантском мире кипит жизнь. Одновременно просторы космоса бороздят миллионы кораблей. Большинство из них - торговцы. Так же системы патрулируют полиция и военные, защищающие торговцев от пиратов, убийц и прочих опасностей. Но патрулированием всё дело не ограничивается. За злостными нарушителями закона идёт настоящяя охота. Постоянные облавы и военные рейды. Не спасёт пиратов даже расположение их опорных пунктов, которые находятся в неосвоенном пространстве.
3. Безопасные туннели гиперпрыжков проложены во всех системах. Пространство трасс "Планета - гиперпереход" хорошо охраняются. Но за безопасность приходиться платить. Другое дело неуправляемый гиперпрыжок - опасно, но единственный пункт затрат - топливо.
4. Развитая система званий (военных и других) и "ярлыком" (по типу "спаситель утопающих" )
5. Динамичность мира. Постоянно что-то происходит: вспыхивают войны и локальные конфликты, создаются независимые объединения миров и гибнут империи, осваиваются новые мира и покидаються старые (неудачная терраформация, экологические катострофы и тд.)
Задумки (технические)
1. Графика
1.1 Использование безтекстурной технологии(всё основано на материалах и моделях).
1.2 Широкое использование динамически создаваемых моделей.
2. Физика
2.1 Применение Ньютоновской физики.
2.2 При скоростях выше 200000 км/с будет использоваться физика по теории относительности.
3. ИИ
3.1 Будет делиться на несколько уровней: государственный (поведение какого-либо объединения в целом), торговый(создание и уничтожение торговых маршрутов), военный (координация сил военных, полиции и добровольцев в борьбе с врагами) и тд.
3.2 Просчитывание таких показателей, как мораль (на поле боя), наклонности и прочее.
Примечания
Эта игра, во всяком случае так задумано, будет более требовательна к процессору и ОЗУ, чем к видеокарте. Это объясняется спецификой алгоритмов графического движка и развитостью игрового интеллекта. Так же предполагается, что дистрибутив игры будет занимать очень малый размер (до 20 мегабайт).
Язык разработки - C# (это означает, что игра пишется под платформу .NET). Графическая библиотека - Menaged DirectX.
Сейчас ведётся разработка (программная реализация) только графического движка. Остальные части приложения находятся на стадии алгоритмической разработки.
Мои вопросы к обществу пилотов
1. Будут ли какие-нибудь замечания или предложения?
2. Знает ли кто-нибудь о форматах звука на много более компактных, чем mp3, но намного более качественных (по звучанию), чем MIDI (это необходимо для дальнейшей разработки звукового движка игры).
3. Как вы оцениваете шансы написать такую игру одному (или небольшой командой) с нуля?
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Vitaliy : |
1. Будут ли какие-нибудь замечания или предложения?
|
ДА!
Vitaliy : |
1.1 Использование безтекстурной технологии(всё основано на материалах и моделях).
1.2 Широкое использование динамически создаваемых моделей.
|
Оофигенно плохая идея!
1.1 - это зачем? Если не можешь организовать систему, хотяб с текстурой одной- то советую подучиццо в этом смысле.
1.2 - потеря в производительности. Сложность в моделировании
Vitaliy : |
2.2 При скоростях выше 200000 км/с будет использоваться физика по теории относительности.
|
мм..
1)Зачем?
2)Тебя не беспокоит поведение типов при таких больших числах. float будет давать погрешности здоровенные, а то и вообще вылетит за пределы.
Vitaliy : |
3. Как вы оцениваете шансы написать такую игру одному (или небольшой командой) с нуля?
|
Ну если забить пока что на графическую систему и делать игровую логику + обрезать половину фич - то вполне.
Vitaliy : |
5. Динамичность мира. Постоянно что-то происходит: вспыхивают войны и локальные конфликты, создаются независимые объединения миров и гибнут империи, осваиваются новые мира и покидаються старые (неудачная терраформация, экологические катострофы и тд.)
|
Опиши как ты это реализуешь?
_________________ MOV topka, C++ |
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
Цитата: |
Оофигенно плохая идея!
1.1 - это зачем? Если не можешь организовать систему, хотяб с текстурой одной- то советую подучиццо в этом смысле.
1.2 - потеря в производительности. Сложность в моделировании
|
Я сознательно не хочу использовать текстуры, и это не говорит о знании или незнании DirectX. Поясню свой выбор. Во-первых, текстуры жрут немеряно байт (что при выкачке из инета имеет огромное значение). Во-вторых, текстуры имеют законченное разрешение и качество. Чем текстуры лучше, тем больше размер. И наоборот. Я не хочу создавать проект на 200-300 метров или более (пример такого арационального использования трафика юзеров - WOW). В-третьих, есть и другие способы "украсить" мир. Например, материалы в DX. Неудобно? Программисту и художнику - да, юзеру - нет.
На счёт динамических моделей я не согласен. Сложность проектирования - возможно. Но на счёт снижения производительности - я не согласен. Что сжирает много процессорного времени? Отсечение вершин. А так как мы генерим модели во время работы алгоритма, то нам не нужно отсекать невидимые вершины (это делается на стадии генерирования). Так же нам не нужно держать в памяти модели с заранее определённым максимальным "разрешением" (качество регулируется во время генерирования). Это экономит память (ОЗУ) и процессорное время. По моим подсчётам при разрешении 1024х768 необходимо генерить всего несколько тысяч полигонов. При достаточно хорошем алгоритме эта задача не будет напрягать компьютер.
Цитата: |
Подозрение. мм..
1)Зачем?
2)Тебя не беспокоит поведение типов при таких больших числах. float будет давать погрешности здоровенные, а то и вообще вылетит за пределы.
|
1. При достаточном количестве топлива это будет реально (а мне не хочеться, что бы нарушался принцип, что в нормальном пространстве скорость света - это высшая скорость, не говоря уже о явлениях сжатия времени).
2. Двух интов хватит выше крыши (а float - это действительно плохая мысль )
Цитата: |
Опиши как ты это реализуешь?
|
В каком смысле? Исходник выложить? У меня его пока нет. А на счёт алгоритма, то он пока сформулирован в общих чертах. В двух словах - это будет "коллектив" ИИ, которые будут взаимосвязаны, но будут решать разные задачи, а, следовательно, иметь разные алгоритмы.
Цитата: |
Ну если забить пока что на графическую систему и делать игровую логику + обрезать половину фич - то вполне.
|
Ну на счёт подзабить на графический движок, то тут ничего не получиться. Графика - это первая стадия, вторая - физика (после этого можно полетать по безжизненной галактике), уж за тем буду оживлять игровой мир. А на счёт фич - не хочу ничего урезать. Иначе это уже будет не "игра моей мечты".
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Ты уверен что при отсутствии текстур ты сможешь добиться нормального качества графики?
Vitaliy : |
Двух интов хватит выше крыши
|
Инты? Два? Т.е. длинная арифметика? Я не доганяю смысла таких танцев с бубном...
Vitaliy : |
Но на счёт снижения производительности - я не согласен. Что сжирает много процессорного времени? Отсечение вершин.
|
Процессорное время? Нет конечно. Это время видеокарты, и поверь - оно ничтожно - простая проверка нормалей и всё!
А на деле - ты берешь это перекладываешь из GPU на CPU - как раз начинаешь жрать процессорное время. + Ты создаешь динамические буфера, которые по любому медленнее статических.
Vitaliy : |
Так же нам не нужно держать в памяти модели с заранее определённым максимальным "разрешением" (качество регулируется во время генерирования). Это экономит память (ОЗУ) и процессорное время.
|
ОЗУ - возможно, но никак не процессорное время!
Vitaliy : |
А на счёт фич - не хочу ничего урезать. Иначе это уже будет не "игра моей мечты".
|
Ну верно, впринципе, попробуй - получиться ли.
_________________ MOV topka, C++ |
|
|
Crimson
560 EGP
    Рейтинг канала: 4(83) Репутация: 130 Сообщения: 3041
Зарегистрирован: 03.09.2003
 |
|
По поводу безтекстурки. Мне тоже в свое время так казалось. Грамотное использование материалов это зашибись бесспорно, но модели все равно получатся "лысыми". В общем сам увидишь что получится.
Есть конечно вариант сделать вместо текстуры много-много полигонов. Но это не будет ни быстрее по обсчету, ни экономнее по памяти.
|
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
Цитата: |
Инты? Два? Т.е. длинная арифметика? Я не доганяю смысла таких танцев с бубном...
|
Ладно. Оговорился (Паскаль почему-то вспомнил ). Не инты. Тут и long покатит (ещё и на 64 разрядах быстрее бегать будет ). Кстати long хватит, что бы сделать систему радиусом в 53 (примерно) астрономические единицы. Это при том, что единицы измерения мм.
Цитата: |
Процессорное время? Нет конечно. Это время видеокарты, и поверь - оно ничтожно - простая проверка нормалей и всё!
А на деле - ты берешь это перекладываешь из GPU на CPU - как раз начинаешь жрать процессорное время. + Ты создаешь динамические буфера, которые по любому медленнее статических.
|
Возможно. Но не забывай, что и передача данных съедает мегагерцы. Только не процессора, а системной шины. Так вот, это замедляет работу всей системы. А если каждый раз, при построении сцены передавать большую кучу инфы (в случае статической модели с большим "разрешением" для планет - это куча мегабайтов).
Цитата: |
ОЗУ - возможно, но никак не процессорное время!
|
Я не хочу идти по другой схеме - держать несколько моделей разного разрешения на винте и считывать их параллельно прорисовки. Поясняю: как сделать модель для планеты диаметром в 12000 км так, что бы на расстоянии в 2-3 метра над поверхностью не было видно погрешностей, вызванных "грубостью" модели? Есть два варианта: хранить модель по объёмам мало чем отличающуюся от базы данных на миллиард записей; второе - динамическое создание модели. Вернулись к чему и пришли.
Цитата: |
Есть конечно вариант сделать вместо текстуры много-много полигонов. Но это не будет ни быстрее по обсчету, ни экономнее по памяти.
|
Возможно. Я этот вариант рассматриваю, как одну из альтернатив. Есть так же вариант большинство "простых" текстур генерировать при установке приложения. Благо, ИМХО, это дело не хитрое.
PS спасибо за отзывы. Очень помогают найти "тонкие места" движка.
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Vitaliy : |
Возможно. Но не забывай, что и передача данных съедает мегагерцы. Только не процессора, а системной шины. Так вот, это замедляет работу всей системы. А если каждый раз, при построении сцены передавать большую кучу инфы (в случае статической модели с большим "разрешением" для планет - это куча мегабайтов).
|
Не спорь со мной в этих вопросах
1) Передача статики происходит только 1 раз - при инициализации буфера.
2) Шина супер скоростная - AGP или PCI Express - так что всё крута!
3) В твоём слушае генерации будет тоже самое (ну меньше немного, если ты таки будешь отсекать невидимые грани на CPU - но оно того не стоит)
Планеты должны считаться динамически - особым алгоритмом уровней детализации по какой то карте высот.
зы. Считывать с винта параллельно прорисовке - это убъет всю скорость. Винт - самое узкое место по скорости - минимизируй доступ к нему.
_________________ MOV topka, C++ |
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
Цитата: |
Планеты должны считаться динамически - особым алгоритмом уровней детализации по какой то карте высот.
|
Ну вот. На моё и вышло. Я ведь не говорил, что ВСЕ модели будут создаваться динамически. Динамически будут создаваться модели БОЛЬШИХ естественных и искусственных тел. Модели же кораблей (не считая некоторых гигантов) будут создаваться только раз (при инициализации игры). При загрузке игры с винта будут загружаться файлы-описания моделей, по которым и будут создаваться модели формата DirectX. Для динамических моделей (планеты и тд) будут постоянно (при изменении детализации, угла и тд) генерироваться в соответствии с заданными условиями. Для других же моделей (корабли и разная мелочь) модель будет постоянная.
Цитата: |
зы. Считывать с винта параллельно прорисовке - это убъет всю скорость. Винт - самое узкое место по скорости - минимизируй доступ к нему.
|
А я и не говорил, что это хороший вариант (точнее это кошмар для игры).
|
|
|
Sasha
|
|
А я во многом согласен с Vitaliy. Я уже не первый год и не первый раз пытаюсь сделать элиту (как тут говорят "игру мечты"). Но так ни одного релиза и небыло. А всё потому, что постоянно во время работы хочется сделать не просто игру а "мечту". (при работе на энтузизме по другому сложно). Всегда процесс разработки затягивает в такие дебри, что довести начатое не получается. Поэтому считаю текстуры не самым важным моментом. Их добавить не так сложно, как сделать игру. Хотя бы не "мечту", а просто игру. Кстати по поводу динамически создаваемых объектов типа поверхности планет тоже заморачивался. Задачка не из легких. Советую оставить её на потом
p/s сейчас делаю ремейк ZX Elite на Delphi+GLScene (OpenGL), пока без тектур
|
|
|
TpuCTaH
63 EGP
 Рейтинг канала: 1(4) Репутация: 8 Сообщения: 128 Откуда: Харьков Зарегистрирован: 12.06.2006
 |
|
Я приводил уже гдето в этой конференции как Брабен сделал псевдорандом с примерами на сишке. Линк сами можете поискать. Делать любую Игру тяжело и муторно. Тем более что есть очень навороченные образцы уже сделанных до тебя. Сам сейчас по долгу учебы влез в шарп с менаджит дайректом. НО с другой стороны если ничего не делать то ничего и не получиться. Автор пиши игру!
_________________ Если вы считаете, что C++ труден, попытайтесь выучить английский.(с)Bjarne Stroustrup
С++&&DirectX |
|
|
Robomaniac
312 EGP
    Репутация: 92 Сообщения: 713 Откуда: Питер Зарегистрирован: 15.03.2006
 |
|
программерство, эт конечно хорошо, но есть два немаловажных аспекта, которые все разработчики-энтузиасты как правило выпускают из вида, кипя бурной энергией
первое - геймдизайн (баланс и играбельность)
второе - менеджмент (саморганизация, понимание процесса производства игры от А до Я)
ну и куча других моментов... я даже знаю, фактически что мне ответят.. и знаю как закончится проект...
з.ы. нихотел никого обижать, просто интересно, т.к. сам в свое время бился лбом ап стену и имею не один незаконченый проект..
з.ы.ы. как-то тоже хотел покусится на фрилансер+элита, сел сгоряча и начал прикидывать, т.к. опыт по производству игр был... "пыла" хватило на оценку половины проекта, а потом я понял, шо когда я это всетаки сделаю (упорныя я такой), то это уже никому ненадо будет, а если делать бустрей, то я стоко людей не насобираю...
_________________ ...mind integration succes... new world accepted... mind connected.. |
|
|
Robomaniac
312 EGP
    Репутация: 92 Сообщения: 713 Откуда: Питер Зарегистрирован: 15.03.2006
 |
|
хочу добавить пару советов (сам им следую):
1. собери/нарисуй "блок-схему" работы твоей игры и распиши каждый "кирпичик" (в ms visio удобно)
2. никогда не начинай делать игру бе прототипа, пусть там вместо кораблей летают квадратики, а вместо планет висят кубики.. важно определить принцип и понять для себя КАК будет выглядеть игра "изнутри"
3. всегда ВСЁ стараться документировать, даже хистори аськовские сбрасывать в доки.. т.к. вся инфа должна быть под рукой и чтоб 200 раз не объяснсять людям, что и как (советую просто тетрадку завести и туда всё зарисовыват и записывать)
4. не начинай делать игру до тех пор, пока ясно для себя не будеш представлять ЧТО и КАК работает в ней, и какие фичи РЕАЛЬНО нужны. а какие только для понтов.
_________________ ...mind integration succes... new world accepted... mind connected.. |
|
|
Sasha
|
|
Согласен со всеми последними высказываниями и признаю необходимость их соблюдения. Но писать документацию программеры очень не любят (я точно). Поэтому я решил сделать просто ремейк, а там если доделаю можно будет его и разнообразить
Насчет псевдорандома там всё просто, вот ф-ии для делфи.
RandSeed := 500; // задает последовательность
а := Random(1000) + 1000; // выдет значение от 1000 до 1999
В С++ примерно такиеже ф-ии и смысл.
p/s псевдо случайные последовательности для элито подобных игр очень полезная возможность (для тех кто не вкурсе)
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Да разве генерация -проблема? Как раз это и не проблема, проблемы начинаються когда начинаешь писать и лезть в дебри
_________________ MOV topka, C++ |
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
Спасибо всем за поддержку.
Приятно осознавать, что мой проэкт ещё кому-то нужен кроме меня.
2Robomaniac
Я пока создаю графический движёк. Так что про разработку полноценной игры пока речь не идёт. В первую очередь я собираюсь сделать графический движёк (довести до определённой кондиции). Потом в моих планах создать физику. После этого я проведу связку физики и графики. Получившуюся демку с пока ещё "мёртвым" миром выложу на всеобщее обозрение (народ должен оценить и указать на ошибки). Потом ИИ. После этого постоянное улучшение игры (графика, ИИ, звук, квесты и тд). А так как эта операция имеет итеративный (циклический) характер, то игра, я надеюсь будет любима многие годы .
Ну... Это мечты. А если серьёзно, то план графического движка (логическое устройство) я вынашивал последних пару лет. Не меньше - идею игры. По-этому, я надеюсь, что проблем из-за непродуманности действий у меня будет мало.
2Jurec
Главное, когда лезишь в дебри, никогда не останавливаться и никуда не сворачивать .
PS вообще для меня это всё серьёзно (мечта так сказать). Так что буду благодарен любому совету или помощи.
|
|
|
YogSagot
1175 EGP
  Рейтинг канала: 1(8) Репутация: 275 Сообщения: 2796 Откуда: Daugavpils, Latvija Зарегистрирован: 17.08.2003
 |
|
Блин, всегда мечтал создатй что-то Элитоподобное на ДотНете! Когда примишся за игровую механику, может смогу помоч чем!
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Vitaliy : |
Я пока создаю графический движёк. Так что про разработку полноценной игры пока речь не идёт. В первую очередь я собираюсь сделать графический движёк (довести до определённой кондиции). Потом в моих планах создать физику. После этого я проведу связку физики и графики. Получившуюся демку с пока ещё "мёртвым" миром выложу на всеобщее обозрение (народ должен оценить и указать на ошибки). Потом ИИ.
|
Ну будь готов, что это вот надо будет повторить раза 2-3 причем ПОЛНОСТЬЮ ПЕРЕПИСАВ С НУЛЯ!
У меня, например, уже были кораблеги, рокеты, станции. Все это летало - стреляло. Графика тоже не плохая была.
Потом пришлось все переписать, с учетом ошибок, с учетом того что можно_было_и_лучше_архитектуру_движка и т.д.
Правда вот теперь есть супер графика (уровень х3.. прада были бы еще модели такого качества ), но нет самой игры Но я работаю!! И останавливацца нельзя!
_________________ MOV topka, C++ |
|
|
Vitaliy
55 EGP
 Репутация: 10 Сообщения: 43
Зарегистрирован: 04.02.2007
 |
|
2Jurec
Не надо меня пугать. Я работы не боюсь. Но и не люблю. По-этому я и вынашивал столько идею. Если есть хороший план и стремление его реализовать, то даже переписывание с нуля не помешает
|
|
|
Jurec
348 EGP
   Рейтинг канала: 4(76) Репутация: 102 Сообщения: 1441 Заблокирован Откуда: Seattle Зарегистрирован: 25.02.2006
 |
|
Ну так пиши!
_________________ MOV topka, C++ |
|
|
Sasha
|
|
А на этом сайте есть где выложить свою поделку примерно 700кб в архиве. Хочу что-бы Вы заценили, хотя особо нечего заценивать но всё же.
|
|
|
|
|
|
Канал Игры Мечты: «Необходима помощь в создании Elite-подобной игры» |
|