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

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

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

   Страница 1 из 3
На страницу: 1, 2, 3  След. | Все страницы
Поиск в этой теме:
Канал Игры Мечты: «Мануал по созданию игры мечты с нуля»
Ruata Matsu
 325 EGP


Рейтинг канала: 3(35)
Репутация: 28
Сообщения: 3229
Откуда: ёжик в чашке?
Зарегистрирован: 22.03.2004
Понравилась статейка, может кому поможет в начинаниях, ну или хотя бы во вдохновениях. Подмигиваю

Цитата:

Ну что?! Все игры – отстой?! Гейммейкеры - ламеры без ума и фантазии?! А ты просто кладезь идей, умница и крутой программист? Готов сделать игру всех времен и народов? Если нет, то – прощай, ты, слабое звено… Остальные за мной!

Что такое игра? Игра – это программа. На каком языке программа? На С++? Кто вам это сказал? Если игра написана на С++ то это тетрис или спейсинвайдерс – шаровара одним словом… Игра всех времен и народов пишется на скриптовых языках, встроенных в игровой движок, который в свою очередь и написан на С++. Движок Халф-Лайф 2 стоит 500 000 у.е., а сам Халф-Лайф 2 – 50 у.е. Интиресно почему? А я, таки, скажу. Игровой движок Half Life 2 написан на графическом движке Source 6, стоимость которого исчисляется в килобаксах. Для того чтобы написать свой графический движок, нужно столько знаний, что в одной голове они встречаются редко. Это и высшая математика, и физика, и геометрия, и программирование причем на уровне выше школьного. Если я описал ваши способности, причем не полностью, то вы можете заняться написанием своего графического движка. Но времени на написание игр у вас уже не будет! Да и занятие это не достойно человека, который вот-вот создаст супер-пупер игру, которая потрясет мир!!! Халф, Моровинд и Дум3 забьются в угол, жалобно скуля. Двери всех гейм студий будут открыты перед вами, а Кармак будет чистить ваши ботинки.Улыбка Даже серьезные команды редко пишут свой графический движок. Это сложно (Но не невозможно wink.gif ). Вам говорят, что нельзя сделать игру всех времен и народов в одиночку? Врут!!! Хотят избавиться от конкурента, а сами пишут, пишут и пишут свою игру века. На всякие провокационные выкрики типа: "Назовите хоть оду известную игру написанную одним человеком или хотя бы не профессиональной командой!" спокойно отвечаем: "Counter Strike". Самая настоящая игра всех времен и народов, написанная на игровом движке Half Life, который в свою очередь написан на основе движка Quake (или Quake2), который написан на С++…

Я не буду писать, что создание игр - это очень тяжелый труд, требующий много знаний, свободного времени. Что кроме программирования нужно еще уметь рисовать, писать музыку, издавать всякие звуки, создавать 3D модели. Причем все это нужно делать на уровне вашего будущего шедевра… Я не буду писать, что создание игр это постоянный компромисс между красотой и ФПС. Я не напишу, что прежде чем написать игру нужно знать как ее написать. Все равно мне вас не обмануть. Вы-то точно знаете, что для того чтобы создать игру всех времен нужно придумать ей название. Я, попробую рассказать вам как делать игры, но я не смогу рассказать, как писать программы… Программировать вы должны уметь, причем не на уровне "Hello world!!!". Хотя и у таких есть шанс. Все зависит от выбора инструмента – движка…

Что такое движок? Начну издалека. Современные видеокарты сложнее современных компьютеров. В них аппаратно реализован ряд функций, которые делают такое что мне даже в голову не приходит… Из-за того что я не один кому в голову не приходит, что умеют современные видеокарты, да и сами видеокарты делают это по-разному, были созданы специальные наборы функций, для работы с 3Д графикой, сегодня самые ходовые это DirectX и OpenGL – это как бы матрас между железом и программистом, но на таком жестком матрасе могут спать немногие программисты. Только самые стойкие. Для своих более изнеженных собратьев они создают перинку над графическими API. Это собственно уже и есть движок в самом простом случае… Что он делает? Мягко стеллит! Вот вы знаете, как загрузить 3Д модель из файла? Это не плюшки со стола пылесосом тырить!!! А использование движка все сводит к команде «Загрузить модель из файла». Кроме этого движки умеют работать с картинками, музыкой, звуками, джойстиками, мышками, клавиатурами со всем, что необходимо для написания игры. Очень часто освоить такие движки неподготовленному человеку оказывается сложно. Обычно они написаны под С++ и подразумевают что вы не новичок в программировании. Но среди вас, создающих хит века, таких единицы… Эти движки – называются графическими и созданы они для написания игрового движка.

Углубим... Есть графические движки и игровые. Графические - это набор функций для работы с графикой, звуком и т.д. Единственное что они могут это визуализировать. Вы можете нарисовать уровень (Как это делается, узнаем позже), загрузить его и… Ничего!!! Это будет мертвый 3Д объект (картинка)! Графический движок честно отобразит его, но не более… Для того чтобы просто прогуляться по этому уровню нужна надстройка над графическим движком - игровой движок. Он будет сообщать графическому что, когда, как показывать… Кстати даже как загрузить ваш уровень графический движок сам не догадается… Существует куча графических движков, и еще большая куча игровых… Какой движок выбрать? Графический или игровой? Вопрос очень неоднозначный. С одной стороны если вы хотите сделать игру которую мир еще не видел, то выбирать нужно из графических, а если вы хотите сделать игру как Дум3, только монстров побольше и пострашнее, кровищи море, и уровни другие… То вам нужно брать движок Дум3 и делать для него свой уровень. Хотите, чтобы ваше имя осталось в веках? Типа "Vasya Pupkin ®"? Сделайте МОД. Это намного легче чем написать свой Дум3, но намного сложнее чем сделать свой уровень… Кстати, если вы свой уровень для Дума не сделаете, то о МОДе можно забыть… wink.gif Игровые движки обладают более широким спектром возможностей по сравнению с графическими. Они "знают" что, когда и как вам показать. Но в этом их недостаток - они специализированы. Т.е. на движке Дума3 получится только шутер, на движке War Craft 3 – стратегия. Хотя во многом это зависит от возможностей, того самого скриптового языка, подключенного к движку. Для разработки игр на таких движках очень часто не требуются глубокие познания в программировании, но требуется найти софт для создания уровней для движка. Он есть, но не всегда доступен. Если слово уровни вас напрягает и вам кажется что это слишком просто, то это вам только кажется. В том же War Craft – вся игра состоит из отдельных уровней связанных единым сюжетом кампании, причем каждая компания это отдельная игра. Вы можете сделать свою кампанию (Размороженный трон, например) и это может быть ваш коронный час wink.gif. Но на самом деле это тоже недостойно великих игроделов. Ведь мы не ищем легких путей... Рассказывать о игровых движках и графических можно долго, но пусть это делают те, кто в этом разбирается лучше меня.

Перейдем все-таки непосредственно к делу. Существует ряд движков созданных для написаний супер-пупер игр одиночками. Например, RPG maker предназначен для создания супер-пупер JRPG. Ну и что, что 2Д, вам шашечки или ехать? В супер-пупер игре графика не главное. Или Game maker – тоже 2Д. Можно наделать супер-пупер аркаду средней паршивости. Эти движки можно отнести условно к конструкторам. В них можно сделать игру, даже не умея писать программы! В принципе, хорошее начало. Не окунаясь в пучины кода, вы огребаете по полной программе проблем связанных с разработкой игр. Причем половину из них невозможно решить без окунания в код, а в код окунуться в этих движках нельзя. Улыбка. Вот такой замкнутый круг… Но польза от этих "движков" есть - они позволяют разобраться, из каких частей состоит игра. Что очень важно. Поэтому, советую хотя бы глянуть на такие конструкторы, постараться написать простенькую игрушечку – в жизни пригодится… Есть еще один конструктор, но это штучка уже серьезнее 3D game studio – предназначен в первую очередь для написания FPS, но есть возможность дописывать свои блоки. Т.е. когда столкнетесь с какой-то проблемой, есть шанс ее решить, написав свой скрипт. Еще одним достоинством является встроенный редактор мира и объектов.

Движки под С++ трогать не будем ибо нам нужно написать шедевр в сжатые сроки, а С++ обладает кучей преимуществ, в число которых, однако, не входит скорость разработки приложений, да и сделать на них получится, как я говорил, тетрис, а для написания супер-пупер игры придется к рендеру прикручивать скриптовый язык типа Lua, что в принципе не сложно, но те кто знает, как это сделать, перестали читать после первой фразы этой статьи. Ибо они слабаки и не верят в победу нашего разума над косной материей мироздания и создание одиночкой мега-игры…

Рассмотрим движки, в которые встроены бейсики. Это Dark Basic Pro (classic – отстой по умолчанию) - это мега-движок, для конкретных пацанов. Использует DX9 и имеет соответствующие фичи - так называемые шейдеры. Если вам нужны в первую очередь красивости, то вам сюда… Только вот людей которые железно эти красивости могут узреть пока мало… И есть небольшой подводный камень, для тех кто начнет изучение программирования с этого Бейсика - синтаксис Дарка содержит тенденцию вредную для выработки правильного стереотипа написания программ, а именно - он использует назовем так «константный» метод доступа к информации. Т.е. писать нужно типа: Загрузить объект 1, Имя1: Загрузить объект 2, Имя2: повернуть объект 1 на 2. Чем это плохо? Да ничем, если вы собираетесь посветить Дарку всю жизнь. При переходе на другой язык у вас возникнут серьезные затруднения. Подавляющее большинство языков использует другую, «правильную» идеологию – назовем условно «ссылочный» метод доступа. Т.е. писать нужно так: Player=Загрузить объект Имя1: Enemy=Загрузить объект Имя2: повернуть объект Player на Enemy: Для неискушенного ума возникает вопрос: "А какая, хрен, разница?". Спокойно отвечу: "В данном примере - никакой". Но те кто знает английский совершенно точно скажет какая разница wink.gif, и во втором варианте, вам не нужно знать какой номер объекта можно загрузить (какой там по очереди следующий), да мы создали две переменных в которые язык поместил ссылку на соответствующие объекты (считай, что номер), но если по числу невозможно догадаться о том что это за объект, то работая через ссылку можно переменную назвать понятно. То же самое можно сделать и в первом случае, но это будет несколько натянуто… Т.е. написать: player=1:Загрузить объект Player, Имя1: Enemy=2: Загрузить объект Enemy, Имя2: повернуть объект Player на Enemy:. По большому счету это мелочи. Но, как говорят, привычка вторая натура… Самый больной вопрос это стабильность и скорость. Если игра идет у вас, это не значит что она пойдет на другом компьютере…

Второй движок Blitz3d. Естественно, что это тоже мега движок, для реальных пацанов. И похвастать ему вроде нечем DX7 и соответствующие фичи Улыбка, но если у вас видюха не держит железно DX9, зачем вам фичи которые он дает? Ведь это будет не игра а слайд шоу. Так что и DX7 это нормально. Бейсик здесь с нормальной идеологией и ненавязчивым пониманием такого понятия как Handle. Что не мешает переходить на другие движки, а тот опыт который вы наберете здесь сможете применять и в других языках… Отличается стабильностью. Общая беда этих двух движков это скорость логики - медленная (Лечится созданием своих DLL), и скорость отрисовки сцены – медленная (Лечится переходом на другой движок). Наблюдается тенденция (как ни странно) - пописав на Дарке, люди переходят на Блиц. Видимо, набираясь опыта, конкретные пацаны становятся реальными.Улыбка Этот движок отличается стабильностью и хорошими возможностями по созданию игр, для него есть внешние физики, рендеры и замечательное русскоязычное сообщество. У Дарк бейсика тоже есть сообщество и не менее замечательное, но оно значительно меньше…

Конечно же я посоветую новичкам именно Blitz3d. Именно этот движок является оптимальным для начала создания мега игры. В принципе, все что будет происходить дальше относится к любому движку. Я попробую, идя от частного к общему, создать некую теорию происхождения игр в картинках. Картинки будут делаться на Blitz3D. И, если найдутся желающие, на других движках…

Часть вторая(теоритическая подготовка):
В первом выпуске журнала была статья "Фазы создания игр", в которой описано, с чего нужно начать при создании игры. Написано верно, но мы создаем мега-игру, и нам всякие правила и рекомендации по созданию обычных игр не указ. Хотя со структурой игры не поспоришь. И игра и мега-игра состоит из одинаковых частей. Однако углубим и расширим знания, почерпнутые в прошлом номере.

"Визуализация" - это то, что отвечает за отображение виртуального мира на экране. Состоит из двух составляющих графического движка и графического контента (Медиа). Графический контент состоит из 3D моделей и картинок, которые будет показывать графический движок. Все красивости в игре зависят от медиа и только от медиа! Программист может лишь написать алгоритм, который будет есть минимум ресурсов, позволяя использовать навороченные модели и большие текстуры. Если игра тормозит, и программист не может ничего ускорить, значит упрощаем наши замечательные модели или апгрейтим компьютер. (В первую очередь видюху, системник подождет...) Ну и самое радикальное решение - меняем программиста. От графического движка зависит, в каком формате могут быть картинки, текстуры, модели, какие эффекты можно сделать, скорость вывода графики. "Интерфейс пользователя" - бывает игровым и системным. В игровом - играют, в системном - настраивают параметры, сохраняют, загружают. Интерфейс настолько сильно связан с "системой ввода/вывода", что можно сказать, что это одна система. "Логика игры" - Это все что происходит в игре. Ее можно разделить на множество частей, причем эти части зависят от того, какой жанр игры вы выбрали, какая концепция визуализации и перемещения и еще множество переменных влияющих на эту подсистему. Выделю те, которые будут точно везде. "Работа с камерой", перемещение персонажа, физика, АИ, анимация и звук.

Визуализация

Виртуальный мир (любой) состоит из трех видов объектов интерактивных, не интерактивных и эффектов. Интерактивные объекты могут быть игровыми объектами и персонажами. Не интерактивные - это локация (условно) и объекты на локации. Эффекты - это все то, что нафиг ненужно для игрового процесса, но красииииво и жрет столько ресурсов, что мама негорюй!!! Само собой, минимальный набор крутого игродела - это два объекта "Персонаж" и "Локация", многие и вовсе обходятся только локацией. С нее и начнем.

Локация

Локация понятие весьма растяжимое. Начиная от плоского квадратика N на N… нет мало лучше M на M, и кончая сложной системой моделей. Именно локация задает настроение игре, создает ее атмосферу. Локации можно разделить на две принципиальные группы Ландшафты и Декорации. Ландшафты используются для создания открытых пространств, а Декорации для закрытых. Хотя это условность. Можно, например, сделать декорацию ландшафта. Принципиальная разница заключается в том, что Декорация создается в 3D редакторе, а Ландшафт (тем или иным способом) создается игровым движком.

Ландшафт

Вот два способа, которые знаю я:

Первый - загрузка карты высот в сплайновую поверхность (LoadTerrain). Карта высот - черно-белая картинка, где черный цвет высота 0, а белый высота 1. Шаг между высотами = 1/255. Сплайновая поверхность - математическое явление, смысл которого заключается в том, что по отдельным точкам поверхности строится вся поверхность… Достоинство этого метода в том, что такая поверхность отображается быстро, что очень хорошо, но есть и изнанка - у Terrain нет "тела". Поэтому его поверхность тяжело сделать разно-фактурной. Текстура натягивается на всю поверхность Terrain. Т.е. если текстура - трава, то и вся поверхность будет травой. Можно сделать огромную текстуру, на которой нарисовать различные участки ландшафта различными текстурами, но огромная текстура сведет на нет выигрыш от использования Терана. Но есть такая штука - мультитекстурирование. На поверхность накладывается несколько текстур. Например, берем текстуру земли и текстуру на которой схематично нарисованы зоны зеленая (трава), белая (голая земля), черная (типа дорога). При наложении двух текстур мы увидим вполне понятную картину, добавить третьим слоем текстуру состоящую из беспорядочных точек (Нойсовая называется) и вообще классно, только травки, камушки (спецэффекты) добавим чтобы народ внимание на низкую детализацию не обращал… Для природы самое оно! Можно, правда, сделать несколько экземпляров террана, наложить на каждый свою текстуру + карту прозрачности и посмотреть что получится, но мне кажется, будет изврат…

Второй - загрузка карты высот в 3Д объект. Программно создаем квадратик 1х1 и его углы поднимаем в соответствии с картой высот. Положительная сторона этого дела заключается в том, что у нашего ландшафта появляется тело которое можно красить текстурами как заблагорассудится. Хочешь в этом месте травку нарисовать? Пожалуйста! Дорожка здесь идет? Нет проблем! Но за все приходится платить. Очень много съедается ресурсов. Ландшафт 100х100 клеток скушает у вас 20000 треугольников. Естественно есть способы сделать, чтобы эти 20000 рисовались не сразу, но это не всегда помогает… Те кто умеет работать в 3D редакторе скажут: "Нафига козе баян? Я в Максе нарисую быстрее, качественнее и с лайтмапами (Редкий эффект такой, который мало ресурсов жрет)" Но этот способ со счетов не сбрасываем. Есть случаи, когда кроме этого у нас ничего не будет…

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

Декорации

Декорации рисуются в 3Д редакторе. Они отличаются высокой детализацией, сложной геометрией, красивостью всякой и маленькой площадью, ну хорошо - весьма ограниченной площадью. Минус - коридоры, залы, узкие улицы, коридоры, дворики, туннель, прибрежная полоса, каналы, горная дорога. Короче, быть игроку на коротком поводке. Шаг вправо, шаг влево расстрел все видящими вертолетами, мучительная боль от пересечения барьера… Хотя многие сочтут это достоинством. Создаются очень просто! Берется 3Д редактор и рисуется! Только у меня почему-то не получается… Наверное нужно редактор какой-то другой взять. wink.gif Многие скажут: "Нет 3Д редактора кроме 3Дмакс и чарФХ пророк его.." Я скажу: "Ищите и обрящете…" Я пользуюсь Wings3D и после него не могу смотреть на 3Дмакс, Милк и прочие редакторы построенные на четырех оконном интерфейсе. Для создания уровней можно посмотреть редакторы для игровых движков, которые делают уровни в формате bsp или написать свой.

Объекты


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

Эффекты
Эффекты это не материальные и не интерактивные объекты. Они применяются к интерактивным, не интерактивным объектам или локации. Тени, дым, колыхающиеся языки пламени - это эффекты. Трава, деревья могут быть эффектами, если они не интерактивны…

Интерактивные объекты
И наконец самая большая головная боль - интерактивные объекты. Это объекты, которыми можно в игре манипулировать. Их можно использовать, брать, открывать, перемещать… С ними можно делать все что угодно. При условии, что вы сможете это закодировать. wink.gif Если интерактивный объект невидимый, то его называют "триггер". У интерактивных объектов в наличии два особо значимых свойства: 1) Тип срабатывания - в каком случае объект реагирует на воздействие. Может срабатывать при приближении, прикасании, клике, ударе, по условию. От любого события, какое сможете запрограммировать… 2) Тип действия - что происходит с объектом, когда он "срабатывает"… Может открыть дверь, запустить механизм, ударить игрока, "сработать" другой триггер. Любое действие, какое вы сможете запрограммировать.

Для более детального понимания, какие объекты могут быть, что такое интерактивные объекты и как работать с триггерами предлагаю посмотреть RPG maker 2003. Правда, в нем представлена несколько иная картина. Я утверждаю, что если у интерактивного объекта нет графического представления - он триггер, а в RM считается, что если у триггера есть графическое представление, то он интерактивный объект. Но это не важно, результат одинаков. wink.gif

Интерфейс пользователя

Интерфейс пользователя обычно обзывают GUI. Как не удивительно, но эта часть такая же важная, как и визуализация. Именно через интерфейс игрок будет взаимодействовать с вашим миром. Формально к GUI относятся кнопочки, поля ввода, ползунки, надписи, переключатели и прочие визуальные элементы… Но к GUI можно и нужно отнести управление персонажем, манипулирование с объектами. Ведь от удобства управления зависит, насколько быстро игрок погрузится в созданный вами мир. Кроме этого внешний вид панелек, кнопок, шрифтов недолжен расходится со стилем игры. Если у вас игра про древний мир, то странно будет увидеть оформление интерфейса в стиле хайтек… Но самое удивительное, что создание хорошего GUI у вас займет много времени, и нервов, и это не считая графического наполнения… Существует минимальный набор элементов которые должен уметь отображать GUI для игры: кнопки, картинки, текст, поле ввода. Если GUI поддерживает несколько окон, то вам с ним по пути надолго, если есть исходники, возможно навсегда… Часто возможности по созданию GUI являются частью движка, но часто и не являются. Сами принципы создания GUI довольно простые и имея немного опыта и желания всегда можно написать свой GUI чем мы с вами займемся если вы пробудите с нами достаточно долго.

Логика игры

Логика игры это все вычисления, и действия связанные с игрой кроме непосредственно прорисовки мира. Это чистая и незамутненная вотчина программиста. Здесь не нужны таланты художника, модельера, композитора. Нужна строгая логика, знание языка программирования, хорошая алгоритмическая база. В этой части мертвые модели обретают жизнь, мир наполняется звуками и красками, кнопочки интерфейса нажимаются… Тысячи байт информации разрозненные и безжизненные превращаются в единый мир, подвластный программисту… Хотя программист и является самым низкооплачивамым специалистом и игровой индустрии, и считается что в игре главное модели, графика, звук. Без программиста все модели, картинки и звуки так и останутся Media… Именно эта часть игры и является игрой (Игровым движком). Здесь создаются возможности игрового мира и все глюки.

Работа с камерой

Для того чтобы видеть наш мир, нам нужно спроецировать его на экран монитора. Для этого и нужна "камера". Что значит работа с камерой? Камера - это наши глаза в виртуальном мире, и как в реальном, нам нужно изменять наш угол обзора. Т.к. не всегда мы видим мир глазами персонажа, нужно организовывать слежение за глав. героем. В случае с видом от первого лица, управление камерой совмещается с управлением персонажем, но не исчезает!

Перемещение персонажа

В этой части программы описывается, как персонаж перемещается и взаимодействует с внешним миром. Больше и сказать нечего. Но сам этот блок очень многогранен, и его строение непредсказуемо и зависит от опыта программиста, расположения звезд и неизвестно чего еще…

Физика

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

АИ

Искусственный интеллект - очень громкое название. Эта часть программы описывает поведение окружающей среды… Благодаря АИ монстры ходят, ловушки срабатывают двери открываются… Хотя можно отделить триггеры от НПС, и АИ сделать только для монстров, а на триггеры сделать отдельный блок. Обычно это та часть, которая превращает мега-игру в очень средненькую игру, если совсем не убивает…

Анимация и звук

Этот блок хитрым образом связан почти со всеми блоками… И с GUI, и с перемещением персонажей, и с физикой, и с АИ… Анимация и звук идут параллельно. Задача этого блока своевременно менять анимацию и звуковое сопровождение объектов, элементов интерфейса…

Строение вселенной

Со строением игры немного разобрались, давайте разберемся со строением Виртуальной вселенной. Вселенная имеет форму шара с радиусом 2^32 единиц, хотя есть мнение, что она имеет форму куба с такой стороной. Точных данных на этот счет нет… На периферии нашей вселенной наблюдаются сильные искажения пространства, что выражается в тряске и дерганье при движении и поворотах, взаимных проникновениях объектов, обусловленных ошибками при определении расстояния от камеры до треугольника т.к. Z-buffer работает на пределе своих возможностей. Z-buffer свойство вселенной прорисовывать дальние треугольники первыми… В этих условиях необходимо помнить, что без проблемное построение мира возможно только в центральной части вселенной. Но нужно знать, что микрокосмос не бесконечен и так же имеет размеры. При очень маленьких размерах так же наблюдается аномальное поведение виртуальных объектов. Если наш мир - планета, то можно принять единицу - виртуальной вселенной равной 1 метру или 0.5 метра или 0.1 метра. Самое простое это 1:1. Если ваш мир - вся вселенная, то у вас проблемы… Диаметр нашего Солнца 61392000000 метров, диаметр нашей виртуальной вселенной 4294967296 единиц. Если брать 1:1, то нашей вселенной не хватит чтобы отобразить наше светило. Мечтатели дальних странствий и реальных размеров, вы рано родились… Но не все потеряно. Если подойти к делу создания своего мира с головой, все возможно… Правда нужно сделать виртуальное пространство в нашей виртуальной вселенной, метрикой которого вы будете управлять… Но это сложно сделать создателю мега-игры, тут нужно технически. wink.gif

Свет в нашей вселенной презирает преграды. Он распространяется легко и свободно, проходя через объекты, равномерно освещая их треугольники. Вернее их вершины. Типов источников света может быть три точечный, направленный, пятновой (типа фонарик)… Всего может быть 8 источников света… Теней в нашей вселенной нет… Если вы где-то в виртуальном мире видели сотни ламп в коридорах и четкую тень которую отбрасывает персонаж, восхититесь мастерству людей которые создали такую иллюзию. Создав свет, объекты не начнут отбрасывать свет на все вокруг! Для того чтобы персонаж начал отбрасывать тень нужно написать программу и научить компьютер рисовать тень. Для того чтобы сотни ламп осветили коридор, нужно аккуратно нарисовать освещение этого коридора… А для этого нужно много знать и работать. Если вы хотите что-то сделать, и не знаете, как, то вам нужно сначала разобраться как ЭТО происходит в реальном мире. Если вы хотите сделать настоящую тень, то должны знать, как нарисовать эту тень в жизни, на листе бумаги. И конечно нужно искать информацию о создании интересующих вас возможностях. Многое придумано до вас. Можно и нужно воспользоваться накопленными знаниями.

Автор: Роман Прядко (Журнал BlitzEtc)

_________________
Говорю правду в глаза. Вас это пугает? Тогда бойтесь меня.

Последний раз редактировалось: Ruata Matsu (14:01 11-10-2008), всего редактировалось 3 раз(а)
    Добавлено: 16:32 09-10-2008   
Digited
 271 EGP


Рейтинг канала: 4(99)
Репутация: 49
Сообщения: 932

Зарегистрирован: 24.08.2004
И что? Какая новичку польза от этого сумбура?

Последний раз редактировалось: Digited (20:41 09-10-2008), всего редактировалось 1 раз
    Добавлено: 20:33 09-10-2008   
Crimson
 560 EGP


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

Зарегистрирован: 03.09.2003
Ну как... поржать всегда полезно Гы-гы
    Добавлено: 21:07 09-10-2008   
Raunijar
 215 EGP


Рейтинг канала: 2(15)
Репутация: 46
Сообщения: 245
Откуда: Sol III. Terran swamp
Зарегистрирован: 07.01.2008
Польза в списке направлений, куда копать. Это кому действительно неймется. А кому просто поговорить — сменит тему.
_________________
EkerilaR asugisalas muha haite gagaga ginuga he lija hagalawijubig
    Добавлено: 21:47 09-10-2008   
Sh.Tac.
 151 EGP


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

Зарегистрирован: 27.07.2005
очередная реклама Дарк Бейсика и Блитц 3Д Улыбка

а начинать, как тут неоднократно повторялось, надо с диздока

он имеет много схожего с диссертацией,
и совсем в идеале его бы надо защищать перед инвесторами

миллион обезьян с печатными машинками не напишут Войну и Мир (c)
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:00 10-10-2008   
Crush
 285 EGP


Рейтинг канала: 2(10)
Репутация: 48
Сообщения: 1190
Откуда: Владивосток
Зарегистрирован: 23.07.2003
А шо делать тем кто написал диздок, но не знает с какой стороны подступится его реализовывать. Ибо пока ты напишешь свой собственный 3д движок, весь энтузиазм по созданию игры мечты иссякнет. Улыбка
    Добавлено: 02:00 10-10-2008   
Kamizeka
 370 EGP


Рейтинг канала: 3(27)
Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
Crush :
А шо делать тем кто написал диздок, но не знает с какой стороны подступится его реализовывать.

Переписать заново, потому что это плохой диздок.

добавлено спустя 2 минуты:
Crush :
Ибо пока ты напишешь свой собственный 3д движок, весь энтузиазм по созданию игры мечты иссякнет.

Тогда вообще не надо браться. Создание игры мечты, как и любая другая работа требует каменной задницы.
_________________
Something's rotten in the state of Denmark.

Последний раз редактировалось: Kamizeka (02:08 10-10-2008), всего редактировалось 1 раз
    Добавлено: 02:08 10-10-2008   
Crush
 285 EGP


Рейтинг канала: 2(10)
Репутация: 48
Сообщения: 1190
Откуда: Владивосток
Зарегистрирован: 23.07.2003
Если написание своего 3д движка является обязательным требованием для написания игры мечты, мож тогда и свой собственный компилятор предварительно надо написать? А то может всякие левые продукты типа VS и gcc плохо компилят. Ведь в создании игры мечты что у нас главное? РаботА! Процесс так сказать.. а когда будет результат похоже не так важно. Хы...
Не всегда имеет смысл мастерить лопату самому, когда тебе необходимо вырыть яму (можно и купить инструмент).
    Добавлено: 04:05 10-10-2008   
Digited
 271 EGP


Рейтинг канала: 4(99)
Репутация: 49
Сообщения: 932

Зарегистрирован: 24.08.2004
Crush :
Ибо пока ты напишешь свой собственный 3д движок, весь энтузиазм по созданию игры мечты иссякнет.

У меня не иссяк, потому - не факт.

добавлено спустя 22 минуты:
Crush :
Не всегда имеет смысл мастерить лопату самому, когда тебе необходимо вырыть яму (можно и купить инструмент).

А если готовой снегоуборочной лопатой не получается рыть канаву, или лопата слишком велика для ямы, которую нужно выкопать?
Игра начинается с движка: на движке дума гонок не сделать. Ограничения модостроительства любой рпг заложены в ее движке.
Имхо, если новичок не строит планов по мировому господству, сладить с SDL + DevIL + OpenAL для своей игры ему будет, пожалуй, проще, чем освоить и настроить для своих нужд Irrlicht или OGRE.
Уровень программиста должен соответствовать уровню движка, на котором он хочет сделать полноценную игру.

Последний раз редактировалось: Digited (09:12 10-10-2008), всего редактировалось 1 раз
    Добавлено: 09:12 10-10-2008   
Kamizeka
 370 EGP


Рейтинг канала: 3(27)
Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
2 Crush
Это ясно, я не о том (кстати про якобы ненужность собственного двигла - it depends, причём сильно).
Цитата:
Ибо пока ты напишешь свой собственный 3д движок, весь энтузиазм по созданию игры мечты иссякнет.
Если пупок развяжется с движком, он развяжется и без него - для этого будет стопицот возможностей во всех точках проекта. Если в ТЗ есть пункт "сделать движок" - он должен быть сделан, с энтузиазмом или без, иначе ничего путного не выйдет. А если какой-либо пункт невыполним/непонятен/избыточен - это уже плохое ТЗ, и всё было неправильно изначально.

P.S. А вообще тема ни о чём, как обычно. "Чего тут думать? Прыгать надо!" Алл райт, копирайт!
_________________
Something's rotten in the state of Denmark.
    Добавлено: 12:46 10-10-2008   
Guest
 2075 EGP


Модератор
Рейтинг канала: 5(167)
Репутация: 376
Сообщения: 27975
Откуда: Моск.
Зарегистрирован: 12.10.2004
Если в мире существует движок, удовлетворяющий техническим требованиям проекта - стоит ли тратить время на написание своего (с целью лучше разбираться в логике его работы), или имеет смысл его купить и переходить к контенту и настройке, экономя человекодни и энтузиазм?
_________________
Трещит земля как пустой орех
Как щепка трещит броня
    Добавлено: 14:31 10-10-2008   
Digited
 271 EGP


Рейтинг канала: 4(99)
Репутация: 49
Сообщения: 932

Зарегистрирован: 24.08.2004
Guest, это должно решаться разработчиками в каждом конкретном случае.
В случае новичка не понятно, откуда он может знать, что данный движок удовлетворяет его требованиям, если не имеет опыта создания игры на готовом движке или опыта создания своего движка. Такое знание из ниоткуда не приходит, да и мало какой новичок представляет четко структуру и технические требования игры к движку.
Стандартно рекомендуемая схема мод -> аркада -> игра мечты вполне разумна.

добавлено спустя 1 минуту:
Но в реальности мало какой новичок выбирает схемы, разумные для опытных разработчиков, чей опыт пришел от деятельности, мало схожей с предлагаемыми схемами. Улыбка

Последний раз редактировалось: Digited (19:49 10-10-2008), всего редактировалось 1 раз
    Добавлено: 19:49 10-10-2008   
Ruata Matsu
 325 EGP


Рейтинг канала: 3(35)
Репутация: 28
Сообщения: 3229
Откуда: ёжик в чашке?
Зарегистрирован: 22.03.2004
Digited :

Уровень программиста должен соответствовать уровню движка, на котором он хочет сделать полноценную игру.

Если ты пишешь свой движок - то ИМХО неизбежен рост уровня программиста. В итоге - никогда не будет написан движок "Игры мечты". Программист перерастает свой движок в процессе написания. Подмигиваю В итоге - начинается написание нового движка... а потом еще и еще... а время (годы) идет и уходит... энтузиазм - улетучивается.
Это сугубое ИМХО, но уже где то я такое видел Подозрение.

По этому - как вариант - нужно ИМХО взять готовый движок - и в процессе работы над игрой и движком - "дорасти" до движка, так сказать, в процессе. (это исключительно мой хитрый план, никому его не навязываю ни в коем случае)
_________________
Говорю правду в глаза. Вас это пугает? Тогда бойтесь меня.

Последний раз редактировалось: Ruata Matsu (11:38 11-10-2008), всего редактировалось 1 раз
    Добавлено: 11:04 11-10-2008   
Protectorat
 70 EGP


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

а начинать, как тут неоднократно повторялось, надо с диздока


кто сказал? диздок не обязателен. небольшой концепт - нужен, это да, чтобы с пути не сбиваться. а законченный диздок - на 300 страниц с полным описанием всего, что есть в мире, и сколько HP у кого - это бред. самое смешное, что его даже никто не будет читать при разработке, а то, что задумывалось, будет реализовано в игре по-другому.

Sh.Tac. :

и совсем в идеале его бы надо защищать перед инвесторами


Нафига козе баян? Если разработчики свои диздоки не читают, то инвесторам они подавно не нужны. Инвесторам нужен бизнес-план, т.е. когда и сколько нужно бабла и когда и сколько бабла придет обратно.
    Добавлено: 11:41 11-10-2008   
Варсик
 545 EGP


Рейтинг канала: 4(81)
Репутация: 117
Сообщения: 4041
Откуда: Москва
Зарегистрирован: 22.12.2002
Rumat :
Это сугубое ИМХО, но уже где то я такое видел
Я тоже... У себя на компьютере. Знакомо как-то.

Концепт нужен 100%, но этого мало. Надо еще команду, а вот ее взять негде.
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 12:00 11-10-2008   
Ruata Matsu
 325 EGP


Рейтинг канала: 3(35)
Репутация: 28
Сообщения: 3229
Откуда: ёжик в чашке?
Зарегистрирован: 22.03.2004
Ну и думаю, будет полезно посмотреть на эту ссылку - это база включающая 47 игровых движков с указанием версии и даты последнего обновления. Просто и наглядно.
Для новичков ИМХО облегчает жизнь

 Cкрытый текст   (кликните здесь для просмотра)
Цитата:
http://www.uraldev.ru/engines/

_________________
Говорю правду в глаза. Вас это пугает? Тогда бойтесь меня.

Последний раз редактировалось: Ruata Matsu (14:05 11-10-2008), всего редактировалось 4 раз(а)
    Добавлено: 14:03 11-10-2008   
Rattus
 950 EGP


Модератор
Рейтинг канала: 4(57)
Репутация: 119
Сообщения: 3072
Откуда: в этом предложении двоеточие?
Зарегистрирован: 11.03.2004
Digited :
Какая новичку польза от этого сумбура?
Фффф! ФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФФ!
Например я теперь знаю почему в X-ах и хрюланцере трясется изяброжение посудины тем сильнее, чем дальше улетаешь от центра системы:
Цитата:
На периферии нашей вселенной наблюдаются сильные искажения пространства, что выражается в тряске и дерганье при движении и поворотах, взаимных проникновениях объектов, обусловленных ошибками при определении расстояния от камеры до треугольника т.к. Z-buffer работает на пределе своих возможностей. Z-buffer - свойство вселенной прорисовывать дальние треугольники первыми…
А стиль - ППК-угоден. Тех, кто за стилем сути не уловит, и Вангеров с Полной трубою смысла глубиннаго не чувствует, к разработке геймплея и сюжета игрищъ под страхом казни через макатумбу допускать нельзя, ящетаю. Гы-гы
Sh.Tac. :
очередная реклама Дарк Бейсика и Блитц 3Д
Вот Драк бесика Мы рекламы как-то не усматриваю. Даже наобормот скорее. Блитц 3D - да, но опять же - не оголтелая совсем, а разумное вполне описание того, што на ем можно, што - етъ. Единственно что: стотья несколько морально устарела...
Как-то так.
_________________
ככצק גתמ גןככסקкאן!

Последний раз редактировалось: Rattus (16:13 11-10-2008), всего редактировалось 2 раз(а)
    Добавлено: 16:12 11-10-2008   
Digited
 271 EGP


Рейтинг канала: 4(99)
Репутация: 49
Сообщения: 932

Зарегистрирован: 24.08.2004
Rumat :
Если ты пишешь свой движок - то ИМХО неизбежен рост уровня программиста. В итоге - никогда не будет написан движок "Игры мечты". Программист перерастает свой движок в процессе написания. Подмигиваю В итоге - начинается написание нового движка... а потом еще и еще... а время (годы) идет и уходит... энтузиазм - улетучивается.
Это сугубое ИМХО, но уже где то я такое видел

Форумный треп и плюсы в профиль - ничто. Подобные вещи стоит говорить только при наличии опыта, если отсутствует - мир переживет, если будет нафлужено одной несуразицей меньше.
Вот лично мне сейчас стыдно за некоторые собственные беспочвенные умничания пару лет назад (см. ответы в первых темах Юры).

Protectorat :
кто сказал? диздок не обязателен. небольшой концепт - нужен, это да, чтобы с пути не сбиваться. а законченный диздок - на 300 страниц с полным описанием всего, что есть в мире, и сколько HP у кого - это бред. самое смешное, что его даже никто не будет читать при разработке, а то, что задумывалось, будет реализовано в игре по-другому.

Я, пожалуй, сохраню ваши посты, года через три будет очень занимательное общение.
    Добавлено: 19:55 11-10-2008   
Protectorat
 70 EGP


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

Я, пожалуй, сохраню ваши посты, года через три будет очень занимательное общение.


Да хоть через пять. Мы сами пробовали разработку как с диздоком, так и без него. Толка от диздока - совсем немного, я про тот вариант, который общепринятый, типа, все расписано как должно быть и т.п.
Объясню почему - дажый самый крутой гейм-дизайнер не может в голове представить тот игровой процесс, который понравится игрокам, а тем более заранее расписать количество зарядов, брони и навыков. Поэтому слепое следование диздоку обычно приводит к созданию плохих игр. И поэтому при создании хороших игр эти диздоки переписываются несколько раз. И поэтому, чтобы не тратить время на написание диздока, который в конечном счете никому не понадобится, пишутся небольшие концепты по разным аспектам игры. Именно они и принимаются потом в качестве точек отсчета при разработке, могут расширяться, видоизменяться и т.п.

добавлено спустя 3 минуты:
Ну и, забыл добавить, конечно самое главное, после концепта - это создание прототипа игры, чтобы почувствовать геймплей. Если прочуствовали - то можно и диздок написатьУлыбка Но часто у разрабов нет денег на то, чтобы писать прототипы, ну если конечно они не Bungie какие-нибудь или id с Blizzard'омУлыбка

Последний раз редактировалось: Protectorat (00:08 12-10-2008), всего редактировалось 1 раз
    Добавлено: 00:08 12-10-2008   
Sh.Tac.
 151 EGP


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

Зарегистрирован: 27.07.2005
Protectorat :
Ну и, забыл добавить, конечно самое главное, после концепта - это создание прототипа игры, чтобы почувствовать геймплей. Если прочуствовали - то можно и диздок написать


Это всего лишь означает, что у вас скорее всего программист является по совместительству геймдизом.

А вообще не знаю ни одной современной хорошей игры, когда во главе идейной разработки стояли программисты Гы-гы
_________________
This is what you get ...
(c) Radiohead
    Добавлено: 01:32 12-10-2008   
Канал Игры Мечты: «Мануал по созданию игры мечты с нуля»
На страницу: 1, 2, 3  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Грузовой отсек выполнил недопустимую операцию и будет закрыт.

  » Мануал по созданию игры мечты с нуля | страница 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