Войти
ФлеймФорумПрограммирование

А почему бы не попробовать Сишечку? (2 стр)

Страницы: 1 2 3 438 Следующая »
#15
(Правка: 12:22) 12:20, 2 мая 2021

Mirrel
> значит на C++ нельзя выстрелить себе в ногу? О_о...
С++ - это язык с наколенниками.
Да, наколенники не защитят от выстрелов в другие части тела.
Да, если наколенники не надевать правильно, то они и колени не защитят.
Однако, у си наколенников нет. Там вообще ничего нет, только ружьё, трусы - и вперёд.

NyakNyakProduction
> Из минусов — количество дураков с С++ головного мозга вокруг.
Рекомендую лечить их хаскелем. (:


#16
12:32, 2 мая 2021

Panzerschrek[CN]
> В 90-е компиляторы C++ были ещё не развиты

да на - тот же ватком

#17
12:36, 2 мая 2021

Си с классами вполне рабочий вариант даже сегодня.

#18
13:30, 2 мая 2021

innuendo
> ты это скажи Q1-Q3 или конзольщикам
Вот как раз хорошие примеры, что, каким бы супермозгом ни был погроммист, на Ц он выше полутораметрового потолка Q3 (или, тем более, консольных изделий) не прыгнет, как ни натужится.

#19
15:16, 2 мая 2021

Panzerschrek[CN]
> На голом Си сейчас пишут или уж совсем упоротые ретрограды, или мазохисты, или
> недоучки
Ага, ядро .
Linux, FreeBSD, дрова и т.д. эти вещи пишут недоучки мазохисты?

#20
18:20, 2 мая 2021

cNoNim
> https://m.habr.com/ru/post/490222/
Поздравляю, ты нашёл одну из проблем в C++.
В Си такого нету, ибо там все типы до неприличия тупы. Но достоинство ли это?

innuendo
> да на - тот же ватком
Что-там было с кросс-платформенностью? Можно было собирать им код под NextSTEP, на которой Doom/Quake/QiakeII и разрабатывались?

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

Andrey
> Ага, ядро .
Опять же, писалось много лет тому назад. А сейчас в ядро вообще, Rust хотят протолкнуть.

#21
18:55, 2 мая 2021

Suslik
Большое спасибо за развернутый ответ.

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

Единственное я не придумал как можно связать несколько компонентов. Пример: у меня есть сложная система, в моем случае collision_system. мне нужно постоянно проходить по всем объектам так чтобы брать у них физический и позиционный компонент. Даже если данные распиханы по хеш-таблицам с доступом o(1). Мне все равно нужно будет каждый раз проходить по всем,  допустим, позиционным компонентам получать их ключ и брать физический компонент по этому ключу. Не проще будет сразу хранить указатели на нужные компоненты и получать их вместе?

Так же я понимаю что в высокопроизводительном коде списки это зло по определению. И разумнее хранить все данные в памяти рядом. В идеале хранить их так что бы даже условные массивы компонентов были в том порядке в котором они требуются в геймлупе. Почему-то я не сразу допер что можно реализовать динамические массивы и подпихивать в них компоненты которые сейчас нужно использовать и вырезать которые не нужно.

Благодарю за статью и репу. Обязательно прочту.

#22
(Правка: 19:18) 19:05, 2 мая 2021

Panzerschrek[CN]
Мне кажется, писать "Современном" C++ игры - плохая идея. Одно то что рекомендуется использовать повсеместно использовать умные указатели это сильно меня настораживает. Плюс в С++20, кажется, вообще отказались от сишных хедеров и тупо выпилили их из стандарта. Я к тому то С++ сейчас движется в сторону от максимальной производительности в угоду "безопасного" кода. Кто знает может через пару стандартов вообще выпелят new delete из-за того что маслята не справляются с тем что бы подчищать за собой память.
С Rust та же фигня. Он изначально позиционируется как язык на котором можно безопасно писать системные продукты. Но это скорее про базы данных и про ОС.

Я все таки убежден что самы передовой геймдев живет на хаках и небезопасных действия. Просто потому что. так можно сэкономить еще пару килобайт оперативки и добавить одну-другую тыщенку юнитов.))) Но вполне могу быть неправ. 

Однако могу согласится с тем что Си явно не подходит на роль языка для движков. Хорошо было бы получить мультипарадигмальный язык но не такой перегружены как С++ и при этом перекладывающий ответственность чисто на программиста. Что-нибудь похожее на С++99 но с лямдами и остальной прелестью современности.

#23
19:14, 2 мая 2021

NyakNyakProduction
По поводу С++ головного мозга это да. Сам пока не очень продуктивно пытаюсь побороть этот недуг.)))

#24
19:15, 2 мая 2021

localevil
> Я все таки убежден что самы передовой геймдев живет на хаках и небезопасных действия
Такое сейчас редко где надо. Разве что в каком-нибудь factorio. А в играх попроще хаки не нужны. Если же хаки всё-же нужны, то это бывает в редких местах, и там можно пренебречь правилами безопасности.

> Одно то что рекомендуется использовать повсеместно использовать умные указатели
> это сильно меня настораживает.
Покуда это unique_ptr - проблем с производительностью нету.

> вообще выпелят new delete
И правильно. Они не нужны, когда есть контейнеры и умные указатели.

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

#25
19:16, 2 мая 2021

gamedevfor
Если бы это был отделенный язык - да, согласен. Но как подмножество С++ я в принципе описал тут свои тревоги https://gamedev.ru/flame/forum/?id=260539&page=2&m=5381351#m22

#26
(Правка: 19:25) 19:25, 2 мая 2021

Panzerschrek[CN]

+ Показать

Мне пожалуйста шашечни.))
Я про то что сам синтаксис С++ перегружен. И вполне можно отрезать ненужное ( те же умные указатели, но это не точно). Выделить подмножество и развивать его в небезопасном ключе. Что бы это было и красиво и без магии (я считаю что в Си куда меньше "черной" магии которую тупо не невозможно понять если ты не знаешь ее чем С++).
Безопасность не нужна, я же про это сказал. Я бы выбрал простоту но с классами)))

#27
19:26, 2 мая 2021

localevil
> Кто знает может через пару стандартов вообще выпелят new delete
Не дай боже.
Panzerschrek[CN]
> И правильно. Они не нужны, когда есть контейнеры и умные указатели.
А контейнеры и умные указатели как внутри работают?

#28
(Правка: 19:31) 19:30, 2 мая 2021

prowkan

А контейнеры и умные указатели как внутри работают?

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

Да как вы это делает? Стрелка с серым тестом.

#29
(Правка: 19:38) 19:36, 2 мая 2021

Panzerschrek[CN]
Кстати я сейчас не говорю про игры по проще да и не про игры вообще наверное. Я скорее про технологии в играх и про передовые разработки. А тут как ни крути надо выдавливать все из железа.
А выдавить все из железа, так сказать, резиновым молотком вряд ли получится. 

Страницы: 1 2 3 438 Следующая »
ФлеймФорумПрограммирование