Также хотелось бы узнать какое из направлений требует бо́льших знаний и навыков (это меня ни в коем случае не отталкивает, даже наоборот).
Ну и конкретно по геймдеву. Какое место при создании тех же движков занимает язык Си?
Я имею ввиду не создание игр, а создание конкретно движка.
И с чего вы взяли, что я не понимаю различия требуемых знаний в этих областях?
C# кстати никак не фигурирует при создании движка
оворить, что разработка движка для создания игр и создание игры - это одно и то же, ну просто глупо.
Игры в unity пишут на c#, но сам движок написан на плюсах.
The Unity runtime is written in C/C++. This runtime is used in any build you create using the editor - for webplayers and plugins it is installed separate from your build, whereas it is included in it for stand-alones and other platforms such as iPhone and Wii.
The editor is built on the Unity runtime and additionally includes editor-specific C/C++ binaries.
Wrapped around the Unity core is a layer which allows for .net access to core functionality. This layer is used for user scripting and for most of the editor UI.
я знаю что представленные направления различаются по требуемым знаниям.Но конкретно каким не особо имею представление.
Я имею ввиду не создание игр, а создание конкретно движка.
возможно с точки зрения синтаксиса эти два вида разработки и похожи, вот только уровни абстракции отличаются.А с уровнем абстракции меняются и различные приемы вроде работы с памятью и т.д.
malloc()
в программе, являющейся движком игровым, или kmalloc()
в программном коде драйвера?Движок может быть написан на чем угодно - на том, что лучше для данной конкретной ситуации.
Движок для Андроид целесообразно писать на Kotlin/Java.
Движок для игр в вебе - целесообразно писать на JavaScript (варианты - на TypeScript, на Dart).
"Особая" роль С/С++ связана с тем, что:
1) Движки пилятся очень долго. Основы многих из них заложены и 20 лет назад - например Unreal Engine. Никто не мечтает это всё переписать с нуля. Это банально очень дорого.
2) Адекватных альтернатив у С/С++ лет 20 назад было раз-два и обчелся (например, тогда еще движки на Pascal создавались). Современные движки, что будут написаны с нуля, скорее будут использовать Rust, C#, Kotlin, Go, чем С/С++
3) Ранее не было таких платформ как web и Android, для которых C/C++ применимы с большими ограничениями.
Другое дело, что новые игровые движки создаются отнюдь не на С, а на языках программирования, где вообще нет необходимости в ручном управления памятью.
То-есть ядро не входит в движок?
Наверняка такие есть, вот только популярность и эффективность под большим вопросом.
В любом случае три самых популярных движка а именно Unity, UE и CryEngine написаны на С++.
это связано с их быстротой и гибкостью.
Котлин это высокоуровневый яп и соответственно очень неповоротливый для таких целей.
Вы путаете понятия создания игры и создания движка. Это две совершенно разные вещи.
К части о движке js почитайте данную статейку https://tproger.ru/translations/js-and-c-fps/.
И почему вы постоянно отходите от темы? Я не спрашиваю сколько будет пилиться движок или сколько это будет стоить. Если вы не можете нормально ответить на поставленный вопрос, но вместо этого в другие дебри уходите, то лучше вообще не отвечайте.
Вы далеко уходите от темы и навязываете мне то, что я вообще не хотел видеть в ответах на мой вопрос
Вы как-то слишком серьезно подходите к языку программирования.
Это нормально на начальном этапе, я сам был таким.
Вам кажется - что выучите не тот и "пиши-пропало"?
Это не так.
Трудно выучить не язык программирования, а парадигмы, паттерны, шаблоны, концепции.
А они инварианты - из языка в язык повторяются.
Когда выучите парадигмы, паттерны, шаблоны, концепции для одного языка программирования, потом другой язык программирования освоите с полпинка.
Очень трудно выучить только первый язык программирования.
А скажем третий - вы выучите всего-то за неделю, если с предыдущими 2-мя действительно уже хорошо освоились.
Программисту вполне естественно уметь работать с 2-3 языками одновременно.
Ну а за всю профессиональную жизнь - вообще речь может идти о десятках языков.
В любом случае три самых популярных движка а именно Unity, UE и CryEngine написаны на С++.
Скажем, в случае с web или Android - места С/С++ там практически нет.
В случае web - нет вообще.
Да как же вы не поймете...
Мне не интересна тема разработки игры, мне интересна разработка движка, а изложенное вами - очевидно.
да мне плевать на язык.
Rust существует с 2006 года и я пока что не видел ни одного движка
я пока что не видел ни одного движка, для создания чего-то большего чем текстовые или аркадные игры.
Какое место при создании тех же движков занимает язык Си?
да мне плевать на язык. Я выбрал С/С++ по определенным параметрам, но я не говорю о том, что они лучшие.
Пожалуйста, объясните каким именно техническим образом вы собираетесь разрабатывать движок под игру браузерную, используя C/C++ ?
Я вам про то толкую, что для ряда платформ применение С/С++ невозможно технически.
От слова "никак".
На сегодня никак невозможно разработать движок под браузерную игру на С/С++
Мне интересна разработка движков для разработки ААА игр.
я не сказал ААА движки, я сказал ААА игры.
Я привел в пример именно ААА, так как именно такие проекты наиболее требовательны к движкам(если они разрабатываются на них). Серия игр Battlefield - ААА игры, написаны на движке frostbyte, который в свою очередь написан на плюсах и в небольшой степени на шарпе.
я не сказал ААА движки, я сказал ААА игры
Доброго времени суток!
Вопрос довольно необычный и может показаться вам странным(да что уж там, он мне кажется странным), но я все же попробую.
Хотелось бы подробнее узнать о различиях во взаимодействии с железом при создании движка и при системном программировании.
Интересны обе области.
Также хотелось бы узнать какое из направлений требует бо́льших знаний и навыков (это меня ни в коем случае не отталкивает, даже наоборот).
Ну и конкретно по геймдеву. Какое место при создании тех же движков занимает язык Си?
Вопрос конечно тот ещё, но буду рад если кто-то примет его и ответит;)
Заранее благодарю!
Игры уровня качества ААА могут быть как 3D-шутеры, так и стратегии и пр. и пр.
И это все основано на принципиально разных движках.
В предложении где я упомянул UE и Unity можно было догадаться примерно чего я хочу
в данной беседе мы выяснили лишь то под какую платформу я хочу писать.ВСЕ.Это же можно было узнать с помощью одного вопроса
Разве эта информация нужна мне, а не вам?
Если вы хотите получать исчерпывающие ответы на свои вопросы - учитесь форумлировать вопросы исчерпывающе.
Какая информация? Чем вы мне помогли?
Это очень разные знания.
Ваш вопрос звучит примерно так: что требует больших знаний - вождение автомобиля или стрельба из снайперской винтовки?
Несравнимо.
Ну и конкретно по геймдеву. Какое место при создании тех же движков занимает язык Си?
Да такое же как и C# или JS или Kotlin, к примеру.