Каталог статей

Главная » Статьи » Создание игр

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

Что такое игра? Игра – это программа. На каком языке программа? На С++? Кто вам это сказал? Если игра написана на С++ то это тетрис или спейсинвайдерс – шаровара одним словом… Игра всех времен и народов пишется на скриптовых языках, встроенных в игровой движок, который в свою очередь и написан на С++. Движок Халф-Лайф 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 источников света… Теней в нашей вселенной нет… Если вы где-то в виртуальном мире видели сотни ламп в коридорах и четкую тень которую отбрасывает персонаж, восхититесь мастерству людей которые создали такую иллюзию. Создав свет, объекты не начнут отбрасывать свет на все вокруг! Для того чтобы персонаж начал отбрасывать тень нужно написать программу и научить компьютер рисовать тень. Для того чтобы сотни ламп осветили коридор, нужно аккуратно нарисовать освещение этого коридора… А для этого нужно много знать и работать. Если вы хотите что-то сделать, и не знаете, как, то вам нужно сначала разобраться как ЭТО происходит в реальном мире. Если вы хотите сделать настоящую тень, то должны знать, как нарисовать эту тень в жизни, на листе бумаги. И конечно нужно искать информацию о создании интересующих вас возможностях. Многое придумано до вас. Можно и нужно воспользоваться накопленными знаниями.

Категория: Создание игр | Добавил: blitz3d (17.07.2009) | Автор: Роман Прядко (Журнал BlitzEt)
Просмотров: 10873 | Комментарии: 10 | Рейтинг: 3.7/3
Всего комментариев: 10
10  
Всем приветик! Давайте далиться последними просмотренными вами фильмами!
Меня недавно впечатлил фильм Мужчина с гарантиейhttp://kinokorsar.ru/ - . По-моему отличный отечественный фильм про взаимоотношения людей.
А вчера мы с мужем сходили на фильм Порочнакя страсть. Интересный фильм о семье, любовнице, деньгах, Тиме Роте и разрушении всего обыденного. Ричард Гир немного постарел, но актерская игра бесподобна!
Какие еще фильмы вы можете посоветовать? хочется чего-нибудь в этом же духе.

9  
Здравствуйте, друзья. Мы с мужем въехали в новую квартиру, ремонт в которой, похоже, не делался никогда. В связи с тем, что на ее покупку пришлось продать старый дом, отдать все сбережения и даже немного занять у родителей, финансовая ситуация не позволяет воспользоваться услугами ремонтных бригад.
А, тем не менее, у нас маленький ребенокhttp://strojdomsam.ru/ - , который просто не должен жить в таких условиях!
Вот я и думаю, как максимально сэкономить на ремонте и хотим попробовать сделать его своими руками.
Но дело в том, что у нас нет никакого опыта, поскольку муж больше головой работает, чем руками, да и боюсь, что придется потом переделывать все и исправлять, а это может повлечь еще большие расходы.
Поделитесь опытом, может кто-то знает, как сделать ремонт подешевле и за что можно взяться самим, а к чему привлекать мастеров.
Заранее благодарна.

8  
Goga как видеш ты тут не один такой

7  
хочу игру

6  
[b]deejex[/b] возможно сначала это и был мод но теперь кс далеко ушла от от своего первого варианта и назвать её модом у меня язык не повернётся

5  
автор ниже всякой критики. Сопливым школьникам надо больше учиться и меньше форумы спамить.Без хорошего программиста ни одна игра сегодня сделана быть не может. Времена контры прошли, и вообще контра это не игра. Это мод (давно устаревший и не интересный мод), если б у автора был хоть минимум практических знаний в области разработки игр, то он посмотрел бы в папку с установленной игрой и увидел там много файликов с hl в имени.

4  
http://ru.wikipedia.org/wiki/Список_игровых_движков -вот список самых самых основных игровых двигов.

3  
"Не согласен! КС - мод, а не игра!" -
создание мода является не менее сложным, чем написание игры. Тем-более CS невероятно отличается от HL,
У него своя система оружия, карт, управления, отличных от стандартных хл. Даже графические эффекты новые. (Дым например).
Если-бы ты занимался созданием карт для CS и HL, тогда бы ты понял всю разницу между ними.
И еще CS - не мод, у него свои DLL, у HL свои. CS занимает места не меньше чем HL. CS работает без HL (Главный признак того, что она не мод).
Просто и CS и HL написаны оба на движке quake.

"З.Ы.: Все современные игры пишутся только на UnrealEngine, Source, OpenGl и DirectX!" - никогда не слышал такого бреда, думай что говориш...
Во первых что значит OpenGl и DirectX? Это потвоему языки программирования, или игровые движки, на которых можно написать игру? хахахахахааа
Во вторых существует более 200 игровых, физических и других движков на которых пишутся современные игры.
И еще UnrealEngine - говно, меня тошнит от него, я неиграю в игры которые его использовали, тошо тормозит тогда, тогда тормозить нечему.
Он медленный шо ппц. И вообще он галимый.


2  
хе я думал я один такой считал дарк про немного корявым по синтаксису.
и начинал я с дарк бэйсика ))))

1  
>...спокойно отвечаем: "Counter Strike".

Не согласен! КС - мод, а не игра!

З.Ы.: Все современные игры пишутся только на UnrealEngine, Source, OpenGl и DirectX!


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Создание игр [8]
Работа с Сетью [1]
Работа с Сетью в Blitz3D Протоколы TCP, FTP, интернет-сёрфинг и пр.
Физические движки [3]
работа с физикой в Blitz3d
Форма входа

Наш опрос
Скольго проектов на Blitz3d Вы закончили?
Всего ответов: 237
Поиск
Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0
Друзья сайта
  • Все об умных часах и фитнес-браслетах
  • Все о поездах и железных дорогах!
  • Aндроид-клуб
  • Автоистория СССР
  • Блог о wordpress
  • Ноты для фортепиано

  • WIFI DIRECT

    все для wordpress



    умные часы Swatch
    умные очки Sony
    умные часы Fitbit Surge