|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.08.2016, 11:11 | #1 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Разработка игр. C++ vs C# vs Python
Приветствую всех.
Уже около года я выбираю между C++, C# и Python. Читаю, спрашиваю и т.д. Параллельно изучаю все 3 языка. Помимо изучения, я знал примерную область, где буду работать. Это прикладное программирование под Windows. Программы клиентсерверные приложения и многое другое. Но недавно я решил окончательно, в какой основной области буду работать и куда двигаться. Это разработка звуковых игр. Использовать буду возможно такие инструменты, как Bass, DirectSound и т.д. И вот у меня появился вопрос: Я знаю, что C++ быстр, позволяет работать на прямую с памятью. В играх, как и где отражается его мощность? Только на графике? Например, я хочу сделать игру с открытым миром. Большая карта, примерно клон GTA. Естественно не с полного нуля. Высокоуровневые инструменты по обработке звука буду точно использовать. Так вот, будет ли разница в производительности игры, если я буду писать на C++, на C# или на Python? Библиотеки есть под все эти языки. Мне главное понять про производительность. Например в C++, где будет мощность языка проявляться. Я задумался о этом, потому что: Давайте представим примерно, структуру игры. Есть главная программа-движок. В движке прописано передвижение, стрельба и т.д. Скрипты - дополнения к движку, где прописаны миссии, сцены и т.д. Так сделано большинство игр. Во всяком случаи, GTA и Mafia 2 точно. Есть движок и файлы, где прописаны миссии, возможности. Вот и мне интересно, если разница писать движок на c++, C#, Python есть, то будет ли она, если исключить графику, а остальное оставить? Заранее благодарен. |
13.08.2016, 19:20 | #2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Я тоже изучаю программирование игр. Может вам интересны будут мои шаги:
Последний раз редактировалось 8Observer8; 13.08.2016 в 19:28. |
14.08.2016, 16:47 | #3 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
По поводу игр мне главное решать следующие задачи:
Работа с позиционируемым 3d звуком; Создание карты большого мира. Пока это две главные задачи. Но нужно понять, какой из трёх языков использовать. Не зря же используют плюсы для движком почти всегда. |
14.08.2016, 17:57 | #4 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Если у вас мощный ПК, то можете использовать С++ и один из движков: CryEngine 5 или Unreal Engine 4. Если не очень мощный, то Unity 5 и C#.
Можно писать без движков на C++ и языках HLSL (DirectX) или языке GLSL (OpenGL). Либо на этих же инструментах писать свой движок. Это намного дольше, но полезно. Цитата:
Если вы планируете что-то серьёзное и с нуля, то есть писать свой движок, то однозначно нужно использовать C++ и либо: DirectX либо OpenGL. Ну никак ни Java или C#, потому что сборщики мусора будут мешать. Не зря же, например, Unity написан на C++ и Си. Просто для игрового скриптинга удобнее использовать: C#, JavaScript, Python, Lua и т.д., а не C++. Поэтому в UE4 самый популярный язык скриптинга - это язык Blueprint, а на CryEngine5 - язык Flow Graph или Lua. Есть два лагеря программистов: те кто пилит, развивает и улучшает движок и тех кто пилит на этом движке игры. Последний раз редактировалось 8Observer8; 14.08.2016 в 18:03. |
|
14.08.2016, 18:31 | #5 | |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Цитата:
Cry engine не подходит, т.е там нельзя чисто кодить, там много действий с объектами надо делать в редакторе, сам редактор мне доступен, но двигать камеру и прочее нет. Unreal и Unity тоже не подходит из-за отсутствия доступности. Я как рас хочу посмотреть в сторону OpenGL и DirectX, но хочу найти какую-то библиотеку, которая с этим всем уже работает. |
|
14.08.2016, 18:32 | #6 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
Ок если из-за сборки мусора Java и C# отпадают, то что тогда с Python?
|
14.08.2016, 19:23 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Зачем вам OpenGL и DirectX если графика не нужна? (в DirectX вроде бы есть что-то про звук, не особо вкурсе, но в OpenGL совсем нет, Open Graphics Library же)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
14.08.2016, 20:50 | #8 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Я посмотрел темы созданные автором. Вспомнил, что это незрячий человек, который уже давно выбирает какой язык ему изучать для создания звуковой игры. То что я писал до этого относилось к играм, в которых есть хотя бы какое-нибудь рисование на экране. Вам не нужны никакие движки, ни DirectX, ни OpenGL. Для вашей игры можно использовать любой язык, который вы упоминали: C#, Java, C++, Python
P.S. Это тот случай, когда потрачено столько энергии впустую |
14.08.2016, 21:48 | #9 |
Форумчанин
Регистрация: 28.10.2014
Сообщений: 216
|
а почему в моём случаи можно использовать любой язык? Ведь как вы говорили в C#/Java присутствует сборщик мусора, и что это как-то влияет.
Отпадает только графика. Физика, звук, карта, всё остаётся. я хочу сделать примерно как GTA. По поводу DirectX, в нём есть DirectSound. Правда библиотека низкоуровневая, потому мне лучше что-то вроде bass или fmod. Но я как говорил поищу игровые движки типа блитца, где всё это уже включено. |
14.08.2016, 22:02 | #10 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Я себе не представляю, чтобы игра Crysis (которая сделана на CryEngine) была бы создана на движке, который бы был бы написан на C#/Java. Одна из причин, как мне кажется, это сборщик мусора. Динамичная игра с графикой требует скорости.
Берите любой язык, который вам нравится. Ищите для него библиотеки для работы со звуком. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Разработка игр на С++ и Cocos2D-x | ACE Valery | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 25 | 22.04.2016 15:51 |
Разработка игр | Kaddok | Свободное общение | 6 | 18.05.2012 22:06 |
разработка игр на Python | OrcXCyber | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 24.03.2011 10:26 |