Dlaczego Rust nie nadaje się do GameDev?

Wątek przeniesiony 2024-07-26 14:50 z Rust przez Marooned.

4

@Programator_: Rust nadał się do wskrzeszenia Gamedevu :] https://ruffle.rs/

1

@Programator_: Według mnie może chodzić o dostępność bibliotek. Większość rozwiązań jest oparta na C++. Ten język jest dość mocno zakorzeniony w branży i minie mnóstwo czasu zanim zostanie zastąpiony przez coś innego. Poza tym korzyści jakie wynikają z zastosowania Rusta nie będą niwelować problemu z tworzeniem wielu rzeczy od nowa. Po prostu C++ jest sprawdzony i posiada wiele sprawdzonych rozwiązań, zaś użycie Rusta może być ryzykowne i kosztowne. Warto również dodać, że Rust jest znacznie mniej popularny od C++ i znacznie ciężej znaleźć programistów znających go. Dla większości producentów jest po prostu nieopłacalny.

Rust sam w sobie nie jest gorszy od C++, ale C++ jest bardziej popularny oraz jest wiele sprawdzonych technologii opartych na nim.

1

Uuuu, przez sugerowanie, że rust się do czegoś nie nadaje narażasz się na gniew rusto seksualnych wyznawów z reddita.

Czy naprawdę Rust 1.80 jest wolniejszy o 30% od C++?

W uśrednionych zastosowaniach ogólnych - nie. I rust i C++ możesz wyskalować by osiągnąć taki perf jaki potrzebujesz. Czasem koszt czasowy osiągnięcia pożądanej wydajności jest korzystniejszy dla C++ bo przez wiele lat dorobił się bibliotek, które przyspieszają sprawę, no i zawsze możesz sobie zejść do C.

0

Jest taka strona, gdzie są linki do bibliotek GameDev w Rust:
https://arewegameyet.rs/
choć nie wiem, na ile aktualna.

Według mnie może chodzić o dostępność bibliotek.

Myślę, że pod kątem samej dynamiki ekosystemu, to Rust to taki trochę jak JavaScript sprzed dziesięciu lat (porównuję dynamikę ekosystemu, a nie technologię!).

Ekosystem JS teraz się już ustabilizował mniej więcej, ale w JS też kiedyś wymyślali różne rzeczy, a potem wychodziły z mody i ciągle zostawały zastępowane. I nie było jednego standardu, a jak był, to był toporny (teraz w Rust zdaje się Bevy jest popularny, próbowałem coś w tym robić, ale dla mnie to strasznie ciężkie jest. Masę zależności, żeby zrobić HelloWorld).

A w Rust nawet jak jest modna biblioteka do gier/grafiki, to za kilka lat przestaje być modna/utrzymywana.

Dlaczego Rust nie nadaje się do GameDev?

Jak jesteś indie hobbystą, to wszystko się nadaje do GameDev, w czym ci się wygodnie pisze (chociaż Rust ma duży próg wejścia).

2
Spine napisał(a):

@Programator_: Rust nadał się do wskrzeszenia Gamedevu :] https://ruffle.rs/

nic wielkiego bo dawno jest coś takiego w javascript / typescript:
https://awayfl.org/
https://swf2js.com/en/
awayfl działa jakby płynniej i wygląda jakoś lepiej - jakby ruffle nie miało wygładzania krawędzi (testowałem side to side na pobranych z https://ruffle.rs/demo animacjach).
Zużycie procesora identyczne, zużycie pamięci 2x mniejsze na korzyść rusta - ruffle 115MB, awayfl 230MB

Programator_ napisał(a):

Czy naprawdę Rust 1.80 jest wolniejszy o 30% od C++? Macie jakiś rzetelny benchmark?

Wątpię, natomiast czy ma to jakiekolwiek znaczenie? Poza jakimiś symulacjami i może grami AAA gdzie wykorzystuje się możliwości sprzętu do końca to może ma ale większość gier ma minimalne zużycie CPU i większość się dzieje na GPU.
Pamiętam kilkadziesiąt lat temu jak się bawiłem w pascalu na komputerze z procesorem 16MHz który spokojnie płynnie ogarniał na ekranie 10000 jednostek (kropek) z jakąś tam prostą logiką.

2

ale większość gier ma minimalne zużycie CPU i większość się dzieje na GPU

Jeśli mówimy o high endowych gierkach AAA to zużycie CPU jak najbardziej ma znaczenie i UE jest właśnie krytykowany przez fakt, że nie potrafi w pełni wykorzystać obecnej technologii przez co łatwo nadziać się na czkawki w postaci spadków FPS albo brakujących klatek. Był to jeden z tematów gdy CDPR ogłosił że przechodzi na UE, bo ichniejszy RedEngine w Cyberpunk fantastycznie potrafił wykorzystać CPU i nie zamierzają wykorzystywać UE bez własnych modyfikacji właśnie z tego powodu.

ps. Screenshot z cyberpunku pokazujący jak że potrafi działać płynnie gdy ma dostepne tylko intelowe e-cores.

screenshot-20240808143808.png

https://x.com/CapFrameX/status/1705949917976445181


1

Popatrzcie też pod kątem ludzi, bo to raczej ważne. Prowadzicie firmę, zatrudniacie od lat wielu specjalistów. Wchodzi boom, rzucamy c++ na rzecz rusta, bo jest szybszy.

  • Programiści żeby się przestawić będą potrzebować z roku. Żeby wyspecjalizować w niuansach kolejnych paru lat.
  • Zatrudnić nowych, rustowych? To też problem. W gd rozwiązuje się specyficzne zagadnienia, czy to graficzne czy algorytmiczne.
  • Zrobić stop na rok? Raczej mało kogo na to stać.

Nawet łatwiejszy a trudny przypadek - piszę w c# więc mogę wskoczyć na hop do backendu stronek? No nie - nie znam się na bazach, zabezpieczeniach sieciowych, dockerach itd.

0

Chciałbym żeby Rust miał taką prostą składnię jak Hylo, Vale. Do tego Hylo skopiował bezpieczeństwo pamięci z Rusta tylko dodał do tego mniejszą i prostszą składnię.
https://docs.hylo-lang.org/language-tour/functions-and-methods
https://vale.dev/

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.