Программирование игр и приложений / ОС

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

7 ответов

Решение

Проработав в отрасли несколько лет, это лучшее резюме, которое я могу найти:

http://gamesfromwithin.com/so-you-want-to-be-a-game-programmer

Мой совет:

Изучите C++ внутри и снаружи. Программа в нем каждый день. Если вы уже настроены на разработку для iPhone, изучите OpenGL. Также не помешало бы изучить Direct3D, если у вас есть доступ к ПК (также взгляните на XNA). Если графика не ваша вещь, убедитесь, что вы знаете, как работает поиск пути (алгоритм A*) или обнаружение столкновений.

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

Вы можете скачать бесплатные инструменты разработки для Windows здесь: http://www.microsoft.com/express/download/

Тот, который вы хотите, это Visual C++ 2008 Express Edition.

Первой игрой, которую я когда-либо написал, была игра со змеями, написанная на Turbo Pascal. Я возился, и мне удалось (используя серию точек) провести линию по экрану. Сделав это, я изменил направление линии. Я подключил это к клавишам со стрелками и был взволнован. Два часа спустя на экране появилась точка разного цвета в виде "еды", и это была игра змеи. Каждая игра, которую я написал, подталкивала меня к дальнейшему изучению (идеи, как правило, вытекают из друг друга).

  • Попробуйте придерживаться аркадных игр. Breakout, Pong, Snake и т. Д. Количество времени, которое понадобится вам, чтобы построить Halo, не рассчитывает!
  • Не беспокойтесь о том, какой язык вы изучаете. Вы узнаете много за эти годы. Сейчас самое время спросить, с чего легче всего начинать писать игры. Если у вас уже есть основы C, то это ваш ответ прямо сейчас.
  • Если вы не знаете, с чего начать, начните создавать анимацию вместо игр. Идеи придут, как только вы привыкнете к своим инструментам.

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

Вопрос, который нужно задать, заключается в том, как написать смайлик в центре экрана, а не просто в следующей строке консоли. В моей первой игре "Змея" ответом было написать множество космических символов, пока я не доберусь до нужного места. Лучший ответ, по-видимому, ncurses. Если вы работаете в Windows XP, то компилятор MingGW бесплатен, вы можете получить (нестандартную) библиотеку conio.h. Это то, что я использовал во второй игре со змеями, и она поможет вам начать очень быстро.

Хорошее путешествие!

Посмотри в моддинг.

Я обнаружил, что QuakeC (как создавались моды для Quake1) очень легко подобрать, и у вас уже есть очень богатая база игрового контента, чтобы вы могли сосредоточиться на игровом процессе и тому подобном. Мне было гораздо проще оставаться заинтересованным, когда вы начинаете с забавной игры и добавляете в нее свой собственный поворот, а не начинаете делать демонстрации в виде 3D-блоков или других слишком простых, но необходимых низкоуровневых шагов программирования.

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

Многие современные игровые магазины начали создавать моды для Quake или Halflife.

Возможно, посмотрите некоторые ссылки по программированию игр здесь: http://lazyfoo.net/SDL_tutorials/index.php

В этих руководствах предполагается, что C++ часто используется в программировании игр, поэтому его стоит изучить.

Или вы можете проверить этот учебник, если вы заинтересованы в Java http://www.cokeandcode.com/node/6

Адам

Вы должны проверить сайт Unity3D. Теперь у них есть бесплатная версия (названная Unity) для личного и коммерческого использования. Вы можете использовать сценарии с C# (возможно, любым языком.NET), JavaScript и Boo.

XNA тоже подойдет.

Когда вы только начинаете, C, C# и C++ могут быть немного сложными для начала. Если вы серьезно относитесь к разработке игр, вам, вероятно, придется в конечном итоге изучать C++, но если вы просто хотите быстро выполнить некоторые задачи, вы уже на правильном пути с lua.

Javascript - это другой язык, который во многих отношениях очень похож на lua (и сильно отличается в других). Одним из преимуществ javascript является то, что у всех в мире есть javascript, установленный на их компьютерах. Еще одним преимуществом является то, что это очень легко учиться. Есть и недостатки, но они не так плохи, как думают большинство "серьезных" программистов. Javascript получает незаслуженный плохой рэп.

Вот очень хороший учебник для изучения JavaScript: http://eloquentjavascript.net/

К сожалению, он не охватывает программирование игр, но он охватывает концепции, которые имеют отношение как к программированию игр, так и к разработке приложений.

Вот учебник для javcascript, который охватывает программирование игр:

http://billmill.org/static/canvastutorial/index.html

Вам понадобится веб-браузер, чтобы следовать этому руководству. Это не относится к Internet Explorer, поэтому вы, вероятно, захотите использовать Safari, Firefox или Opera.

Как только вы освоите создание игр на легком языке, таком как javascript или lua, вам будет не так сложно научиться делать игры на таком жестком языке, как C или C++.

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

Приоритетный порядок для игрового программиста.

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

  • Математика
  • Структуры данных
  • Компьютерная графика
  • физика
  • Искусственный интеллект
  • Компьютерные сети
  • Веб-технологии
Другие вопросы по тегам