Пятница, 19 Апреля 2024, 05:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Программирование » Общие обсуждения программистов » Структура создания игр, с++/Directx OpenGL, #новичкам (Структура создания игр)
Структура создания игр, с++/Directx OpenGL, #новичкам
elianyyfДата: Вторник, 06 Мая 2014, 00:18 | Сообщение # 1
был не раз
Сейчас нет на сайте
Знаю что есть куча вопрос на эту тему, но те, что я находил, либо не давали ответа на мой вопрос, либо ответы 2008-2009 годов, что не гуд.
Собственно вопросы:
1)Вот допустим я изучил с++, взялся изучать Directx, какие возможности его? Я как бы не могу понять самую структуру написания игры. В Directx можно ли совать 3д модели, сделанные в том же 3д максе? Как создавать текстуры, уровни и интерфейс пользователя, не думаю что с++ и директа или Опена хватит для создания игры, хотя об этом только и слышу.
2)Чем отличается Directx и OpenGL, что лучше? В одной статье обосрали Опен в другой Директ, сиди и думай что юзать. Говорят что ОПен плохо стал поддерживатся но он мол кроссплатформенный.
3)Где создается сам мир игры, как и где это все рисуется, что бы заранее знать с чем придется иметь дело?
4)По поводу библиотек, кучу нашел, но не знаю какие толковые, кому не сложно назовите пару нормальных библиотек с норм документацией.
5)Можно ли на с++ писать не только под виндовс игры? Нашел разные ответы, не понятно кому верить.
6)Последовательность изучения книг по с++(Например с++ для чайников, 21 день, Страуструп), нашел на форуме только какие есть, хотя и в гугле мог бы найти, а правильную последовательность.

Кому не трудно, опишите структуру и инструменты для создания игры. Полноценную 3D.
И ещё вопрос, если создавать онлайн игру, то что ещё нужно к этому всему что я наговорил?

Движки не предлагайте, их всех слышал, в планах другие вещи.
Поиск на форуме юзал, не нашел конкретных ответов.

Спасибо.


Сообщение отредактировал elianyyf - Вторник, 06 Мая 2014, 00:21
Storm54Дата: Вторник, 06 Мая 2014, 12:21 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Цитата
либо ответы 2008-2009 годов, что не гуд.

Ничего особо не поменяется.
Цитата
В Directx можно ли совать 3д модели, сделанные в том же 3д максе?

Тебе придется написать свой загрузчик 3D модели. По сути, любой 3D формат представляет из себя набор вершин, некоторые хранят данные об анимации. Найти документацию по какому-либо открытому формату достаточно просто. Да и готовые загрузчики тоже есть в сети. В DirectX уже реализована поддержка формата .X - его на первое время хватит.
Цитата
Как создавать текстуры, уровни и интерфейс пользователя, не думаю что с++ и директа или Опена хватит для создания игры, хотя об этом только и слышу.

Достаточно взять и поискать, что означает каждое, написанное тобою, слово. Текстура - грубо говоря обычная картинка. Уровень - это вообще слишком обширное понятие, т.к. может включать в себя модели, текстуры, позиции источников освещения и т.п. Формат уровня, как и редактор придется писать самому. Интерфейс в большинстве случаев представляет из себя несколько текстур. Хотя в наше время отдают предпочтение и 3D интерфейсу, который рендерится перед камерой.

Цитата
Где создается сам мир игры, как и где это все рисуется, что бы заранее знать с чем придется иметь дело?

Мир игры представляет из себя совокупность уровней. Об уровнях я написал выше. Каждый кадр тебе придется сформировать набор геометрии, который должна будет отрендерить видеокарта - это грубо говоря.

Цитата
По поводу библиотек, кучу нашел, но не знаю какие толковые, кому не сложно назовите пару нормальных библиотек с норм документацией.

Какие именно библиотеки тебя интересуют? DirectX хорошо документирован. В SDK даже примеры есть.

Цитата
Можно ли на с++ писать не только под виндовс игры? Нашел разные ответы, не понятно кому верить.

C++ - просто язык программирования. Все, что ты пишешь представляет из себя обычные текстовые файлы. А вот их преобразованием в машинный код занимается компилятор. Так что все зависит от того, есть ли компилятор под нужную тебе ОС. Универсальный код в большинстве случаев написать не получится( не используя ухищрения ), т.к. API каждой ОС отличается.

Цитата
И ещё вопрос, если создавать онлайн игру, то что ещё нужно к этому всему что я наговорил?

Тебе нужно будет реализовать работу с одним из сетевых протоколов. В большинстве случаев это UDP или TCP.

Цитата
Движки не предлагайте, их всех слышал, в планах другие вещи.
Поиск на форуме юзал, не нашел конкретных ответов.

Судя по твоим вопросам, у тебя совсем нет представления о создании даже простых приложений.
Если ты не представляешь, как именно все работает, то написать почти с нуля(что именно ты и собираешься) невозможно.
А если у тебя нет и знаний математики(включая выш. мат.) то твои шансы равны нулю. Именно нулю, как бы разочаровывающе это не звучало.

Так что для начала бери какой-нибудь движок, например Irrlicht, и работай с ним. По этому движку я могу тебя проконсультировать. Почему именно он, а не какой-нибудь Unity3D ? Потому что он представляет из себя одну библиотеку, которую ты подключаешь в IDE и пишешь на C++. Другие, более мощные движки, например Unity3D, CryEngine, Unreal Engine, представляют из себя целый набор инструментов. Научиться на них программировать гораздо труднее. Лучше начинать с чего-нибудь более приземленного.

Цитата
Чем отличается Directx и OpenGL, что лучше? В одной статье обосрали Опен в другой Директ, сиди и думай что юзать. Говорят что ОПен плохо стал поддерживатся но он мол кроссплатформенный.

DirectX - целый ряд библиотек, предоставляющих работу со звуком, графикой, сетью и устройствами ввода. Однако, DirectX функционирует лишь на Windows(ну и в какой-то мере на консолях. Там есть свои обертки. Например Sony DirectX)
OpenGL (Open Graphics Library) - представляет из себя набор кроссплатформенных библиотек, предоставляющих работу исключительно с графикой.


Сообщение отредактировал Storm54 - Вторник, 06 Мая 2014, 12:21
elianyyfДата: Вторник, 06 Мая 2014, 12:35 | Сообщение # 3
был не раз
Сейчас нет на сайте
Спасибо большое за ответы. Т.к. у вас 8 лет работы, думаю стоить прислушаться и начать с движка Irrlicht. Я так понял, это библиотека которая просто инклюдится, и без знания с++ я ничего все равно не сделаю, нужно сначала язык выучить, правильно? На счет текстур и мира, то это понятно что картинка, модели и т.д., я хотел узнать где это все рисовать, куда импортировать? Потому что на данный момент я думаю, что просто взял нарисовал картинку в фотошопе и вставил.
Storm54Дата: Вторник, 06 Мая 2014, 12:46 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Цитата
Я так понял, это библиотека которая просто инклюдится, и без знания с++ я ничего все равно не сделаю, нужно сначала язык выучить, правильно?

Да, библиотека просто подключается к какой-нибудь IDE, например Visual Studio. При работе с Irrlicht потребуется хорошее знание C++, в частности ООП.
Советую посетить русский сайт Irrlicht там можно найти много советов и примеров.

Цитата
я хотел узнать где это все рисовать, куда импортировать? Потому что на данный момент я думаю, что просто взял нарисовал картинку в фотошопе и вставил.

Нужно экспортировать в тот формат, который поддерживается движком. Если пишешь с нуля, то тогда поддержку формата нужно реализовать самому.
elianyyfДата: Вторник, 06 Мая 2014, 12:53 | Сообщение # 5
был не раз
Сейчас нет на сайте
Как то мутно все про текстуры и т.д., думаю пока не стоит заморачиватся, знаю зато куда копать. Ещё пару советов пожалуйста и можно закрывать тему.

Сейчас стоит среда VS 2012, работать в ней или скачивать более новые версии?
И раз такой у вас большой опыт по с++, посоветуйте книги по с++, знаю что их много и загуглить без проблем, но отзывы разные и не знаешь, в какой правильной последовательности их читать. Спасибо.
FolleahДата: Вторник, 06 Мая 2014, 13:03 | Сообщение # 6
Архитектор
Сейчас нет на сайте
elianyyf, вы какие языки программирования знаете?

elianyyfДата: Вторник, 06 Мая 2014, 13:04 | Сообщение # 7
был не раз
Сейчас нет на сайте
PHP js ну и соответственно html css, чуть больше года

Сообщение отредактировал elianyyf - Вторник, 06 Мая 2014, 13:05
Snake174Дата: Вторник, 06 Мая 2014, 13:13 | Сообщение # 8
участник
Сейчас нет на сайте
Цитата
Сейчас стоит среда VS 2012, работать в ней или скачивать более новые версии?

Можешь эту оставить. У меня вообще 2010 стоит и вполне её хватает.

Цитата
посоветуйте книги по с++, знаю что их много и загуглить без проблем, но отзывы разные и не знаешь, в какой правильной последовательности их читать

Я думаю, тут не важно в какой последовательности читать. В институте изучали С++, писали простые программы на TurboC, можно даже сказать, что не знал его. На работу устроился, там C++ в связке с Qt используют, программируют под винду и линукс. Давали какие-то задания, так потихоньку и стал С++ понимать. Начни с простых приложений, например чтение текста из файла, потом посложнее и т.д. Так потихоньку и будет всё получаться.


Не следует обманывать инспектора
Pipmak Assistant
Love2D Exporter
Love2D-Helpers
Old Consoles Games
elianyyfДата: Вторник, 06 Мая 2014, 13:17 | Сообщение # 9
был не раз
Сейчас нет на сайте
Спасибо всем. Все что хотел узнал.
FolleahДата: Вторник, 06 Мая 2014, 13:19 | Сообщение # 10
Архитектор
Сейчас нет на сайте
Хотя вы все уже узнали, но я советую подучить клиентские ЯП (с паскаля начните), прежде чем таких гигантов (вроде С++) изучать. Можете даже не стараться, не зная банальных принципов клиентского программирования, это дело вам быстро надоест (тут вот паскаль и пригодится). Я тоже начинал с PHP, потом выучил паскаль, теперь вот Java учу.



Сообщение отредактировал Folleah - Вторник, 06 Мая 2014, 13:20
Snake174Дата: Вторник, 06 Мая 2014, 13:28 | Сообщение # 11
участник
Сейчас нет на сайте
Цитата
Кому не трудно, опишите структуру и инструменты для создания игры. Полноценную 3D.

PhotoShop или Gimp для рисования текстур.
Blender, Maya, 3DMax, ... для создания моделей
Для создания музыки что-нибудь

OpenGL или DirectX для написания графического движка. Лучше OpenGL, если хочешь не только под винду писать.

Java + LibGDX или LWJGL тоже неплохо )

Цитата
И ещё вопрос, если создавать онлайн игру, то что ещё нужно к этому всему что я наговорил?

Возьми какую-нибудь библиотеку для работы с сетью, например enet или zeromq. Так быстрей будет, чем что-то своё писать.


Не следует обманывать инспектора
Pipmak Assistant
Love2D Exporter
Love2D-Helpers
Old Consoles Games
goldsphereДата: Четверг, 08 Мая 2014, 11:59 | Сообщение # 12
заслуженный участник
Сейчас нет на сайте
Цитата Folleah ()
Хотя вы все уже узнали, но я советую подучить клиентские ЯП (с паскаля начните), прежде чем таких гигантов (вроде С++) изучать.

По своему опыту могу сказать, что не обязательно, всё что есть в паскале, есть в Си, и почему бы не пользоваться этим в Си, заодно изучая его. Когда почувствуете, что вполне освоились, можно уже углубляться в вещи, которые некоторые считают "сложными".


FinderX - Android Аркада

Сообщение отредактировал goldsphere - Четверг, 08 Мая 2014, 12:00
OoOoOoOДата: Среда, 14 Мая 2014, 16:36 | Сообщение # 13
был не раз
Сейчас нет на сайте
Storm54,
Цитата Storm54 ()
Так что для начала бери какой-нибудь движок, например Irrlicht, и работай с ним.

какой интересный движок, нужно попробовать.


C#|.NET - ASP.NET, ASP.NET MVC/WebAPI, WinForm, WCF, Service, Entity Framework/NHibernate...
jquery, javascript
Objective-C
DantorSДата: Среда, 14 Мая 2014, 17:40 | Сообщение # 14
заслуженный участник
Сейчас нет на сайте
Цитата elianyyf ()
Вот допустим я изучил с++, взялся изучать Directx, какие возможности его?

DirectX - это просто несколько библиотек с набором функций. Не понимаю что ты имеешь ввиду под возможностями.
Цитата elianyyf ()
В Directx можно ли совать 3д модели, сделанные в том же 3д максе?

Ну если у тебя есть исходный код 3д макса, то да сможешь. Если нет - придётся либо создать экспортер, либо загружать в свою программу общие форматы файлов для 3д моделей (obj,fbx,dae и т.д.).
Цитата elianyyf ()
Как создавать текстуры, уровни и интерфейс пользователя, не думаю что с++ и директа или Опена хватит для создания игры, хотя об этом только и слышу.

Текстуры, уровни в 3д максе, например. Интерфейс пользователя: по сути у тебя осталса тот же си ++ но с графической оболочкой. Твори чё хочешь.
Цитата elianyyf ()
Чем отличается Directx и OpenGL, что лучше?

Директ чуть-чуть лучше по графике. OpenGL - по оптимизации. Опен гл поддерживается далеко не всеми видеокартами (я имею ввиду посление версии). Директ проще изучать, т.к. у него практически на всё есть свои функции. У опен гл - лишь всё базовые. Остально там иллюзия технологий. (как GI и fake GI). Там даже света нет. Но могу заметить что большинство 3д редакторов написаны на опен гл.
Цитата elianyyf ()
Где создается сам мир игры, как и где это все рисуется, что бы заранее знать с чем придется иметь дело?

В отдельных программах (3д макс, например). Все не могу перечислить.
Цитата elianyyf ()
По поводу библиотек, кучу нашел, но не знаю какие толковые, кому не сложно назовите пару нормальных библиотек с норм документацией.

Каких библиотек?
Цитата elianyyf ()
Можно ли на с++ писать не только под виндовс игры? Нашел разные ответы, не понятно кому верить.

Ты можешь писать на любом языке, даже придумать свой. Все готовые программы - это скомпилированные приложения. Т.е. тебе нужен лишь язык и компилятор.
DragYourAssetsДата: Среда, 14 Мая 2014, 18:45 | Сообщение # 15
CHANGIN' ENGINES
Сейчас нет на сайте
Цитата DantorS ()
Директ чуть-чуть лучше по графике. OpenGL - по оптимизации. Опен гл поддерживается далеко не всеми видеокартами (я имею ввиду посление версии). Директ проще изучать, т.к. у него практически на всё есть свои функции. У опен гл - лишь всё базовые. Остально там иллюзия технологий. (как GI и fake GI). Там даже света нет. Но могу заметить что большинство 3д редакторов написаны на опен гл.

Рассмеялся с каждого предложения. Ты хоть раз пробовал использовать OpenGL?
DantorSДата: Среда, 14 Мая 2014, 19:05 | Сообщение # 16
заслуженный участник
Сейчас нет на сайте
Да, и пробывал писать. Как дошло до света - я решил - да ну в жопу, директ проще

Добавлено (14.05.2014, 18:57)
---------------------------------------------
Про оптимизацию почитал в интернете.
А по поводу:

Цитата DantorS ()
Опен гл поддерживается далеко не всеми видеокартами

На моём компьютере поддерживается только 2 вестия опен гл

Добавлено (14.05.2014, 19:05)
---------------------------------------------
А сейяас уже 4

DragYourAssetsДата: Среда, 14 Мая 2014, 19:13 | Сообщение # 17
CHANGIN' ENGINES
Сейчас нет на сайте
Цитата DantorS ()
Как дошло до света - я решил - да ну в жопу, директ проще

Что там, что там освещение делается похожим образом - через шейдеры. А фиксированные графические конвейеры давно в прошлом.
Цитата DantorS ()
На моём компьютере поддерживается только 2 вестия опен гл

Современные версии OpenGL (начиная с 3) поддерживаются, начиная с GeForce 8. Что же у тебя за мастодонт такой заместо пеки?
Цитата DantorS ()
Про оптимизацию почитал в интернете.

И где же ты, интересно, это прочитал?
DantorSДата: Среда, 14 Мая 2014, 19:27 | Сообщение # 18
заслуженный участник
Сейчас нет на сайте
Ладно, был неправ.
Цитата DragYourAssets ()
Что там, что там освещение делается похожим образом - через шейдеры. А фиксированные графические конвейеры давно в прошлом.

Я первый раз об этом слышу, можно подробнее?
DragYourAssetsДата: Среда, 14 Мая 2014, 19:36 | Сообщение # 19
CHANGIN' ENGINES
Сейчас нет на сайте
Цитата DantorS ()
Я первый раз об этом слышу, можно подробнее?

Суть в том, что в старых фиксированных графических конвейерах все алгоритмы трансформации, освещения, текстурирования были "зашиты" в библиотеку, и программист не мог менять их и довольствовался тем, что есть. Программируемый же графический конвейер при помощи шейдеров заставляет самому контролировать все эти процессы, что позволяет получать нужную тебе картинку.
DantorSДата: Среда, 14 Мая 2014, 19:46 | Сообщение # 20
заслуженный участник
Сейчас нет на сайте
А можно ссылочку? Где сожно об этом почитать. Как это делается, примеры. По документации долго искать.
Форум игроделов » Программирование » Общие обсуждения программистов » Структура создания игр, с++/Directx OpenGL, #новичкам (Структура создания игр)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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