Должен ли я использовать какой-то двигатель или начать с нуля? - PullRequest
2 голосов
/ 20 января 2011

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

В любом случае, каков наилучший способ сделать это? Я хочу использовать OpenGL 3.0+, потому что мне не нравится использовать устаревшие вещи, и я ДОЛЖЕН иметь возможность передавать один и тот же код между Linux и Windows 7 и запускать его без каких-либо изменений.

До сих пор я пытался начать с нуля, но, похоже, я не могу найти хороший способ создания современного контекста OpenGL 3.0+, который является кроссплатформенным. Я искал повсюду и пробовал что-то вроде SDL, чтобы помочь быть более независимым от платформы, но я обнаружил, что почти все версии в Windows отличаются от Linux, поэтому практически невозможно сделать его кросс-платформенным без значительных изменения кода.

Итак, я начал думать об использовании какого-то двигателя. Я не совсем уверен, что я ищу в движке, но я надеялся, что смогу найти тот, который облегчит кроссплатформенность с одним и тем же кодом. Я думал об использовании OGRE, но похоже, что он заботится обо всех вещах, таких как освещение и тени для вас. Есть ли какой-нибудь другой движок, который позволил бы мне сосредоточиться на создании крутой графики, в то же время будучи независимым от платформы?

У кого-нибудь есть предложения по поводу того, что мне следует делать или использовать?

Ответы [ 2 ]

5 голосов
/ 20 января 2011

За последние несколько лет я взламывал проект с использованием C # и OpenGL.Первоначально я начал с Tao Framework для привязок OpenGL, однако Tao Framework больше не находится в активной разработке и не включает новые привязки OpenGL.

Моя последняя работа заключалась в преобразовании движка в OpenGL.3, поэтому я перешел на OpenTK (http://www.opentk.com/), который имеет все привязки, необходимые для OpenGL 3, а также кроссплатформенный. В настоящее время я занимаюсь разработкой для Linux (MonoDevelop) и Win7 (VS2010), и мой другслучается, что используется Mac OS X. Мы можем без проблем передавать двоичные файлы напрямую друг другу. Поэтому я бы предложил что-то вроде этого, если вам нужен OpenGL 3, кроссплатформенность и вы можете использовать MonoFramework.

Ogre (http://www.ogre3d.org/) можно настроить на использование новых материалов / сценариев / и т. Д., Чтобы вы могли писать собственные теневые шейдеры и т. Д.

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

Удачи!

tl; dr: Проверьте OpenTK для кросс-платформенных моно / .net-привязок для OpenGL 3.также хороший кроссплатформенный движок, и вы всегда можете создавать новые материалы / шейдеры и экспериментировать без написания низкоуровневого кода.

3 голосов
/ 20 января 2011

В зависимости от того, о какой игре вы думаете, вы можете использовать Blender.Я не использовал это, но я подумал об использовании этого однажды.В Blender есть движок для производства игр, например:

http://www.tutorialsforblender3d.com/

http://colinmaxwell.wordpress.com/2010/08/10/3d-games-with-blender/

http://www.techimo.com/articles/index.pl?photo=60

Iнаконец, выберите JMonkey Engine: http://jmonkeyengine.org/.Это игровой движок на Java, и по своей природе он кроссплатформенный.Он имеет очень хорошую скорость рендеринга и очень прост, как в Java:)

А по поводу вашего вопроса, я думаю, это зависит от ваших навыков.Если вы мастер в C / C ++, то вы можете сделать это с нуля.Но зачем изобретать велосипед?Есть довольно хорошие игровые движки (как те, которые я опубликовал).Это может помочь вам начать прямо с дизайна и оставить в стороне множество реализаций.

...