Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / FAQ / Разница между языками программирования с точки зрения создания игр

Разница между языками программирования с точки зрения создания игр

Q>В чём принципиальное различие между языками программирования, и какой язык лучше использовать для создания современных игр?

A>Существует очень много языков программирования. Часть из них применима для написания движка, часть — для написания игры, часть — для скриптинга, часть — для каких-то специальных целей (например, кое-кому удобно хранить настройки в файлах на Lisp). Выбор языка зависит также и от платформы — для мобильных платформ придётся писать на Java, для XBOX360/PS3 существуют только компиляторы Си/C++, и т. д.

Если говорить про написание движка и игрового кода, то тут исторически наиболее распространён C++ (а раньше был Си). Никаких принципиальных преимуществ по сравнению с Паскалем в Си нет, но есть Стандарты языка и есть довольно много хороших компиляторов.

Для современных игр очень соблазнительно, хотя бы частично, использовать более простые и высокоуровневые языки, чем С++, например C# и Java. На них написаны некоторые серверы ММО и игровая логика некоторых игр.

30 июня 2008

#C++, #Delphi, #программирование игр


Обновление: 4 июля 2008

Комментарии:

Страницы: 1 2 3 4 ... 11 ... 19 20 21 Следующая

AvrDragonПостоялецwww12 июня 200916:29#1
Про XBOX плохой пример ибо XNA.
crolПостоялецwww12 июня 200918:43#2
>Никаких принципиальных преимуществ по сравнению с Паскалем в Си нет
все тесты скорости говорят что с++ быстрее всех, еще к нему иногда приближается Java, но она пожирает память.

раз - http://www.osp.ru/os/2000/12/178361/_p2.html 
и особенно два - http://shootout.alioth.debian.org/u32q/  (тут можно сравнить между собой очень много языков и на различных задачах)
Таких тестов очень много, эти первое, что нашлось сейчас, а вообще есть более продвинутые тесты,
я так сравнивал различные модификации Python и LUA.

сколько можно спорить о том, что уже доказанно.

Правка: 12 июня 2009 18:55

ASDПостоялецwww12 июня 200919:06#3
> Разница между языками программирования с точки зрения создания игр

a) разницы нет никакой, главное уметь пользоваться доступными средствами

b) А вообще, crol прав: C++ рулит.

В основе любой более-менее нормальной игры лежит движок. Графический, физический, логический, игровой, и т.д. Работа самой игры при этом заключается лишь в управлении этим движком. Поэтому быстродействие движка крайне важно => движок пишется на C++ и возможно даже со вставками ассемблерного кода и использованием расширений процессора. А уж на чем писать потом игру - не столь важно. Хотя опять см. пункты a, b.

Правка: 12 июня 2009 19:17

chiaroscuroПостоялецwww1 июля 200913:06#4
crol
> все тесты скорости говорят что с++ быстрее всех, еще к нему иногда приближается
> Java, но она пожирает память.

Кроме скорости кода бывают и разные другие фиговины:
- безопасность (отсутствие segfault и других "приятностей")
- скорость разработки
- etc.

Этого нет у Си/Си++, к сожалению, и поэтому придумали скрипты.

> раз - http://www.osp.ru/os/2000/12/178361/_p2.html
> и особенно два - http://shootout.alioth.debian.org/u32q/ (тут можно сравнить
> между собой очень много языков и на различных задачах)

Судя по Shootout, у C++ есть преимущество, но не подавляющее,
например, GHC, OCaml, SBCL работают в пределах 2-5 раз медленнее.

А вообще, к синтетическим бенчмаркам надо относиться осторожно.

> сколько можно спорить о том, что уже доказанно.

Вот именно. Сколько можно спорить о том, что у Си есть принципиальные преимущества над Паскалем?
(Пора бы уже перестать путать Си с Си++.)

В Паскале есть хотя бы модули. :)

PS for great justice исключительно

NecrysПостоялецwww1 июля 200916:57#5
Как то по-моему пост ниочём. Ток холивары подымать. Специфика не раскрыта.
Прибой94Удалёнwww1 июля 200917:55#6
chiaroscuro
> - безопасность (отсутствие segfault и других "приятностей")
> - скорость разработки

Имхо скорость разработки - не самое важное. В смысле разница несущественная.
Опытный программист может писать безопасный код и в С++.(Если я правильно понял написанное)
Гораздо важнее скорость работы и ресурсоемкость, т.к игры очень сильно жрут процессор и память.

chiaroscuroПостоялецwww2 июля 20098:04#7
Прибой94
> Имхо скорость разработки - не самое важное. В смысле разница несущественная.

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

> Опытный программист может писать безопасный код и в С++.(Если я правильно понял
> написанное)

Вряд ли. Но впрочем, важно не это.

В Си/Си++, если программа скомпилировалась, то это не значит, что она будет работать. А если она будет работать, то остаются возможные core dump, которые можно устранить только посредством тестирования. Тестирование не может найти все ошибки.

В современных ЯП, зачастую, если программа прошла проверку типов, то она работает. YMMV.

> Гораздо важнее скорость работы и ресурсоемкость, т.к игры очень сильно жрут
> процессор и память.

Если мы все тут разрабатываем убийц Crysis, то твое утверждение верно. :)

crolПостоялецwww3 июля 20099:49#8
Если казуалка будет требовать ресурсов не как казуалка это не нормально.
chiaroscuro
> А вообще, к синтетическим бенчмаркам надо относиться осторожно.
я хотя бы их привел, а вы мне : мифическую скорость разработки, ошибки о которых программисту видетили не скажет компилятор...

Правка: 3 июля 2009 9:52

chiaroscuroПостоялецwww3 июля 200911:24#9
crol
> Если казуалка будет требовать ресурсов не как казуалка это не нормально.

Ты делаешь необоснованное предположение, что если игра не пишется на Си++, то она обязательно будет тормозить. Это не так.

Существует целая куча игр, написанных на Flash, Java. И ничего, работают же как-то.

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

Посмотри же другие языки. Сразу станет ясно, что не Си++ единым.

DampПостоялецwww20 июля 200914:09#10
Если честно вообще не представляю как можно игру написать полностью на С++ :) , допустим даже не сложный шутер.
Это нереально, если это хобби, а не основная работа...
NikopolМодераторwww20 июля 200914:57#11
Damp
> Если честно вообще не представляю как можно игру написать полностью на С++ :) ,
> допустим даже не сложный шутер.
А в чём у тебя сложности ?
RacooncityПостоялецwww20 июля 200916:03#12
>А в чём у тебя сложности ?
Вся сложность описана в посте номер 8.
Хотя подавляющее большинство игр написаны все-таки на плюсах...

Вообще действительно не принципиально что использовать. Можно хоть на C# писать под .NET - что я и делаю собственно, конечно не им одним живу, возможностей пока маловато, но тем не менее...

По большей части поддерживаю Necrys - тема только похоливарить...

DampПостоялецwww20 июля 200916:17#13
Сложность в том, что низкоуровневый. Нужно писать очень очень много кода. Это конечно окупается бОльшими возможностями, но релиз как правило отодвигает на неопределенный срок (участвовал в нескольких мегапроэктах).
Как хобби, даже делфи слишком сложен для игростроения, имхо. Для написания самой игры предпочел бы блиц, пурик или какой-то скрипт, понимая что убийцу крайсиса так и так не написать, тише едешь дальше будешь )) , ну это все личное мнение.
NikopolМодераторwww20 июля 200916:23#14
Damp
> релиз как правило отодвигает на неопределенный срок (участвовал в нескольких мегапроэктах)
Это последствия неправильного планирования и рукожопых программистов.
Но при чём тут выбор языка ?

Страницы: 1 2 3 4 ... 11 ... 19 20 21 Следующая

/ Форум / Программирование игр / Общее

2001—2017 © GameDev.ru — Разработка игр