LINUX.ORG.RU
ФорумTalks

C++ не годится для рогаликов?


0

0

Как вы думаете, почему так мало рогаликов(игр типа ADOM, Nethack) написанных на C++ и с другой стороны так много (почти все из них) написанных на C.

С чем это связано? Ведь модель такой игры должна хорошо ложиться в принципы ООД?

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

Какие еще есть мнения у аналитиков ЛОРа?

Перемещено Die-Hard из Development


Кусочек Сахару Троллям ☺

>Какие еще есть мнения у аналитиков ЛОРа?

Сахарку дам, но троллинг унылый.

С☩☩ сложнее, и потому хакеры его просто не осиливают (в частности STL), потому быдлокодят свои поделия на чистом си, ваяют всякие костыли вроде гыОбжект, и кичатся своим пристрастием к жесткому порно.

Слово оправдания предоставляется гику…

wfrr ★★☆
()

Что же такое "рогалики", они же игры типа ADOM, Nethack?

shumer
()

> Какие еще есть мнения у аналитиков ЛОРа?

Один знакомый повар мне сказал что для рогаликов куда важнее хорошее тесто и дрожжи нежели языки программирования, которых в традиционной рецептуре нет.

gaa ★★
()

> Как вы думаете, почему так мало рогаликов(игр типа ADOM, Nethack) написанных на C++ и с другой стороны так много (почти все из них) написанных на C.

> С чем это связано?

И когда эти рогалики были написаны?

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

Раз уж пошла такая тема, попробуем использовать разрушительную энергию в мирных целях. Я не являюсь сторонником ни С++, ни С. Но, независимо ни от чего, С - это один из "стандартов де факто". Поэтому, к "аналитикам ЛОРа" вопрос такой: 1. Что такое "гыобджект"? 2. Насколько широко в С сообществе распространены продвинутые макропроцессоры типа m4?

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

http://en.wikipedia.org/wiki/GObject

> С - это один из "стандартов де факто"

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

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

Вы не в слабых силах, осилить парадигму API? — вы ССЗБ.

anonymous
()

Переместите подальше в Talks PLZ.

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

> Стандарт чего? Только системных программ, там да, а прикладное по пишется в венде на плюсах, дельфи, и всяких других средствах извращений.

Прикладное что? Можно с примерами?

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

> Стандарт чего? Только системных программ, там да, а прикладное по
> пишется в венде на плюсах, дельфи, и всяких других средствах
> извращений.

А что, в принципе, мешает писать системные программы на плюсах? Что в них для этого не так?

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

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

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

Специально для троллей без логики НЕТ.

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

Re^2: Кусочек Сахару Троллям ☺

> А что, в принципе, мешает писать системные программы на плюсах? Что в них для этого не так?

1. Фанатизм.

2. Редко когда в _системной_ программе может понадобиться что-то, что есть в C++, но нет в C.

PS. fuse-zip, хоть и системная утилита, но нормально живёт будучи написанной на плюсах.

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

> толсто
это еще почему? C++ компилятор просто делает methods name mangling,
по сути C++ обьектный файл ни чем не отличается от Cшного
(указатель на virtual table в рассмотрение не берем).
Откуда такая информация, что Cшных игр больше?
Вот неполный список игр написанных на C++:
: Doom III engine. Sierra On-line: Birthright, Hellfire, Football Pro, Bullrider I & II, Trophy Bear, Kings Quest, Antara, Hoyle Card games suite, SWAT, and too many others to list... Blizzard: StarCraft, StarCraft: Brood War, Diablo I, Diablo II: Lord of Destruction, Warcraft III, World of Warcraft. Quicksilver: Shanghai Second Dynasty, Shanghai Mah Jongg Essentials, Starfleet Command, Invictus, PBS's Heritage: Civilization and the Jews, Master of Orion III, CS-XII. Microsoft: all games. EA: video game engine. Byond: a "world" development platform.

Valeriy_Onuchin ★★
()

Вот опять. Убивают фанатики С++. Вот ты задал вопрос: "Почему Си"? И обязательно пакостный кодер это сведет к "давайте на С++". Вот почему если не Си, то сразу С++? Что вам дался этот недоязык? Да, можно писать не на Си, давайте сядем, обсудим варианты: D, Vala, LISP, Haskell, и т.д.. Но почему-то опять я слышу С++. У вас, фанатиков, все сводится к С++. Задолбали уже. Сколько можно? Превратили ЛОР в помойку. Всегда удивляла непоследовательность мышления плюсятнеков. Они сначала аргументируют за высокоуровневость, и если вам она так важна, важна продуктивность программиста, читабельность программ, простота поддержки, то почему не берете действительно высокоуровневые языки? Ладно. Вам важна производительность, низкоуровневость, и т.д.. Те, кому это нужно, используют Си. Почему вы не используете Си, если вам критична производительность и близость к земле? Для человека, который мыслит на уровне сложных алгоритмов, вообще пох на язык, ему главное, чтобы он не тащил за собой лишних проблем (не С++), был читабелен (не С++), интуитивен (не С++), без подводных камней и неоднозначностей (не С++). Тот, кому нужна высокоуровневость, тоже С++ не выберет. Вы противоречите самим себе. Гномеры не против high-level-languages, они против С++. И дело не только в убогом ООП, но и в самом языке. Си проектировался без расчета на то, что из него сделают плюсы. А попытка С++ нагородить костылей поверх синтаксиса кроссплатформенного ассемблера привела к логической противоречивости языка, дублированию понятий, запутанному и неоднозначному синтаксису, неправильно выбранным приоритетам операций, невозможности нормального использования (одно инстанцирование шаблонов чего стоит - коммерческие либы писать проблемно, т.к. для использования шаблонов требуются исходные коды, время компиляции растет по экспоненте, размер исполняемого файла тоже; да и возможностей по генерации кода у шаблонов мало), абсолютно статическое негибкое ООП, без мультиметодов, слотов и сигналов, полное отсутствие рефлексии, проблематичность динамического связывания (механизм разделяемых библиотек на ООП и шаблоны не рассчитан; а модулей аля-Java у С++ нет), убогие возможности в плане функционального программирования, отсутствие должной безопасности, свойственной высокоуровневым языкам, и т.д..

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

Игры на С++ - следствие не хорошего цпп, а того, что эти игры на Венде разрабатывались.

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

> Что вам дался этот недоязык?
Карлосон? он вернулся! Аплодисменты профессору!

Valeriy_Onuchin ★★
()
Ответ на: Re^2: Кусочек Сахару Троллям ☺ от gaa

> Редко когда в _системной_ программе может понадобиться что-то, что
> есть в C++, но нет в C.

Работа со строками.
Ну, рассмотрим, например, wcstombs, которая convert a wide-character string to a multibyte string.
Мы вынуждены запускать wcstombs сначала один раз, чтобы определить, какой длины получится строка (и в man'е так рекомендуется), затем выделять память malloc'ом, запускать второй раз, чтобы получить строку, и потом не забыть освободить выделенную память.
Ну ведь тут само собой разумеется применение c++-го string, которая делает ненужными все эти безобразия! Соответственно, яркое проявление полезности STL и всего, что делает её возможным.

Далее, есть прекрасная функция asprintf(). Появилась не от хорошей жизни в Си (это тоже к работе со строками).

Далее, не знаю, насколько системной можно считать библиотеку ncurses, но вы посмотрите в её man'е список её функций - вот что получается, когда нет совмещения функций (AKA перегрузки).

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

sergey_feo
()

>С чем это связано?

Инертность, лень. Сишные "деды" до сих пор плюсы не осилят. По моему, в настоящее время С++ сильно недооценен и его расцвет еще впереди.

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

В системном программировании строки _должны_ быть в последовательных ячейках памяти. На этом держится все, и взаимодействие с устройствами, и интернет. Да и производительнее это, а ваш пример - вакуумный.

А так как злоупотреблять _обязательно_ будут, то лучше застраховать себя от быдлоязыков.

anonymous
()
Ответ на: Re^2: Кусочек Сахару Троллям ☺ от gaa

>2. Редко когда в _системной_ программе может понадобиться что-то, что есть в C++, но нет в C.

Откровенное 4.2

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

> а ваш пример - вакуумный

Когда каждый раз, выстраивая неудобные костыли, думаешь, а на сколько всё могло бы быть проще, если бы строки Си содержали длину массива и длину строки, то эти вещи не кажутся вакуумными :-)

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

>Да, можно писать не на Си, давайте сядем, обсудим варианты: D, Vala, LISP, Haskell, и т.д..

Дальше читать не стал. В сад, клоун.

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

>Сишные "деды" до сих пор плюсы не осилят

90% тех, кто говорит, что язык программирования можно не освоить - быдло кодеры. Оглянись вокруг, Сишные деды и млады осваивают любой язык за 1 день.

>С++ сильно недооценен и его расцвет еще впереди

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

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

> Вот почему если не Си, то сразу С++? Что вам дался этот недоязык?
Такова жизнь :-)
Чем больше популярность языка, тем больше на нём пишут библиотек и тем больше по нему книжек. А чем их больше - тем проще людям с ним работать. И тем больше он используется, и тем больше пишется программ, книжек, библиотек, компилляторов, поддерживаемых систем ну и так далее по второму кругу :-)
И даже если есть альтернативы лучше - то они стоят в сторонке. И с этим сложно что-либо поделать.

> Да, можно писать не на Си, давайте сядем, обсудим варианты: D,
> Vala, LISP, Haskell, и т.д..
Конечно, давайте. Мне всегда было интересно, насколько подходит для системного программирования Ада. Ведь она предназначалась вроде как для мощных встроенных систем - а что может быть системнее?

> Для человека, который мыслит на уровне сложных алгоритмов, вообще
> пох на язык, ему главное, чтобы он не тащил за собой лишних проблем
> (не С++), был читабелен (не С++),... убогие возможности в плане
> функционального программирования, отсутствие должной безопасности,
> свойственной высокоуровневым языкам, и т.д..

Мне кажется, это надо причесать, снабдить примерами и пояснениями и поместить в Википедию. Чтобы народ не переспрашивал, а заходил и читал.


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

>90% тех, кто говорит..

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

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

Точно.

> осваивают любой язык за 1 день.

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

> в настоящее время С++ сильно недооценен и его расцвет еще впереди.

В настоящее время, как мы можем видеть, С++ полностью оценён и его расцвет в разгаре либо позади.

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

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

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

> мда, чему в школе учат?
Бейсику.

> google c++ binary compatibility
Погуглил. Как всё, оказывается, запущено...

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

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

>В настоящее время, как мы можем видеть, С++ полностью оценён и его расцвет в разгаре либо позади.

Я думаю он еще прибавит за счет C и, возможно, немного потеряет за счет ухода из "быдлоподелий".

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

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

Поздравляю, ты типичный быдлокодер.

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

>Погуглил. Как всё, оказывается, запущено...

1. Возможно в будущем исправят, не столь важно.

2. То что есть уже _не хуже_ Си.

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

>Кто-нибудь может дать короткое пояснение, как с этим делом в других языках?

Превосходно! В Си и прочих процедурных языках - стандартные средства разделяемых библиотек, в Яве - замечательные *.class файлы, в C# и подобных - Common Language Runtime, в GNOME - единая система GObject, в Лиспе и прочих функциональных и/или интерпретируемых языках - свои пакеты. И только С++ нормально не стыкуется сам с собой.

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

> 1. Возможно в будущем исправят, не столь важно.

Цитирую с http://qt.osdn.org.ua/binarycompat.html:
"Библиотека является бинарно совместимой, если программа, собранная с предыдущей версией библиотеки, может работать с ее новой версией без перекомпиляции."
Это не столь важно?!


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

>Возможно в будущем исправят

Не исправят. Исправить это можно только путем создания JVM, .Net или GObject++.

>не столь важно.

это критично

>То что есть уже _не хуже_ Си.

хуже

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

> В Си и прочих процедурных языках - стандартные средства разделяемых
> библиотек, в Яве - замечательные *.class файлы, в C# и подобных -
> Common Language Runtime, в GNOME - единая система GObject, в Лиспе и
> прочих функциональных и/или интерпретируемых языках - свои пакеты. И
> только С++ нормально не стыкуется сам с собой.

Эх, почему все так любят языки со страшными Си-подобными синтаксисами?
Почему никто не интересуется, как там дела в Аде-2005? В Фортране-2003? Это уже совсем не тот перфокарточный Фортран...

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

>Поздравляю, ты типичный быдлокодер.

А для тебя освоить язык - проблема? И для тебя язык вообще что-то значит? Поздравляю, то школьник.

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

>Возможно в будущем исправят, не столь важно.

Это критически важно. Первым делом когда в язык добавляется фича, надо спрашивать себя "А будет ли оно мешать бинарной стабильности интерфейсов?". Если ответ "Да" - то сразу в топку. А отмазки про то что ABI нужно пропиеритарщикам идут дружным строем на@ер.

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