Я спрашивал об этом ранее в этой теме на stackoverflow.com. Один из ранних комментариев перенаправил меня сюда на gamedev.stackexchange.com, так что я делаю репост здесь.
В поисках связанных вопросов я нашел несколько очень специфических вопросов, но боюсь, что эти детали оказались для меня бесплодными, и после 4 часов работы в Google я не ближе, чем начал, поэтому я чувствовал, что обращение к сообществу может быть Для того, чтобы.
Во-первых, моя цель: я никогда не делал игры раньше, хотя я несколько раз путался в этой возможности. Я решил, наконец, сесть и начать учиться кодировать игры, использовать игровые движки и т. Д., Чтобы в один прекрасный день (надеюсь, скоро) я смог бы создавать функциональные (хотя и простые) игры. Я могу начать добавлять сложность позже, а сейчас я был бы рад, если бы камера с управлением от клавиатуры двигалась в трехмерном мире без какого-либо взаимодействия.
Мой опыт работы: я работал на НЕСКОЛЬКИХ языках программирования - от PHP до C ++, от Java до ASM. Я не боюсь каких-либо проблем, связанных с изучением нового синтаксиса или ограничений, присущих новому языку. Однако весь мой прошлый опыт программирования был строго неграфическим и обычно с небольшим или очень простым взаимодействием во время выполнения. Я создал обширные и блестящие алгоритмы для решения логических и математических задач, а также графических задач. Однако в каждом случае входные данные либо определялись в файле, передавались из формы HTML, либо вводились в консоль. Взаимодействие с пользователем в реальном времени - это то, с чем у меня нет опыта.
Мой вопрос: с чего мне начать пытаться делать игры? Еще лучше - с чего мне начать, пытаясь создать 3D-среду с клавиатурной навигацией? В поиске в Интернете я нашел несколько ресурсов, связанных с игровыми движками, графическими движками и физическими движками. Вот краткое изложение моего опыта с несколькими двигателями, которые я пробовал:
Unreal SDK. В обучающих видеороликах предполагается, что вы уже обладаете глубокими знаниями в области 3D-моделирования, графических движков, анимации и т. Д. На странице «Приступая к работе» не дается формальное объяснение разработки игр, но рассказывается о том, как Unreal может упростить процессы, которые, как вы предполагаете, вам нужны. уже знакомы с. После загрузки SDK и его запуска, чтобы увидеть, насколько инструменты были настолько интуитивно понятны, как они утверждали, меня встретили около 60 кнопок и пустое пространство для моего 3D-моделирования. Нажав на «Добавить объем» (чтобы попытаться добавить базовый куб), я встретил меню из 30 вариантов. В панике я закрыл редактор.
Crystal Space: веб-сайт казался довольно информативным, объясняя, что Crystal Space предназначен только для графики, а сопутствующее программное обеспечение, CEL, предоставляло логическую сущность для создания игр. Была предоставлена демонстрационная игра, которая была построена с использованием CELStart, их простого инструмента для людей, не знающих игрового программирования. Я запустил игру, чтобы посмотреть, что я могу с нетерпением ждать создания. Он несколько раз зависал, меню глючило, были тысячи графических глюков, враги не реагировали на повреждения, и когда я закрывал игру, она зависала. Отказался от этого двигателя.
IrrLicht: в этом руководстве предполагается, что у меня Visual Studio 6.0 (у меня Visual Studio 2010). Следуя их инструкциям, я не смог правильно импортировать библиотеку в Visual Studio и не смог вызвать ни одну из функций, которые они продолжали использовать. Копирование файлов заголовков, файлов классов и DLL вручную в папку моего проекта - проект не удалось правильно скомпилировать.
Понятно, что у меня не очень хорошее начало, и я иду кругами. Может ли кто-нибудь указать мне правильное направление? Должен ли я начать с загрузки программы, такой как Blender, и изучить 3D-моделирование, или я должен научиться использовать графический движок? Стоит ли искать всеобъемлющий игровой движок или лучше попробовать написать собственную игровую логику? Если кто-то на самом деле создал свои собственные игры, я бы предпочел услышать, как они начали.
Кроме того, посещать занятия в моей школе нельзя. Ничего не предлагается
Ответы:
Я задал такой вопрос, когда присоединился к GD. Вот несколько ссылок, которые могут вас заинтересовать, и я надеюсь, что они помогут вам достичь вашей цели.
Короче говоря, я бы пошел,
XNA Game Studio
чтобы получить контроль над разработкой игр. Затем двигайтесь вперед к тому, чего вы хотите достичь как знания / технологии.XNA
научил меня работать со спрайтами и позволил мне применить некоторые из моих знаний с самого начала моей кривой обучения, чтобы я мог достаточно быстро понять, как я должен разработать свою игру, чтобы использовать классы при работе с внедрение зависимости и пр. Итак, я заставляю тебя больше не ждать.Почему XNA спросите вы? Просто из-за вашего фона Java. XNA использует C #, который во многих отношениях похож на Java, а также представляет собой простую инфраструктуру, которая абстрагирует игровой цикл и все такое, что позволяет вам сосредоточиться на том, что важно.
Я действительно надеюсь, что это поможет вам начать. знак равно
источник
Game1
класс используется в качестве игрового контроллера, который, по моему мнению, является классом, который должен контролировать и сообщать другим классам, что делать, и т. Д. Я немного объясняю этот аспект по ссылке № 4 и № 5.Вы можете попробовать Unity 3D , потому что
(Отказ от ответственности: я никоим образом не связан с создателями Unity, я просто использовал его сам и нашел его отличным инструментом для изучения основ).
Но да - вы поставили перед собой какую-то задачу. Я сейчас в 6-м семестре изучаю игровой дизайн и до сих пор не чувствую, что поцарапал больше, чем поверхность. Неудивительно, что в отрасли есть специалисты для практически каждого аспекта процесса создания игры.
Редактировать: Там был комментарий о том, что Unity рассматривается как не «правильный» игровой движок, что может быть неправильно понято, поскольку я сказал это - поэтому порождал комментарии ниже. У меня не было намерения предполагать, что Unity нельзя использовать для создания правильного игрового дизайна, наоборот. Я использую это сам, и мне это нравится. ;)
источник
Хорошо, если у вас были проблемы с irrlicht, вам также следует попробовать Ogre3D; это не легче, но может работать лучше, если вы уделите этому немного времени. Важная вещь, которую вы должны понять, это то, что представляет собой средство отображения кадров, как получить время с момента отображения последнего кадра, и это почти единственное, что вам нужно понять, если вы хотите создать приложение, о котором вы говорите.
У меня также были некоторые проблемы с irrlicht, учебники не очень актуальны, но вы должны были попробовать примеры!
Я также много бегал кругами с самого начала, играя с panda3d и другими вещами, такими как pygame и т. Д. Постарайтесь сосредоточиться на какой-то игровой идее и реализовывать одну вещь за раз.
И постарайтесь вспомнить математическую математику, она будет полезна в 3D!
источник
Я недавно начал то же самое занятие, что и ты. Я столкнулся с чистым Java-движком под названием jMonkeyEngine который провел меня через фантастический набор учебников. Я не знаю, объясняет ли это действительно игровой дизайн в огромной степени, но он действительно помогает вам начать работу с графикой.
Он предлагает / ссылки на инструменты, которые вы могли бы использовать для моделирования, и содержит хорошо описанные примеры с возможностью копирования и вставки, которые помогут вам установить на экране поле для настройки физического движка.
Определенно стоит почитать - у меня было хорошее представление о том, чем я занимаюсь, всего через несколько часов.
источник
Вы действительно должны попробовать Flixel http://flixel.org/ Я сделал свою первую "демо" игру с использованием flixel. Хорошее сообщество, хорошие учебники.
Это не 3D, но у него есть много приятных функций, которые сделают ваши первые шаги в среде программирования игры легкими.
Такие, что: отображать тысячи движущихся объектов.
Основные столкновения между
объектами. Для простоты
группируйте объекты вместе. Легко генерируйте и излучайте частицы.
Создание уровней игры , используя tilemaps
дисплей текста, сохранения игры, прокрутка
мыши и клавиатуры ввода
Math & цвет утилиты
И это бесплатно для коммерческого использования, что потрясающе.
источник
Если вы вообще не работали с графикой. Прежде всего просто изучите open gl или direct x. Так я запрограммировал свою первую игру. Двигатели нашей компании находятся в доме, и большинство систем поддерживают Open GL в той или иной форме. Я научился на работе просматривать код, написанный до того, как начал работать. Возможно, вы захотите взглянуть на некоторые проекты с открытым исходным кодом, чтобы увидеть, как настроена игровая структура, и начать изменять их, пока не почувствуете себя комфортно, начав свое дело. Я также предлагаю «Кодирование игры завершено» как отличную ссылку на все мелочи программирования игры, о которых вы даже не подозреваете, например, правильную структуру файлов и управление ресурсами.
источник
Попробуйте Source Engine . На ней легко разрабатывать игры, и вы можете получить дистрибутивную платформу (Steam) и бесплатно продать свою игру, если подпишете соглашение с Valve Corportaion.
источник
Я бы порекомендовал начать с флеш-игр, так как у вас действительно есть все необходимое в одном пакете для создания простых игр. Есть множество блогов с прохождениями, Emanuele Feronato's например . У него даже есть книга с 10 полными играми или около того.
Я использую FlashDevelop, которого достаточно для разработки.
Крис Мёллер "Создание астероидов Flash Game" - отличный тому пример, с полным пошаговым подходом с использованием flash-разработки.
Для игр на основе Tile есть отличное руководство по Ironcoding .
Вооружившись всем этим, я рекомендую найти место, где есть проблемы с видеоиграми, с сообществом людей, создающих игры. Создайте одну видеоигру в месяц, сосредоточившись на чем-то маленьком, что вы можете закончить, отполировать и представить, прежде чем переходить к следующему проекту. Я участвую в ежемесячном конкурсе видеоигр здесь .
Держите это маленьким, чтобы вы могли закончить это и выпустить это.
источник