Понедельник, 25 Ноября 2024, 14:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
3D игра с нуля, что такое движок, DirectX
Casper17Дата: Суббота, 10 Апреля 2010, 09:13 | Сообщение # 1
был не раз
Сейчас нет на сайте
Начал изучать C++ и заинтересовался созданием игр. Хотелось бы создать какую-нибудь бродилку со временем и все написать самому с нуля! Пусть получится не ахти какая графика, но со временем можно и улучшать ни кто этому не помешает biggrin + к c++ надо еще и DirectX изучать? Вот интересует пару вопросов:
1.Что из себя представляет движок
2.Что нужно для создание игры C++, DirectX, а здание, персонажей, деревья, текстуры, рельеф(трава и т.д.) где создавать? Часть в 3ds MAX, а остальное, какие программы понадобятся и для чего?
3.Реализация оружия, стрельбы, ботов...
...
Что для начала надо знать что бы сделать рельеф, персонажа(пусть даже колобок biggrin или человека чтобы руки ноги двигались при ходьбе), здания и чтобы просто побегать там! А потом со временем постепенно улучшать, добавлять и т.д.
Что можете посоветовать в литературе, видео уроках... И может есть готовые проекты чтобы посмотреть как там сделано?!
PesetsДата: Суббота, 10 Апреля 2010, 09:39 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Quote (Casper17)
Хотелось бы создать какую-нибудь бродилку со временем и все написать самому с нуля!

"бродилку со временем"? Типа Braid?
Quote (Casper17)
1.Что из себя представляет движок

Ну, с философской точки зрения, движок - это куча кода, упрощающего жизнь при написании игр) Движки бывают настолько разные, что в общем случае трудно точно сказать, что он из себя представляет. Ну, как минимум, там есть набор функций для быстрой инициализации DirectX (или OpenGL), потом функции для рисования, скорее всего, будут еще функции для загрузки ресурсов (текстур, моделей и тп). У некоторых движков это все объединено в классы. У некоторых есть еще в комплекте инструментарий (различные редакторы, например, редактор сцен, редактор систем частиц и тп)

Quote (Casper17)
2.Что нужно для создание игры C++, DirectX, а здание, персонажей, деревья, текстуры, рельеф(трава и т.д.) где создавать? Часть в 3ds MAX, а остальное, какие программы понадобятся и для чего?

Казнить нельзя помиловать... не забываем пунктуацию, а то смысл фразы теряется)
Ну, во-первых, если используется какой-то движок, то нужен, собственно, сам движок. И тогда сам DirectX знать не особо нужно (разве что для понимания).
"Здание", персонажи и деревья делаются в пакетах для 3д-моделирования. Таких пакетов довольно много, по этой теме здесь отдельная ветка форума есть. Тот же 3ds max - один из самых распространенных.
Текстуры создаются в любом графическом редакторе, либо берутся с фотографий, либо можно брать из сети, благо бесплатных текстур довольно много.
Рельеф создается либо в том же 3д-редакторе, либо есть специальные редакторы рельефа, либо смотрим в конкретном движке, как там рельеф надо создавать. Трава обычно создается программно из текстуры и карты "густоты".
Насчет "для чего?". Вот, по-моему, это я должен спросить - "для чего?". Что делать будем? Для разных видов игр нужен разный инструментарий.

Quote (Casper17)
3.Реализация оружия, стрельбы, ботов...

Тут два варианта - либо метод проб и ошибок, либо ищешь исходники разных игр, и копаешься)

Quote (Casper17)
Что для начала надо знать что бы сделать рельеф, персонажа(пусть даже колобок biggrin или человека чтобы руки ноги двигались при ходьбе), здания и чтобы просто побегать там!

Надо знать либо какой движок будем использовать, либо, если никакой, то основы DirectX надо знать.

Quote (Casper17)
Что можете посоветовать в литературе, видео уроках...

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

Quote (Casper17)
И может есть готовые проекты чтобы посмотреть как там сделано?!

=>гугл



Casper17Дата: Суббота, 10 Апреля 2010, 09:56 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quote (Pesets)
"бродилку со временем"? Типа Braid?

Тут имел ввиду что постепенно создать игру! Начиная с рельефа, зданий, персонажа и т.д. а потом уже и сюжет придумать!
BADCOIQДата: Суббота, 10 Апреля 2010, 10:09 | Сообщение # 4
Отец-основатель BADCOIQ Corporation © 2010
Сейчас нет на сайте
Можно и просто на WinAPI СДЕЛАТЬ:)

Добавлено (10.04.2010, 10:09)
---------------------------------------------
Блин, тебе же 3де.
Извиняюсь:)


"Do you think we can fly?
Well, I do."
Programmer_BДата: Суббота, 10 Апреля 2010, 10:44 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Я свой движок давно забросил, поняв всю бесперспективность этого дела. Поделюсь некоторым опытом, но не претендую на "авторитетность" в этом вопросе.

Для начала надо определится, какой движок будем писать, игровой или просто графический. Графический движок может применяться не только в играх, но и в других областях. Игровой движок - только для игр, он должен обрабатывать не только графику, но и звук, ввод, ИИ, физику, сеть и т.д, но главное - он должен обрабатывать непосредственно игровой процесс.
Лично моя, далеко не самая компетентная рекомендация - для графического движка предпочтительнее OpenGL , для игрового DirectX.
Если пишем на OpenGL, то могу рекомендовать книги:
1) непосредственно по API OpenGL - М.Ву, Т.Девис "OpenGL Руководство к программированию"(дано всё необходимое и ничего лишнего)
2)по программированию движка -А.В.Боресков "Графика трехмерной компьютерной игры на основе OpenGL(книга представляет собой листинг движка, способного "читать" уровню из Quake2, с подробными комментариями)
3) Google и куча уроков в сети.

Но автора темы, видимо, больше интересует второй вариант- Игровой движок на DirectX.
Примерно это может выглядеть так:
Графический двиг(на основе Direct3d) - отвечает за отображение всех игровых обектов(данные получает игрового движка). Он должен содержать саму cцену, обеспечивать отображение сеток(моделей), источников света, ландшафта, системы частиц + интерфес пользователя. Чем выше автономность отдельных классов - тем лучше.
Движок ввода(на основе DirectInput) - отвечает за обработку клавы, мыши, джойстика и т.д. и передаёт данные в игровой движок.
Звуковой двиг(на основе DirectSound) - принимает данные из игрового и обеспечивает вывод звука.
Физический движок (может кстати являться непосредственной частью игрового)- принимает данные из игрового(перемещения, столкновения и т.д.), обрабатывает, возвращает обратно.
Искусственный интеллект (тоже может являться непосредственной частью игрового) - просчитывает реакции разных юнитов на возмущения(действия игрока, других юнитов или окружающей обстановки)
Сетевой движок(на основе DirectPlay) - отвечает за сетевое взаимодействие, принимает данные из игрового и возвращает туда же.

Ну и самый основной компонет - непосредственно движок самой игры, который принимает данные от Движка Ввода, Сетевого движка и много ещё чего, просчитывает все игровые процессы(перемещения, проверки столкновений, условия победы\поражения+ физику+ИИ) и возращает данные в графический, звуковой и сетевой движки.

Литература:
0) DirectX SDK - без него никуда
1) Андре Ламот естественно: "Программирование игр для Windows. Советы профессионала" и её продолжение "Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации" (900 и 1400стр соответствено) ну очень серьёзные труды от авторитетного автора
2) 2 книги М.Фленова: "DirectX и с++. Искусство программирования" и "Искусство программирования игра на С++". В первой описываются основы DirectX, во второй пишется несложный игровой движок, она является непосредственным продолжением первой.
3) Г.Снук "3D ландшафты в реальном времени на С++ и DirectX9", тема ландшафта тут раскрыта лучше всего.

Ну и что конечно нужно хорошо знать высшую математику и физику.

Если конечной целью является создание игры, то лучше сразу отказаться от написания своего движка и взять готовый. Но вот если целью создания движка является прежде всего самообразование - то вперёд и с песней в путь... бескрайний. cool

P.S Движок - как ремонт, его нельзя закончить, его можно только забросить.

Сообщение отредактировал Programmer_B - Суббота, 10 Апреля 2010, 10:51
PesetsДата: Суббота, 10 Апреля 2010, 13:54 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote (Programmer_B)
"Программирование игр для Windows. Советы профессионала" и её продолжение "Программирование трехмерных игр для Windows. Советы профессионала по трехмерной графике и растеризации"

Первая книга довольно старая, и, насколько я помню, в ней используется язык С, а не С++. Я бы советовал заострить внимание именно на второй книге, или найти что-нибудь поновее.
Quote (Programmer_B)
"DirectX и с++. Искусство программирования" и "Искусство программирования игра на С++"

Вот здесь я бы повесил большую табличку "АХТУНГ!". В обеих книгах встречаются ужасные куски кода и вообще много бреда. Читать их нужно крайне осторожно, замечая и исправляя все ошибки и недочеты автора. Тем не менее, по сравнению с предыдущими двумя книгами, это и есть "поновее".)
Quote (Programmer_B)
"3D ландшафты в реальном времени на С++ и DirectX9"

Вот под это +1)



Casper17Дата: Суббота, 10 Апреля 2010, 15:32 | Сообщение # 7
был не раз
Сейчас нет на сайте
Напишите по порядку какие книжки лучше читать начиная с С++! И что нужно знать чтобы сделать простой рельеф или плоскость и камеру чтобы можно ей там полетать! А потом созданную модель в 3ds max добавить туда и камеру сделать от первого лица или третьего! shy
el_reyДата: Суббота, 10 Апреля 2010, 23:03 | Сообщение # 8
почетный гость
Сейчас нет на сайте
Casper17,
По C++ рекомендую ровно одну книжку за авторством Роберта Лафоре: "Объектно-ориентированное программирование в C++". Очень хорошая. По DirectX уже порекомендовали выше.
Также можно посмотреть уроки вот на этом сайте: shatalov.su - раздел "Шаг за шагом". Здесь материал для новичков. По ландафтам пока ничего нет, зато очень подробно показан весь процесс: с нуля в C++, до создания камеры в DirectX.


Пишу учебник
BetMoraДата: Понедельник, 08 Ноября 2010, 21:11 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (Casper17)
1.Что из себя представляет движок
2.Что нужно для создание игры C++, DirectX, а здание, персонажей, деревья, текстуры, рельеф(трава и т.д.) где создавать? Часть в 3ds MAX, а остальное, какие программы понадобятся и для чего?
3.Реализация оружия, стрельбы, ботов...

etc.
изучай С++, DirectX, все вопросы отпадут сами по-себе. В общем-то это отчасти матчасть smile

Quote (Pesets)
И может есть готовые проекты чтобы посмотреть как там сделано?!

миллионы опенсорс проектов :)
Quote (Programmer_B)
для графического движка предпочтительнее OpenGL , для игрового DirectX.

тебя не смущает то, что каждый игровой движок, состоит из графического, и многих других?
Quote (Programmer_B)
Г.Снук "3D ландшафты в реальном времени на С++ и DirectX9", тема ландшафта тут раскрыта лучше всего.

тема может и раскрыта, 1-ое что не понравилось, юзается ДХУТ, что не совсем хорошо, 2-ое, книга не захватывает тему реал-тайм рендеринга, т.е. создание ландшафтов реал-тайм, не из карт высот.
Quote (Programmer_B)
Если конечной целью является создание игры, то лучше сразу отказаться от написания своего движка и взять готовый. Но вот если целью создания движка является прежде всего самообразование - то вперёд и с песней в путь... бескрайний. cool

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


Перекуём баги на фичи!
PaintKillerДата: Понедельник, 08 Ноября 2010, 21:16 | Сообщение # 10
Здесь мог быть ваш статус
Сейчас нет на сайте
BetMora, некропосты не оставляй dry

Я критикую Ваши проекты. Но моя критика здравая и адекватная
Мой проект. "Карканус из Тейрёна"
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг