LINUX.ORG.RU

Хочу перейти в направление game development

 , , ,


1

3

День добрый. Начну с краткой исторической справки, вот уже лет 7 занимаюсь программированием для веб, это был и чистый backend и full stack, последние годы чисто frontend. Но как-то периодически засматривался в сторону игровой индустрии - сам являюсь поклонником игр разного жанра ну и играю в свободное время. Последнее время смотрю разные материалы, дабы очертить для себя потенциальный спектр для изучения, но есть пара вопросов. Скажу сразу, в индустрии смотрю в сторону инженерных специальностей, то есть не звукорежисура для игр или 3D хужожник, и заметил что очень много акцента делается на C++, ну и разве что Unity на C#. Вот первый вопрос - имею крайне базовые знания по C, и что подскажут люди с форума, может даже кто работает в этой индустрии и может поделиться опытом, начинать с C и дальше на плюсы, или все еще подхватить C# и потом знакомиться с одним из движков дабы понимать основные моменты? И второй, как с работой - я сам из СНГ и у нас, увы, нету тех студий чьи продукты мне интересны как игроку, и я в случае чего готов пробовать свои силы и релоцироваться в страну где есть офисы студии, игры которой к примеру мне интересны. В целом буду рад услышать мнения и опыт людей из индустрии, интересно как все устроено и так далее.


Ответ на: комментарий от RedEyedMan666

от 15 до 20 фпс радуют глаз ) Я так понимаю ты казах, и батя твой казах и дед был казахом, аутентичненькая игра с юртами и симпатичными дамами в пушистых шапочках ) Ну да ты прав в том что проблемы есть везде, не без этого.

anonymous
()
Ответ на: комментарий от anonymous

Ну, вообще эти деревья еще не оптимизированы (по 50к полигонов на дерево), а в логике NPC временный бардак (надо обмозговать, книжек почитать по теме, чтобы это всё мейнтейнить через месяц перерыва). А так-то с моей затычкой (1050 Ti), надеюсь на 30 фпс – это потолок с учетом RenderPipeline, который а) написан на Python и шейдеры на GLSL, б) требует тюнинг шейдеров, выполненных в виде плагинов. В то же время с помощью системы шаблонов «Эффекты» позволяет писать свои шейдеры-хуки к этому стороннему рендеру к панде. К моменту демки (если повезет) поменяю железо или видеокарту.

RedEyedMan666
()
Последнее исправление: RedEyedMan666 (всего исправлений: 1)
Ответ на: комментарий от RedEyedMan666

Используемые мною движок, сторонний рендер и экспортер 3d-моделей из Blender в этот движок врядли пригодны для создания современных коммерческих игр с учетом некоторой заброшенности движка и рендера, но для создания опенсорсных инди-поделок «без обязательств» вполне подходят.

Игровые движки без редактора, нацеленные на кодинг, не приглянутся тем, кто уже осилил UE4/Unity/Godot.

Но мне нравится как работают мои инструменты и относительно простое в использовании API. Примеры устаревшие, но в документации многое объясняется достаточно понятно, хотя я чаще спрашивал у разрабов и заглядывал в исходники.

Мне удалось упростить мой рабочий процесс, без обязательной ручной (пере)настройки материалов 3d-моделей и прочей возни. Заскриптовал, чтобы подхватывалось всё что надо при загрузке моделей, аж самому приятно. В общем, кодо-ориентированные движки имеют свои некоторые приятные преимущества.

RedEyedMan666
()
Последнее исправление: RedEyedMan666 (всего исправлений: 2)
Ответ на: комментарий от RedEyedMan666

Система сборки движка меня тоже радует: без лишних телодвижений питонокод игры собирается в .so/bin под Linux или в .dll/exe под Windows (виндосборки создаю в Linux и проверяю под Wine). В случае с плюсокодом, его можно перенаправлять линкеру и компилятору.

RedEyedMan666
()
Последнее исправление: RedEyedMan666 (всего исправлений: 1)
Ответ на: комментарий от RedEyedMan666

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

anonymous
()
Ответ на: комментарий от RedEyedMan666

Годо кстати на самом деле не так плох, он как раз многое упрощает, позволяет прикрутить к себе почти все что можно через С апи, и имеет довольно приятную архитектуру на графах@узлах. Говнокодить только в путь, при этом и собирается все легко и просто, жаль только что веб ветка в нем пока не сильно развита, уж проще классическим способом вебню писать.

anonymous
()
Ответ на: комментарий от anonymous

жаль только что это путь к страданиям и реализации почти всего самостоятельно.

Классы персонажей, список предметов в игре, которые можно использовать.

Это всё можно реализовать с помощью наследования классов, т.е. например, свойства мужских персонажей наследуются из класса Man. Надо поизучать паттерны и матчасть прежде чем велосипедить что-то свое. В один заход такое не делается.

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

Сейчас занят отладкой поведений NPC. В задумке упростить добавление персонажей с минимальными изменениями в коде. А дальше классы прописать, использование предметов. Текстовые диалоги. А уже в конце подготовить модельки и шейдеры, сложить их в определенном порядке, чтобы игра подхватила и загрузила их.

RedEyedMan666
()
Последнее исправление: RedEyedMan666 (всего исправлений: 1)
Ответ на: комментарий от RedEyedMan666

Что это вообще по итогу будет, ну понятно что это игра в национальном сеттинге, сюжет самостоятельный или по какому-то произведению или на основе него?

anonymous
()
Ответ на: комментарий от anonymous

О квестах говорить пока рано. Для начала бы иметь некий свободный режим игры с ботами (персонажами). В целом, моя задумка сделать такой недосимулятор семьи для главгероини и в тоже время фентези на основе местного фольклора + нечто похожее на Mount & Blade. Но мне не хочется загоняться в какие-то рамки жанров, поэтому добавлю всякого смешного трешака и не очень :D

Естественно, для начала это всё будет упрощено.

RedEyedMan666
()
Ответ на: комментарий от anonymous

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

RedEyedMan666
()
Ответ на: комментарий от RedEyedMan666

Короче понятно, пока это все разработка в стол. Хорошее хобби.

anonymous
()
Ответ на: комментарий от RedEyedMan666

Немного о способе наполнения игры.

В качестве редактора уровней использую Blender. Экспортирую сцену с деревьями и юртой целиком в формат понятный движку, используя вышупомянутый экспортер (плагин к блендеру). Автор оригинального экспортера забил на него и в итоге экспортер поддерживал только Blender версий 2.6/2.7. Мне пришлось доработать его для своих нужд (авторство оставил без изменений) для Blender 2.8+ (Cycles/Eevee), чтобы скелетные анимации не ломались, а текстуры выглядели как надо, по координатам и со свойствами материалов. Помогло изучение API Blender по части шейдерных нод (узлов).

Так вот, чтобы добавить точки (старта) появления персонажей и игрока, можно использовать объекты Empty в блендере и импортировать их в движок вместе со сценой и источниками света. А затем уже в коде в пределах графы нодов использовать позиции этих объектов для размещения точек старта и источников статического/динамического света.

Персонажи (динамические объекты) экспортируются по отдельности.

Экспортер тоже дорабатывается по мере необходимости.

RedEyedMan666
()
Последнее исправление: RedEyedMan666 (всего исправлений: 5)

Я начинал с геймдева(2004 год) и работал в подразделении Ubisoft. А также разные движки типа OGRE или UE4. Физика, звук, сеть, графика и т.д.. Сколько я учавствовал в гаражным любительских проектах. Сколько просидел на форумах.

В итоге. Самая херовая отрасль IT это - геймдев. Тотальная рутина и тоска. Времена Кармака прошли давно.

ettaluni говорит со знанием дела.

Вопросы «Хочу в игры, с чего начать» должны следовать ответами посылания куда подальше.

Лучше создать сайт с FAQ по геймдеву, где наивным дурачкам обьяснять в 2020 году(!!!) что создание игр и программирование - это разные вещи.

Вон пацаны взяли Халфу и сделали КС - до сих пор по нему чемпы проводяться. КС 1.6 от Халфы отличался модельками и текстурами, но зато какой ажиотаж!

Люди берут GZDoom переделанный движок от второго дума и делают годный хоррор на 100к просмотров https://www.youtube.com/watch?v=k6nzHjXHC_I&ab_channel=ICARUSLIV3S

лет 7 занимаюсь программированием для веб

И задавать тупой 9000-ый вопрос. За 15 лет в IT ничего не меняется. Одни и теже вопросы в стиле «какой язык учить» - АНГЛИЙСКИЙ ЯЗЫК, блин, надо учить.

У людей сложился стереотип о геймдеве как о «работе мечты» где ходят утонченные люди с шарфом наперевес, все умные и креативные, каждый день цветами радуги. Реальность как обычно менее прозаична - тупо рутина, рутина, рутина.

И да, задумка игры делается не программистами, а менеджерами(или продюсерами). Тебе никто не даст возможность влиять на концепцию игры.

baist ★★
()
Ответ на: комментарий от baist

Тотальная рутина и тоска

А я читал, что в геймдеве самый большой шанс получить нервный срыв работая по 18-20 часов. Да даже CD Project завалив сроки вроде как выжимали работников как могли.

Может это просто у юбиков скучно?

system-root ★★★★★
()
Ответ на: комментарий от XoFfiCEr

это мне напоминает времена всяких флеш игр на дисках «сборник 1000 in 1». Во времена флеша игры как раз были с изюминкой с юморцом, особенно вот это http://lurkmore.to/%D0%9E%D1%85%D0%BE%D1%82%D0%BD%D0%B8%D0%BA_%D0%BD%D0%B0_%D0%BF%D0%B5%D0%B4%D0%B8%D0%BA%D0%BE%D0%B2

baist ★★
()
Ответ на: комментарий от system-root

Может это просто у юбиков скучно?

Нет!

Даже класс AAA - это юнити/уе говно. За особым исключением свой движок с уникальным техническими решениями.

самый большой шанс получить нервный срыв

Не знаю. Но такое может быть из-за наличий строгих дедлайнов.

baist ★★
()
Ответ на: комментарий от OpenMind

Какое…. кряхтение… кому-то может нравится эта «рутина».

Для специально обученного андроида, который называет себя почему-то «человек».

baist ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.