С чего начать с разработки игр? [закрыто]

65

Я спрашивал об этом ранее в этой теме на 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-моделирование, или я должен научиться использовать графический движок? Стоит ли искать всеобъемлющий игровой движок или лучше попробовать написать собственную игровую логику? Если кто-то на самом деле создал свои собственные игры, я бы предпочел услышать, как они начали.

Кроме того, посещать занятия в моей школе нельзя. Ничего не предлагается

stevendesu
источник
3
+1 Хороший опыт программирования в поисках конкретных потребностей.
Уилл Маркуиллер
6
+1, это хорошо продуманный и проработанный вопрос о том, как начать разработку игры. Кроме того, я чувствую вашу боль относительно Unreal SDK.
Джеймс
Я рекомендую ознакомиться с руководствами Raven67854 для UDK. Они перечислены под видео, людям они нравятся.
Джесси Дорси
Мой совет - просто начать что-то делать. Обычно люди, которые задавали подобные вопросы, хотят проложить свой путь линейно (потому что я однажды задавал такой же вопрос). Однако из моего прошлого опыта кривая обучения разработке игр является нелинейной кривой. Я обычно перехожу от проблемы к проблеме --- если я застрял, то я спрашиваю / ищу ответ. Поэтому просто попробуйте вещи, учитесь методом проб и ошибок. Обычно я начинаю с уроков. Тем не менее, эти учебники никогда не дают достаточно подробностей, поэтому я должен спросить / поиск / эксперимент для ответов.
user1542

Ответы:

38

Я задал такой вопрос, когда присоединился к GD. Вот несколько ссылок, которые могут вас заинтересовать, и я надеюсь, что они помогут вам достичь вашей цели.

Короче говоря, я бы пошел, XNA Game Studioчтобы получить контроль над разработкой игр. Затем двигайтесь вперед к тому, чего вы хотите достичь как знания / технологии. XNAнаучил меня работать со спрайтами и позволил мне применить некоторые из моих знаний с самого начала моей кривой обучения, чтобы я мог достаточно быстро понять, как я должен разработать свою игру, чтобы использовать классы при работе с внедрение зависимости и пр. Итак, я заставляю тебя больше не ждать.

  1. С чего начать писать игры, какие-либо учебные пособия или тому подобное?
  2. Каковы основы разработки игр? (Интересный вопрос, ИМХО)
  3. Отделение физики и игровой логики от кода пользовательского интерфейса
  4. Перемещение моего спрайта в XNA с использованием классов

Почему XNA спросите вы? Просто из-за вашего фона Java. XNA использует C #, который во многих отношениях похож на Java, а также представляет собой простую инфраструктуру, которая абстрагирует игровой цикл и все такое, что позволяет вам сосредоточиться на том, что важно.

Я действительно надеюсь, что это поможет вам начать. знак равно

Will Marcouiller
источник
1
Извините за задержку с ответом =) Я читал каждое из сообщений, на которые вы меня перенаправили (Также, одно из сообщений, связанных со страницей MSDN о создании 3D-игр с XNA, меня заинтересовало, поскольку страница игрового движка XNA изначально выглядела так был строго для 2D игр). Я определенно думаю, что это хорошая отправная точка. Спасибо. Я собираюсь скачать XNA сегодня вечером и лечь спать, а потом, надеюсь, завтра я смогу сделать Понг или что-то в этом роде.
stevendesu
@ Стивен: Нет проблем! Я опубликовал этот ответ, чтобы помочь разработчику-энтузиасту, так же как и я, который попросил совета! Я очень надеюсь, что вам понравится это делать! Моя первая и все еще непростая задача - разработать простую арканоидную игру, в которой я должен найти способ обнаружения столкновений, написав свои классы по одному для каждого космического корабля, энергетического шара и кирпича. Затем мой Game1класс используется в качестве игрового контроллера, который, по моему мнению, является классом, который должен контролировать и сообщать другим классам, что делать, и т. Д. Я немного объясняю этот аспект по ссылке № 4 и № 5.
Уилл Маркуиллер
Возможно, очень скоро (завтра) я задам другой вопрос. Xx Скачал XNA Game Studio 4.0, установил его ... И не было никаких очевидных инструкций о том, что делать дальше. На всем официальном сайте XNA просто написано «делайте игры для Windows Phone 7» - ничего о создании игр для Windows. Я выясню это утром или спрошу здесь, если я не могу. Время
ложиться
1
Создайте новый проект с помощью Visual Studio, затем выберите XNA, где вы можете выбрать тип проекта. Затем начните делать игры для Windows! Ваш шаблон игрового проекта XNA (новый проект) будет скомпилирован и запущен в Windows. XNA - это библиотека Microsoft для разработки игр, поэтому вы можете разрабатывать игры для Windows и XBox.
Уилл Маркуиллер
1
Ради будущего стоит отметить, что XNA по сути устарела, но Monogame продолжает жить. По большей части, тот же код будет работать.
Маг
8

Вы можете попробовать Unity 3D , потому что

  • это может быть запрограммировано в JavaScript, C # или Boo
  • он имеет хороший учебник по здесь
  • его кривая обучения не так крута
  • есть ответы Unity , где вы найдете еще больше ресурсов.

(Отказ от ответственности: я никоим образом не связан с создателями Unity, я просто использовал его сам и нашел его отличным инструментом для изучения основ).

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

Редактировать: Там был комментарий о том, что Unity рассматривается как не «правильный» игровой движок, что может быть неправильно понято, поскольку я сказал это - поэтому порождал комментарии ниже. У меня не было намерения предполагать, что Unity нельзя использовать для создания правильного игрового дизайна, наоборот. Я использую это сам, и мне это нравится. ;)

xeophin
источник
3
Что в этом плохого?
lathomas64
Мне тоже любопытно.
Джесси Дорси
Может быть, тот факт, что (подобно Flash или Java) для запуска требуется программа-контейнер, поэтому он считает ее «неправильной» в том смысле, что ее нельзя просто скомпилировать и распространить среди широкой аудитории без хлопот? В любом случае, я смотрю в XNA прямо сейчас. Я могу проверить Unity3D, если XNA окажется слишком сложным.
stevendesu
Ну, я слышал, как люди говорили, что для «правильного» игрового дизайна Unity не стоит воспринимать всерьез. Как было сказано ранее - я сам пользуюсь им, и я очень доволен этим. В некоторых случаях Unity просто делает вещи подозрительно легкими, я думаю ...;) Я просто хеджировал, потому что я не знал, как люди отреагируют здесь на упоминание Unity. Может быть, это вызвало снижение?
xeophin
@steven_desu: На самом деле, вам нужна только контейнерная программа для веб-плеера. Игры, скомпилированные для запуска на Windows или Mac, полностью автономны.
xeophin
2

Хорошо, если у вас были проблемы с irrlicht, вам также следует попробовать Ogre3D; это не легче, но может работать лучше, если вы уделите этому немного времени. Важная вещь, которую вы должны понять, это то, что представляет собой средство отображения кадров, как получить время с момента отображения последнего кадра, и это почти единственное, что вам нужно понять, если вы хотите создать приложение, о котором вы говорите.

У меня также были некоторые проблемы с irrlicht, учебники не очень актуальны, но вы должны были попробовать примеры!

Я также много бегал кругами с самого начала, играя с panda3d и другими вещами, такими как pygame и т. Д. Постарайтесь сосредоточиться на какой-то игровой идее и реализовывать одну вещь за раз.

И постарайтесь вспомнить математическую математику, она будет полезна в 3D!

jokoon
источник
2

Я недавно начал то же самое занятие, что и ты. Я столкнулся с чистым Java-движком под названием jMonkeyEngine который провел меня через фантастический набор учебников. Я не знаю, объясняет ли это действительно игровой дизайн в огромной степени, но он действительно помогает вам начать работу с графикой.

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

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

Брайан
источник
Учебники стоит прочитать, даже если вы не используете движок. Есть также хорошие учебники по некоторым 3D математике.
DMan
2

Вы действительно должны попробовать Flixel http://flixel.org/ Я сделал свою первую "демо" игру с использованием flixel. Хорошее сообщество, хорошие учебники.

Это не 3D, но у него есть много приятных функций, которые сделают ваши первые шаги в среде программирования игры легкими.

Такие, что: отображать тысячи движущихся объектов.
Основные столкновения между
объектами. Для простоты
группируйте объекты вместе. Легко генерируйте и излучайте частицы.
Создание уровней игры , используя tilemaps
дисплей текста, сохранения игры, прокрутка
мыши и клавиатуры ввода
Math & цвет утилиты

И это бесплатно для коммерческого использования, что потрясающе.

user9471
источник
1

Если вы вообще не работали с графикой. Прежде всего просто изучите open gl или direct x. Так я запрограммировал свою первую игру. Двигатели нашей компании находятся в доме, и большинство систем поддерживают Open GL в той или иной форме. Я научился на работе просматривать код, написанный до того, как начал работать. Возможно, вы захотите взглянуть на некоторые проекты с открытым исходным кодом, чтобы увидеть, как настроена игровая структура, и начать изменять их, пока не почувствуете себя комфортно, начав свое дело. Я также предлагаю «Кодирование игры завершено» как отличную ссылку на все мелочи программирования игры, о которых вы даже не подозреваете, например, правильную структуру файлов и управление ресурсами.

user5877
источник
1

Попробуйте Source Engine . На ней легко разрабатывать игры, и вы можете получить дистрибутивную платформу (Steam) и бесплатно продать свою игру, если подпишете соглашение с Valve Corportaion.

Triang3l
источник
1

Я бы порекомендовал начать с флеш-игр, так как у вас действительно есть все необходимое в одном пакете для создания простых игр. Есть множество блогов с прохождениями, Emanuele Feronato's например . У него даже есть книга с 10 полными играми или около того.

Я использую FlashDevelop, которого достаточно для разработки.

Крис Мёллер "Создание астероидов Flash Game" - отличный тому пример, с полным пошаговым подходом с использованием flash-разработки.

Для игр на основе Tile есть отличное руководство по Ironcoding .

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

Держите это маленьким, чтобы вы могли закончить это и выпустить это.

NetSquirrel
источник