Autor Wątek: Czy uczyć się programowania w języku Lua?  (Przeczytany 1746 razy)

Offline Kafel

  • Użytkownik

# Wrzesień 04, 2017, 23:35:14
Czy w napisaniu gry (dopiero się uczę C++) przyda mi się znajomość Lua. Zamierzam pisać gry 3D FPS.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Sarann

  • Użytkownik

# Wrzesień 05, 2017, 00:21:59
Do samej gry C++ wystarczy.

Jeśli natomiast chcesz, by gra miała możliwości moddingu/modyfikacji przez graczy jej mechanik/itemów/potworków, to LUA jak najbardziej się przyda, bo jest to język skryptowy wykorzystywany głównie do tego.

Jeśli nie to raczej nie ma po co, chyba że dla wiedzy.

Offline Kafel

  • Użytkownik

# Wrzesień 05, 2017, 01:07:16
Cytuj
Jeśli natomiast chcesz, by gra miała możliwości moddingu/modyfikacji przez graczy jej mechanik/itemów/potworków, to LUA jak najbardziej się przyda, bo jest to język skryptowy wykorzystywany głównie do tego.

Chyba nie ma nic przyjemniejszego jak zobaczyć zmodyfikowaną własną grę ;) Przykład Painkiller.

Offline DanielMz25

  • Użytkownik

# Wrzesień 05, 2017, 10:21:09
Jeśli nie to raczej nie ma po co, chyba że dla wiedzy.

Nie no. Lua ma też inną bardzo fajną zaletę, tj. daje możliwość oskryptowywania elementów mapy, gdzie skrypt jest wczytywany razem z mapą, a więc nie musi być przebudowywany razem z kodem gry i nie jest w ogóle używany dopóki nie wczytamy mapy.
Co prawda można osiągnąć ten efekt też przez wczytywanie razem z mapą dynamicznych bibliotek, ale jednak skrypt wydaje się ciekawszym rozwiązaniem. Dynamiczne biblioteki byłoby trzeba budować oddzielnie dla różnych platform (chyba że jest coś o czym nie wiem, z chęcią zapoznałbym się z takim rozwiązaniem ) :)

Offline RootKiller

  • Użytkownik

  • +1
# Wrzesień 05, 2017, 12:57:42
Jak najbardziej LUA to język warty nauczenia, wiele silników korzysta/korzystało z niego. Wiele studii 2K Czech (Hangar 13), Volition etc korzystają z LUA do programowania gameplayu w wiekszych tytułach nawet jeśli nie będziesz używał tego konkretnego języka warto mieć jakąkolwiek styczność z nim.

@DanielMz25 - zawsze możesz zaimplementować np. clang'a do swojego silnika i kompilować C++'owe skrypty przy wczytaniu levela :D

Offline wezu

  • Użytkownik

# Wrzesień 05, 2017, 13:36:12
Lua to prosty język, znając jakiś inny język wystatczy tydzień na opanowanie Lua. Czy warto uczyć się Lua 'na zapas'? Nie, lepiej poświęcić miesiąc na Pythona czy Ruby, bo oba te języki dają więcej opcji, a nie są wiele trudniejsze. Czy warto uczyć się Lua gdy potrzebny jest jakiś język skryptowy? TAK! Czy w gamedevie będzie ci potrzebny jakiś język skryptowu? Tak (chyba, że piszesz w Pythonie).

Offline Sarann

  • Użytkownik

# Wrzesień 05, 2017, 15:59:35
Lua jest stanowczo lepszym językiem od Pythona.
Jest wiele szybsze, a takze wygrywa z Pythonem pod względem sandboxingu, którego praktycznie w nim nie ma.

@Daniel o tym nie pomyślałem, ciekawe.

Offline wezu

  • Użytkownik

# Wrzesień 05, 2017, 17:47:55
Eh, no i mam za swoje. Z góry mówię, że nie będę już w tym temacie odpisywać bo wyjdzie z tego jeszcze jedna woja religijna o wyższości X nad Y...
Lua jest stanowczo lepszym językiem od Pythona.
Jest wiele szybsze, a takze wygrywa z Pythonem pod względem sandboxingu, którego praktycznie w nim nie ma.

Jako język skryptowy to tak. Lua jest szybsze, mniejsze, łatwiejsze, ale Python jest językiem ogólnego przeznaczenia i jak nie wyjdzie w gamedevie to ze znajmomością Lua można ... em sam nie wiem co, coś na pewno, a ze znajomością Pythona możesz wszystko, od BigData z Pandas po serwisy webowe z Django.   

Offline ekhart

  • Użytkownik
    • ekhart.pl

# Wrzesień 05, 2017, 18:17:44
Gwoździe można wbijać nawet nożem. Ale zdecydowanie lepiej do tego nadaje się wziąć młotek.
To problem decyduje o tym, które narzędzie (rozwiązanie) jest lepsze w danej sytuacji, a nie narzędzie samo w sobie.
Choose wisely your tools. ;)

Offline matheavyk

  • Użytkownik
    • rabagames.com

  • +2
# Wrzesień 05, 2017, 20:47:32
@wezu
A ja od, można powiedzieć, półtora roku utrzymuję się z gamedevu i nie użyłem jeszcze żadnego języka skryptowego (w celu zarobkowym) przez ten czas. Może chcesz taką wojnę przeprowadzić: nie ucz się żadnego języka skryptowego! :D

Żeby było ciekawiej, to C++ też nie używam, więc w sumie jesteśmy w "tej samej branży" z OP, a nie potrzebne mi nic, czego chce się on uczyć.

Oczywiście, to wszystko są tylko żarty, ale nauka z nich płynie - uczyć się programowania, a nie języka. Ja miałem akurat styczność z wieloma językami i mogę zacząć prawie od zaraz programować w dowolnym, nowym języku, jeśli będzie trzeba. Przeciwieństwem tego byłaby wąska specjalizacja, która zapewne przyniosłaby szybsze efekty i zrobiłaby z kogoś lepszego eksperta w danym temacie oraz prawdopodobnie przełożyłaby się szybko na pieniążki. Wszystko ma swoje plusy i minusy (uczenie się Lua "na zapas" też ma plusy), ale która droga będzie najlepsza - ciężko powiedzieć. Najważniejsze, co chcę powiedzieć, to to, żeby ostrożnie podchodzić do opinii osób, które jednoznacznie i bez wahania zalecają konkretny i jedyny słuszny język do nauki.

Najgorsze, że w tym temacie można się rozwodzić i rozwodzić... ale podsunę jeszcze jedną myśl a propos gier 3D FPS. Taka gra: https://play.google.com/store/apps/details?id=com.blayzegames.iosfps&hl=pl
Ma od 5 do 10 milionów ściągnięć, jest grą 3D FPS (nawet multiplayer) i jestem przekonany, że nie używa języka skryptowego. Chyba, że skryptowym nazwać C# ;)

Offline kubera

  • Użytkownik
    • Prywatna strona

# Wrzesień 05, 2017, 22:23:08
Luźna uwaga. Ja się zastanawiam nad PowerShellem. Szczerze mówiąc, to nie znam API, ale PS wykona różne ciekawe rzeczy, tylko pytanie, czy interfejs umożliwi współpracę.

Offline kubera

  • Użytkownik
    • Prywatna strona

# Wrzesień 05, 2017, 22:32:20
C++ i skrypty? A nie Unreal i Blueprint?

Offline Sarann

  • Użytkownik

# Wrzesień 06, 2017, 01:47:35
Mam nadzieję, że nie dostanę za mocno gdy to powiem.

Prawdziwi programiści piszą własne silniki, a nie używają jakichś unrealów, w których można co najwyżej szybko zrobić kiepskiej wydajności (bo co jest do wszystkiego, to jest do niczego) grę lub aplikację (pamiętacie te ostatnie tekstówki w Unity czy tam Unrealu? :)).

Moi drodzy, nie namawiajcie nigdy nikogo do silników, lepiej żeby sami się nauczyli je pisać.
Mam nadzieję, że nie jestem ostatnim (a zarazem całkiem młodym) wyznawcą tej ścieżki.

Offline ekhart

  • Użytkownik
    • ekhart.pl

  • +3
# Wrzesień 06, 2017, 02:02:42
"Prawdziwi programiści" ;p nie optymalizują przedwcześnie.
Po co pisać kolejny silnik do słabej gry, jeśli można najpierw przetestować pomysł przez szybki prototyp w istniejących rozwiązaniach?

Offline Sarann

  • Użytkownik

# Wrzesień 06, 2017, 03:28:41
Co do tego optymalizowania przedwcześnie, to czasem jednak warto :D
Szczególnie wtedy, gdy nie możesz nawet przetestować prototypu, bo chodzi w jednej klatce na sekundę i mimo wszystko potrzeba optymalizacji.