LINUX.ORG.RU

GameDev - какой язык выбрать,


0

2

Сейчас активно занимаюсь разработкой игр, но в силу дизайнероско-программистского диплома, знаю и использую пока в основном (ногами не бить) ActionScript 3.0. И даже вроде бы неплохо. Там есть и Unit-тесты, и легко использовать паттерны, есть отличный FD и т.д. Так что не такая уж и мракобесия.
Но тормозит, естественно, при больших задачах.
А я сейчас как раз плавно ухожу в область разработки десктопных вещей.
Внимание, вопрос:
какой язык выбрать для изучения в данной области применения? C? Python? А ведь хотелось бы еще и сохранить возможность визуального редактирования элементов, но это, судя по всему, мечты...
/* Точно, абсолютно точно, не Java. Просто нет. Знаю, что синтаксис похожий. Но нет */
Помогите пожалуйста выбрать или хотя бы осознать, что что дает.
Еще было бы здорово, если б можно было оптимизировать работу приложений, и при этом, чтобы код оставался читабельным. Но это уже лирика.



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

Очевидно, что для десктопа нужно брать C#. Либо C++, но только если есть для этого веские причины. И никак иначе.

Для флеша же куда удобнее haXe, чем ActionScript.

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

> Для флеша же куда удобнее haXe, чем ActionScript А что, прям быстрее бегает? Когда-то стукнуло в голову почитать, посмотреть, но до проекта дело не дошло - как-то AS3 был роднее, а необходимость применения HaXe непонятной.

Но если и правда быстрее обработка пойдет, то было бы просто прекрасно. А то у меня TaskManager от 10 зомби еще не надрывается, а вот с 4мя, но с A*, уже все - пошаговая стратегия, вместо шутера. (Хотя, тут A* и правда избыточен, но пример прям под руку попался)

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

Там перенос строки, конечно же. Прошу прощения

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

Но если и правда быстрее обработка пойдет, то было бы просто прекрасно.

Я не знаю. Но люди говорят...

Кстати, вот в этой теме я на haXe выкладывал сорцы софтверного 3D рендерера. Вроде на ActionScript это делать проблемнее ввиду того, что в нём нет дефолтных либ для полноценной быстрой работы с памятью.

Впрочем, во флеше я нуб, потому могу быть неправ.

NightmareZz
()

> GameDev

область разработки десктопных вещей

C в обязательном порядке. Плюсов добавить по вкусу. Когда плюсы окончательно осточертеют - Lua. Для разнообразия потом можно посмотреть Guile. Главное, не наступить по дороге в Python, TCL или что-то подобное. Это всё хорошо, но не для геймдева.

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

Никакие не мечты - данные можно редактировать визуально сколько хочешь. Вот поведение уже надо программировать.

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

Есть же Super Tux, зачем оно, да ещё на шарпе

Мне просто интересно было попробывать это сделать. Картинки я натырил из Super Tux'а. Сделал. Выложил. Хотите - пользуйтесь, не хотите - проходите мимо. До играбельного состояния не доработал, потому что стало неинтересно.

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

Впрочем, во флеше я нуб, потому могу быть неправ.

Кстати, недавно допилили одну игрушку match-3 - NatureBubbles. Я программил, жена рисовала и ещё один парень музыку наколбасил. :)

NightmareZz
()

Изучать тему лучше по C++ или, на худой конец, C#, потому что документация и семплы в основном на них, но вот когда уже войдешь в тему, то для реальных проектов лучше брать нормальные языки - и я бы тут посоветовал CL(ну хотя даже тот же C# в принципе не так уж и плох). С++ это легаси, его для новых проектов даже в геймдеве использовать смысла нет вообще никакого, не ведись на форумных аналитиков(от слова «анал») на всяких gamedev.ru и прочих.

lovesan

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

Кстати, Си смысла использовать тоже нет.

Равно как и Python и прочую скриптоту(как C#, так и CL, посоветованные мной выше - намного гибче и удобнее в использовании, чем любая скриптота, ну а уж про скорость работы программ, на них написанных, я даже и не говорю)

lovesan

anonymous
()

C++ вкупе с Qt. У Qt хорошая документация, детальные примеры и туториал. Уровень входа низкий, а продукт качественный.

к этому хорошие(интересные лично тебе) книги по С++ и ООП.

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

> С++ это легаси, его для новых проектов даже в геймдеве использовать смысла нет

форумный аналитик(от слова «анал») рассказывает какие современные игроделы непонятливые, выпускают Fallout 3, Rage, Skyrim и пр. и пр. на С++ ( что легко можно увидеть по бинарникам, даже отладочная информация зачастую есть ), а вот он, нихрена не написавший, понял жизнь и советует всем, что надо делать ^_^

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

>а вот он, нихрена не написавший
ггг

выпускают Fallout 3, Rage, Skyrim и пр. и пр. на С++ ( что легко можно увидеть по бинарникам, даже отладочная информация зачастую есть )


это по причине инертности индустрии, не более
ладно хрен с ним с лиспом, но вот C# уже сто лет как может в геймдеве на десктопах заменить C++ полностью и окончательно.

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

Казуальщину небось на нем уже давно пишут.

x4DA ★★★★★
()

Python используют для игр достаточно часто. Обычно движок на C++, логика верхнего уровня на пистоне.

Вот, например: http://en.wikipedia.org/wiki/List_of_Python_software#Video_games

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

anonymous
()

С++ + Qt
или
C++ + SDL
или
C# + XNA

Первые 2 варианта - православные. Третий, наверное, если верить мелкомягким, с низким уровнем вхождения, но без намеков на кроссплатформенность и переносимость.

gear ★★★
()

C++ отраслевой стандарт. Когда игры пишут на C# получаются опять же тормоза, новый Ил-Штурмовик как ярчайший пример. Python в геймдеве тоже не нужен.

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

> C# уже сто лет как может в геймдеве на десктопах заменить C++ полностью и окончательно.

Уже сто лет как никто не геморроиться только ради десктопов. А как обстоят дела с C# для XBox 360/PS3/Wii ты знаешь и без меня.

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

> Вот, например: http://en.wikipedia.org/wiki/List_of_Python_software#Video_games


Battlefield 2:
... Some of the lower scores were reactions to the large amount of bugs and glitches in the initial release, including crash to desktop bugs and network problems.

The Temple of Elemental Evil:
... The release was criticized for stability issues and other bugs.

Civilization IV:
The version of Python present in the Windows version of the game differs from the version in Mac OS X up to and including version 10.4.7, and as a result, while most Python files for the Windows version will work on the Macintosh version, not all will. The reverse is also true.

Eve Online:
Both the server and the client software for Eve Online are developed in Stackless Python, a variant of the Python programming language. Stackless Python allows a relatively large number of players to perform tasks without the overhead of using the call stack used in the standard Python distribution. This frees the game developers from performing some routine work and allows them to apply changes to the game universe without resetting the server. However, the Eve cluster is taken offline daily for database and server maintenance.

Мдя.

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

>В олдовые времена игры писали на Борланд Паскале :)

Какой же ты молодой, раз уж эпоха гамезов на Борланд Паскале для тебя - «олдовые времена».....

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

> И что из этого ты приписываешь недостаткам Питона?

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

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

>> И что из этого ты приписываешь недостаткам Питона?

Даже и не знаю.. То ли пишуших на нём программистов

Еще бы неплохо было сказать, как ты определил источник багов. А то чистого Питона почти нигде нет - обычно большая часть кода как раз на Си++.

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

Гг. И в каких играх Питон использовали «как спасательный круг при дедлайне»?

tailgunner ★★★★★
()

фу, как можно для геймдева не компилируемые в нативный код языки юзать :)

только ассемблер, C и C++

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

ну-ну. just google: «magicka is running slow» вот пример «C# + XNA» - проскакивают тормоза на любых машинах. представишь контр-пример не_тетриса на этой связке, не испытывающего проблем с производительностью?

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

> С++ это легаси

лучше брать нормальные языки
я бы тут посоветовал CL
CL намного гибче и удобнее

Так может покажешь хотя бы одну игру, написанную на СОММОИ ЛNСП? Нет, не можешь? Тогда я покажу.

Есть тут один полусумасшедший клоун (похуже тебя), Золотцем звать. Полный набор шизофренических симптомов: задвинутость на лиспе, отрицание математики, вера в жидомасонский заговор и т.п. Так вот, хотел он написать Warcraft на лиспе. Даже собственный вырвиглазный DSL навелосипедил. В конце концов написал загрузчик ресурсов оригинального варкрафта, но потом плюнул на это дело и забил. Говорит, что из-за тормозов SBCL, и что надо было изначально писать на Scheme.

Теперь собирается Lisp OS разрабатывать, такие дела.

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

О, боже, беру свои слова обратно! Для героя первой империалистической и последняя, написанная на борландпаскале, игра - олдовая.

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

> Еще бы неплохо было сказать, как ты определил источник багов. А то чистого Питона почти нигде нет - обычно большая часть кода как раз на Си++

На консолях весь код на С/С++. Багам игроки радуются как крайне редкой удаче. ))

И тут даже на статическую vs. динамическую не спишешь:

Pages in category «Lua-scripted video games»

The following 118 pages are in this category, out of 118 total.




И в каких играх Питон использовали «как спасательный круг при дедлайне»?


То есть, это они с самого начала использовали питон и всё равно получали вот такой результат? Мдя.

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

> На консолях весь код на С/С++. Багам игроки радуются как крайне редкой удаче. ))

Свежо питание...

И в каких играх Питон использовали «как спасательный круг при дедлайне»?

То есть, это они с самого начала использовали питон и всё равно получали вот такой результат? Мдя.

А ты думал, что если в программу на Си++ добавить Питона, баги резко исчезнут?

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

В консолях другой уровень приёма. Есть требования, заданные производителем консоли, охватывающие часть функциональности(инициализация, обработка ошибок, сохранение/загрузка, и т.д.) или, например, просто Guaranteeing Extended Operation of the Application [Required]. Потому сравнение не корректно. Если бы могли выпускать быстрее, но с багами - выпускали бы).

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

> Свежо питание...

Свежее не бывает - прямые поставки от производителя.

А ты думал, что если в программу на Си++ добавить Питона, баги резко исчезнут?

Не, я думал, чуваки хотели «забацать игруху», понабрали инвестиций, а за полгода до релиза поняли, что пролетают, решили, ну его нах, этот «грёбанный С++», и кинулись на «высокоуровневый», «мощный»,«выразительный»,«понятный» и «простой» питон. Но раз ты говоришь, что они его использовали с самого начала...

LamerOk ★★★★★
()

Можно взять unity3d и писать хоть на яваскрипте. На с++ тоже можно.

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

> В консолях другой уровень приёма.

А то я не знаю.

Есть требования, заданные производителем консоли

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

Потому сравнение не корректно.

Сравнение толсто намекает, что не в языках дело. Во всяком случае уж точно не в «бажном С++».

LamerOk ★★★★★
()

Сегодня ковырял встраивание языков в программы, написанные на C++ средствами SWIG и GNU Guile. Клево. Возможно, это твой вариант?

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

>Не напомните, когда последняя, написанная на нем, вышла?
Space Rangers - 23 декабря 2002 года

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

man Wizardry, к примеру. А когда игры в школе писали на Борланд Паскале это как раз не такие уж и олдовые времена.

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

>ну-ну. just google: «magicka is running slow» вот пример «C# + XNA» - проскакивают тормоза на любых машинах. представишь контр-пример не_тетриса на этой связке, не испытывающего проблем с производительностью?
я скажу больше: WH40K:Space Marine работает и выглядит _по разному_ под ХР и 7кой - писана на C# + XNA
Берем HON, написанный на C++, - выглядит везде(linux, XP, 7) тупо идентично, заметной разницы в производительности нет, летает на убогом, по нынешним меркам, железе.

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

не хочу.
дело в том, что ТС вряд ли упрется в тормоза .NET платформы.

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