Как программировать игры?

Я с детства хочу делать игры, но моя проблема в том, что я не понимаю как именно их делать. Имею опыт в программировании, хорошо знаю основы C++, немного Python, чуть-чуть C#, но я даже понятия не имею, как программировать игры.

Недавно я посмотрел фильм Indie game: The movie и захотел сделать 2D игру. Я побродил по просторам интернета, но так ничего и не нашел (хороших уроков или объяснений). Самое лучшее, что я нашел - это просто куски из кода, с объяснениями типа: "А вот здесь осуществляется физика". Когда я находил исходники разных игр, то я просто не мог понять: почему так?

Думал и над тем, чтобы работать на каком - нибудь движке(например Unity или Unreal Engine 4). Но посмотрев на крутых Indie разработчиков из фильма, которые сделали все сами, мне кажется, что я испытаю большее удовольствие, сделав все сам. Когда делаешь игру на "готовеньком", кажется, будто доделываешь то, что уже почти сделано. Было бы здорово: сделать игру самостоятельно, например, как Below, Limbo, Spelunky (новая версия) или те же игры из фильма.

Прошу, посоветуйте что-нибудь. Как быть? Может, я в чем-то ошибаюсь?
  • Вопрос задан
  • 19071 просмотр
Решения вопроса 2
@lookid
Стоп-стоп-стоп! Давайте попорядку. А то сейчас начнется.
Ваш вопрос не корректный. Вы задаете его так, как будто наигрались в Батлфилд 3 и хотите сделать такую же игру.
1) Идете сюда en.wikipedia.org/wiki/Game_programmer Видите, что разных направлений разработки довольно много.
2) Берете Mathematics for 3D Game Programming and Computer Graphics, Third Edition и 3D Math Primer for Graphics and Game Development, 2nd Edition. Если вам что-то не понятно, то ищите другеи способы вспоминания 1-2 курса универа: линейную алгебру, основы матана и прочие матрицы.
3) Все игры уже лет 10 строятся на том, что основной единицей геимплея является RigidBody (абсолютное твердое тело). Идете сюда www.cs.cmu.edu/~baraff/pbm/pbm.html Качаете, читаете. Дальше качаете исходники какого-нибудь Box2D. https://code.google.com/p/box2d/downloads/list и www.bulletphysics.com/ftp/pub/test/physics/papers/...
4) Ну и нетленка blog.gamedeff.com/?p=64
Ответ написан
Да ладно, такое ощущение, что тролли не только задают, но и отвечают. Как так: вы знаете С++, но не знаете как делать игры? Как загружать изображения в память знаете? Как писать классы и создавать объекты знаете? Как наладить взаимодействие объектов тоже знаете? Тогда в чём вопрос вообще?
Если вы не понимаете как именно работать с графикой, то подсказываю: никто не гонит использовать нативный Direct3D. Берите любой подходящий фреймворк и в путь. Для C++ могу посоветовать, Например, HGE. Я сам с него начинал. Он уже не поддерживается, насколько я знаю, но форум жив, а энтузиасты потихоньку его допиливают. Примеры есть, да и сам по себе он достаточно простой. С его помощью вы сможете загружать изображения (в том числе анимированные), а так же манипулировать ими. Для создания 2Д игры самое то. В общем посмотрите примеры и сами попробуйте.
Также, смотрю, проскакивают ответы насчёт того, чтобы делать сразу трёхмерную игру, да ещё и с физикой. Да блин, начните с простого. Сделайте. как тут уже писали, кнопку с поведением, или ещё лучше, напишите тетрис или смейку. Потом уже разберётесь как что работает. Без знания основ вообще не вижу смысла хвататься сразу за 3д.
И игра - это не обязательно физика. Не надо сразу ломиться читать алгебру и начинать писать свой физический движок. Изучайте всё по мере надобности.
Ответ написан
Пригласить эксперта
Ответы на вопрос 12
@Fil
Для начала, на любом языке, сделайте что-нибудь простое, например тетрис, пятнашки, змейку, арканоид, 2048 или любую другую знакомую игру от начала до конца. Можете внести изменения, добавить уровни и т. д, но чтобы получился готовый продукт. На этом этапе многие отваливаются, так как реальность оказывается сложнее и скучнее. А без этого, никак, так как это даст базовые принципы создания игр.
Ответ написан
Если нужно сильно оттянутся - ставь древний виндовс, и пиши напрямую в видеопамять, режимы EGA, VGA, SVGA, там познакомишся напрямую с VSYNC, графическими бэк-буфферами, напишешь свой метод putPixel(x,y,color), затем найдёшь где-то реализацию drawLine, которая будет использовать putPixel, потом другие методы и графические эффекты (вывод графиков придуманных функций), потом распарсишь и выведешь bmp, создашь библиотеку спрайтов, 33-м прерыванием создашь курсор мыши, навесишь спрайт, который может бытоь анимированным, будешь двигать его мышкой, потом найдёшь статью про изометрию, и создашь карту уровня, и промучаешся над тем чтобы плавно скроллить, и только потом у тебя появится Свой класс Enemy, у которого будет life=100;weapon=randomLowWeapon();.. путь джедайского маст-дая. так как ты и хотел, с нуля.
Ответ написан
Движок Unity3D. Для начинающего самое оно (впрочем как и для профессионала). Информации в интернете очень много, как на русском, так и на английском языках. Ищите лучше.

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

Хотите делать игры учитесь программировать и ищите работу в данной области. Набирайтесь опыта и лет через несколько пробуйте сами. А инди геймдев не так прост как вам кажется. Золотых гор там нет.
Ответ написан
@BIanF
А что именно вы не знаете, если знаете С++?
С чего начать?
Начните с простого: кнопки старт, по нажатию на которую появляется квадратик, которым вы можете управлять нажатиями стрелок
Ответ написан
cha-cha
@cha-cha
Вы сначала попробуйте состряпать что-нибудь дельное на том же Unity или Unreal, чего не постыдились бы выпустить на публику. После сего действия думаю поймете что писать все самостоятельно не лучшая затея.
Ответ написан
@WhoMe
Еще книженция. Сам не читал, но выглядит интересно, вроде по делу все
gameprogrammingpatterns.com
Ответ написан
Sam_Sky
@Sam_Sky
Designer
Поберегите свое время и силы. Используйте движки а-ля Unity.
Ответ написан
Даже я со своим небольшим опытом с могу сделать простую игру типа "Морского боя".
Единственный ответ думайте, а решение найдётся.
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
почему мне кажется что тут сплошные тролли задают вопросы?
Ответ написан
@sav_mon
Для начинающих программистов рекомендую бесплатный курс "Программировать может каждый" pmok.ru
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы