Форум программистов, компьютерный форум, киберфорум
Программирование игр
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/75: Рейтинг темы: голосов - 75, средняя оценка - 4.93
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107

Разработка игр. C++ or C# or Python?

13.08.2016, 11:06. Показов 14323. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех.
Уже около года я выбираю между C++, C# и Python. Читаю, спрашиваю и т.д. Параллельно изучаю все 3 языка.
Помимо изучения, я знал примерную область, где буду работать. Это прикладное программирование под Windows. Программы клиентсерверные приложения и многое другое.
Но недавно я решил окончательно, в какой основной области буду работать и куда двигаться. Это разработка звуковых игр.
Использовать буду возможно такие инструменты, как Bass, DirectSound и т.д.
И вот у меня появился вопрос:
Я знаю, что C++ быстр, позволяет работать на прямую с памятью. В играх, как и где отражается его мощность? Только на графике?
Например, я хочу сделать игру с открытым миром. Большая карта, примерно клон GTA. Естественно не с полного нуля. Высокоуровневые инструменты по обработке звука буду точно использовать.
Так вот, будет ли разница в производительности игры, если я буду писать на C++, на C# или на Python?
Библиотеки есть под все эти языки. Мне главное понять про производительность. Например в C++, где будет мощность языка проявляться.
Я задумался о этом, потому что:
Давайте представим примерно, структуру игры.
Есть главная программа-движок. В движке прописано передвижение, стрельба и т.д.
Скрипты - дополнения к движку, где прописаны миссии, сцены и т.д.
Так сделано большинство игр. Во всяком случаи, GTA и Mafia 2 точно. Есть движок и файлы, где прописаны миссии, возможности.
Вот и мне интересно, если разница писать движок на c++, C#, Python есть, то будет ли она, если исключить графику, а остальное оставить?
Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2016, 11:06
Ответы с готовыми решениями:

Что перспективнее - разработка игр под мобильные платформы или разработка embedded-систем
Доброго времени суток. Скажите пожалуйста, как вы думаете, что перспективней в будущем - разработка игр под мобильные платформы (Android,...

Разработка игр или разработка софта
Всем привет! Я хочу начать активное обучение программирования на С++.Но не совсем решился, какую конкретно область IT выбрать: разработку...

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

40
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
13.08.2016, 12:02
Цитата Сообщение от jonikster Посмотреть сообщение
Уже около года я выбираю между C++, C# и Python.
Думаю в этом основная проблема Можно хоть всю жизнь выбирать и так и остаться на стадии выбора

По теме - Havok написан на C++, Source написан на C++. Даже RAGE Engine (на котором GTA) на C++. Я вообще плохо себе представляю игровой движок на Python.

Добавлено через 5 минут
Сейчас стало интересно, решил посмотреть список игровых движков. Там куда не ткни - везде C++
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 12:20  [ТС]
Ну это игровые движки с графикой. А если я буду без графики, может лучше брать шарп или Python? Или всё же и тут Плюсы лучше?
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.08.2016, 12:28
Цитата Сообщение от pav1uxa Посмотреть сообщение
Я вообще плохо себе представляю игровой движок на Python.
EVE online создана на игровом движке Carbon Engine.

Цитата Сообщение от jonikster Посмотреть сообщение
Это прикладное программирование под Windows. Программы клиентсерверные приложения и многое другое.
по хорошему вам понадобятся все 3 языка.
сюда ещё и вэб можно добавить.

Цитата Сообщение от jonikster Посмотреть сообщение
В играх, как и где отражается его мощность? Только на графике?
любые вычислительные мощности.

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

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

Добавлено через 6 минут
Цитата Сообщение от jonikster Посмотреть сообщение
А если я буду без графики
понимаете... что такое "игра" с технической точки зрения?

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

и кучка высокоуровневых игровых скриптов и контента,
которые собственно и делают игру игрой.

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

если же вы хотите делать именно игру, а не инфраструктуру,
тогда берите любой готовый движок.
читайте документацию, смотрите для каких языков он предоставляет апи.
берите любой из них и вперед, и с песней.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 12:45  [ТС]
По поводу игры с технической точки зрения, я игру себе представляю как:
Есть движок, который имеет в себе сам игровой цикл, в котором есть основы игры, такие как передвижение, стрельба, вождение автомобиля, драки, система укрытий и т.д.
Есть скрипты, которые пишутся на C#/Python/LUA или тех же плюсах, в которых прописаны возможности, сюжет и многое другое.
Так как мне не нужна работа с графикой, больше половины работы отпадает. Мне рисовать даже ничего не нужно на экране, просто окно.
Но остаётся физика, и то не полная. Столкновение объектов и т.д.
По поводу движка, с нуля я писать точно ничего не собираюсь. Как минимум, возьму звуковой движок типа Bass, возьму какую нить математическую библиотеку.
Дело в том, что плюсы сильно сложны для меня. Там указатели и т.д. Но всё же если не обойтись, я конечно готов тупить тупить, но дотупить. Вот и надо понять, стоит ли.
Ведь в таких движках, как Rage, там ведь в основе графика и физика. Как и почти во всех движках.
Я бы не думал об этом, если бы движок звуковых игр BGT, не был написан на плюсах. Плюс движком это назвать трудно. Там используется для программирования свой язык, подобие Angel script.
Шарп меня устраивает, понятно всё, без проблем, Python к сожалению интерпретируемый, но все движки почти на плюсах. Потому я подумал, что вот напишу я что-то на шарпе, а в итоге игра будет очень ограничена в функционале и в возможностях.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.08.2016, 12:53
Цитата Сообщение от jonikster Посмотреть сообщение
По поводу игры с технической точки зрения, я игру себе представляю как:
Есть движок, который имеет в себе сам игровой цикл, в котором есть основы игры, такие как передвижение, стрельба, вождение автомобиля, драки, система укрытий и т.д.
движок ничего не знает ни о каких основах игры.
и не должен этого знать.

движок предназначен для создания разных игр.
а у разных игр случаются разные основы.

вам нужно поработать немножко с каким нибудь реальным движком.

Цитата Сообщение от jonikster Посмотреть сообщение
Потому я подумал, что вот напишу я что-то на шарпе
берите шарп.

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

питон никуда не убежит. понадобится - освоите.
тоже самое касается Lua.

на плюсы пока забейте - это не ваше.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.08.2016, 12:59
Цитата Сообщение от jonikster Посмотреть сообщение
Например в C++, где будет мощность языка проявляться.
Везде.
Цитата Сообщение от jonikster Посмотреть сообщение
Мне главное понять про производительность.
Это не то с чего следкет начинать. мало того львиная доля вычислений все равно будет на GPU которое программируется на том или ином диалекте C (HLSL GLSL CUDA C)
Цитата Сообщение от jonikster Посмотреть сообщение
Я задумался о этом, потому что:Давайте представим примерно, структуру игры.
Вот именно с этого и стоит начинать мыслить. со структуры иерархии объектов и их поведения. Иерархия и поведение таково что языки со встроенным сбором мусора основанном на рефкаунте и трассировке ссылок из рута неприменимы. потому как во первых дерево с огромным количеством паритетных связей на котором мусоросборник с катушек слетит. Во вторых основная задач по работе с памятью противоположна задаче решаемой такими мусоросборниками. Т.е. обычно надо не грохнуть объект на который нет ссылок, а наоборот грохнуть объект на который есть множество активных ссылок вычистив их из списков обработки. Именно С++ и позволяет такие механизмы реализовывать на автомате минимумом кода в самой глубине иерархии классов.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 13:07  [ТС]
По поводу движка, я работал. Я просто думал, что к примеру движок Rage и какой нибудь open gl это разные вещи. Если движок вида Blitz, OpenGL, то это программа, которая отвечает за вывод графики, воспроизведение звука и т.д.
По поводу Юнити я бы рад, но с редактором Юнити работать физически не могу. Там нет как такового GUI интерфейса. Там визуальные объекты, с ними работать не могу. А без редактора, на сколько мне известно, то есть в чистой студии, писать нереально. Только если движок подключается в саму IDE как библиотека.
По поводу Шарпа, а какие аргументы для этого? Ведь он не такой мощный, а мне нужно примерную производительность GTA. Иначе если у меня будет всё глючить и без графики, что это за игра тогда.
Там где основы C++, я соображаю отлично. Как только указатели, stl, итералы, всё. Я читал в десятках учебниках о этом, но переварить не могу.
Я о Шарпе думаю ещё потому, что мне не нужна крассплотформенность. Мне нужен программинг чисто под Windows.

Добавлено через 3 минуты
Я вообще могу взять Script Hook под GTA 4 или 5 и программить что-то своё. Но в GTA графика, и если буду продавать, это копирайт.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.08.2016, 13:15
Цитата Сообщение от jonikster Посмотреть сообщение
По поводу Шарпа, а какие аргументы для этого?
вот главный аргумент:
Цитата Сообщение от jonikster Посмотреть сообщение
Дело в том, что плюсы сильно сложны для меня. Там указатели и т.д.
берите то, что вам более менее понятно и поддаётся.
и начинайте работать.

а то вы так и будете топтаццо на месте.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 13:19  [ТС]
Но ведь неизвестно, какой в итоге будет результат. Ведь не зря же все сидят на плюсах. Да Майнкрафт на Java написан, но Майнкрафт не GTA, вдруг у Шарпа мощности не хватит на карту, объекты и т.д.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.08.2016, 13:25
Цитата Сообщение от jonikster Посмотреть сообщение
Там визуальные объекты, с ними работать не могу
Следует научится. Ускоряет разработку в раз. Мало того левел дизайнерам и т.д. нужны именно визуальные тулсы с ними удобнее.
Цитата Сообщение от jonikster Посмотреть сообщение
без редактора, на сколько мне известно, то есть в чистой студии, писать нереально.
Обычно суть работы в студии сводится к созданию визуального редактора и набора визуально редактируемых классов. а в единое целое эти кирпичики собираются частично при экспорте из CAD а частично визуально левел-дизайнерами в редакторе. К кирпичика относятся как части физ модели так и алгоритмы AI и логики, а как и когда их запускать уже из визуального редактора/редакторов указывается.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 13:33  [ТС]
Так дело не в том, что я не умею. А в том, что не могу вообще. Я полностью слеп. И доступ к объектам не имею, так как все в редакторе не запрограммировано, а нарисовано. А я могу делать всё, кроме работы с графикой.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
13.08.2016, 13:38
Цитата Сообщение от jonikster Посмотреть сообщение
Но ведь неизвестно, какой в итоге будет результат. Ведь не зря же все сидят на плюсах. Да Майнкрафт на Java написан, но Майнкрафт не GTA, вдруг у Шарпа мощности не хватит на карту, объекты и т.д.
не нужно решать проблемы будущего,
которое может и не наступить.

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

а сейчас вам нужно просто с чего то начать.
шарп - вполне годный и востребованный язык.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
13.08.2016, 14:34  [ТС]
Всему можно научиться. Меня просто сейчас интересует, какая разница будет, если я буду писать на плюсах, на Шарпе и на Python.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.08.2016, 14:45
Цитата Сообщение от jonikster Посмотреть сообщение
какая разница будет, если я буду писать на плюсах, на Шарпе и на Python
Разница в том что на плюсах подстраиваешь механизмы инфраструктуры под свои потребности как хочешь. В шарпе/питоне/яве вынужден подстраиваться под существующую инфраструктуру автоматического управления памятью и т.п. В плане производительности Шарп сам по себе не медленнее плюсов. там тормозная часть .NET которая точно так же тормозная и при использовании плюсов под .NET
0
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 901
14.08.2016, 22:41
unity можно подружить с редактором visual studio. описано, например, здесь:
http://unity3dforge.com/lessons/28
открою секрет, при желании с движком вообще из командной строки работать можно. вопрос, честно говоря, в другом: зачем вам заниматься деятельностью, результаты которой вы не сможете оценить? )

Добавлено через 9 минут
а вот про командную строку, на русском не нашел, но прогеры англ. яз знать должны)
http://docs.unity3d.com/Manual... ments.html
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
14.08.2016, 23:20  [ТС]
В Юнити создавалась уже игра с 3д звуком без графики blind surviver. потому юнити хорошая вещь. но разве можно подключить к студии и полностью писать игру без редактора?
0
370 / 133 / 44
Регистрация: 05.02.2015
Сообщений: 901
14.08.2016, 23:58
можно использовать редактор visual studio, который хорошо озвучивается.
0
55 / 13 / 2
Регистрация: 26.10.2014
Сообщений: 1,107
15.08.2016, 00:08  [ТС]
да это так, но ведь чтобы подключить юнити, нужно зайти в редактор юнити и выбрать сторонний редактор.
0
 Аватар для Fulcrum_013
2083 / 1575 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
26.08.2016, 07:38
Цитата Сообщение от jonikster Посмотреть сообщение
Так дело не в том, что я не умею. А в том, что не могу вообще. Я полностью слеп. И доступ к объектам не имею, так как все в редакторе не запрограммировано, а нарисовано. А я могу делать всё, кроме работы с графикой.
Тогда может быть стоит заняться играми без графики предназначенными специально для слепых? Что то наподобие экономико-логических типа управления государством и/или аудио-квестов по типу книги-игры? Там и то что есть в движках для графических игр просто не понадобится и поле деятельности абсолютно без конкуренции. И в принципе специальные движки есть типа INSTEAD или специализированного языка Inform

Добавлено через 22 минуты
Цитата Сообщение от jonikster Посмотреть сообщение
да это так, но ведь чтобы подключить юнити, нужно зайти в редактор юнити и выбрать сторонний редактор.
Можно записать или попросить кого-то записать клавиатурный макрос который выполняет эти действия по подключению и назначить его на какую либо комбинацию клавиш.
Цитата Сообщение от jonikster Посмотреть сообщение
но разве можно подключить к студии и полностью писать игру без редактора?
К примеру чертеж автокада можно представить в виде набора текстовых команд по его созданию. По большому счету каждая манипуляция мышью переводится в какую-либо команду с определенными параметрами. Юнити в этом плане тоже не исключение. Любое средство визуальной разработки можно продублировать набором текстовых команд. К примеру формы Delphi/C++ Builder имеют текстовое представление в виде текстового языка описания типов вложенности и значения свойств объектов. Другое дело что создание настолько сложных объектов/сцен которые пользуются в 3D играх таким способом дело ужасно сложное. Именно из за его сложности и появились визуальные редакторы. Даже для оконных интерфейсов это оказалось настолько сложным что еще в середине 90-ых появились средства визуальной разработки. До этого интерфейсы собирались набором команд по созданию расположению и связыванию объектов определенной библиотеки в том или ином языке программирования. И главной сложностью был именно подбор координат объектов и визуальный контроль где оно (в каких координатах) создалось и на что при этом наложилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2016, 07:38
Помогаю со студенческими работами здесь

С# и разработка игр
Здраствуйте, после не одного часа гугления, пришел к выводу, что для одиночки-разработчика игр под мобильные платформы лучше всего подходит...

Разработка игр
Всем привет. Короче, меня так достал этот вопрос. Но я никак не могу понять кое-каких, может быть и элементарных вещей. Короче, тупик:( ...

Разработка игр
Здравствуйте, ув. Форумчане! Уже более полу года интересует как начинают писать всякие игры? В голове собрались вопросы, но они пока для...

Разработка игр
Всем привет.Есть ли статьи по разработке игр?Конкретно мат.часть которую я не понимаю.РИсовать спрайты, грущить текстуры на ogl умею

Разработка 2D игр на Delphi
Всем привет! Я, узнав какой объем знаний по математике нужно иметь что бы создать 3d игру, решил узнать о создании 2D игр на Delphi...думаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru