Warsztat.GD

Programowanie => Szkółka => Wątek zaczęty przez: Kafel w Wrzesień 04, 2017, 23:35:14

Tytuł: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Kafel w Wrzesień 04, 2017, 23:35:14
Czy w napisaniu gry (dopiero się uczę C++) przyda mi się znajomość Lua. Zamierzam pisać gry 3D FPS.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w 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.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Kafel w 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.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: DanielMz25 w 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 ) :)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: RootKiller w 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
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: wezu w 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).
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w 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.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: wezu w 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.   
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: ekhart w 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. ;)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: matheavyk w 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# ;)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: kubera w 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ę.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: kubera w Wrzesień 05, 2017, 22:32:20
C++ i skrypty? A nie Unreal i Blueprint?
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w 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.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: ekhart w Wrzesień 06, 2017, 02:02:42
"Prawdziwi programiści" (https://xkcd.com/378/) ;p nie optymalizują przedwcześnie (http://wiki.c2.com/?PrematureOptimization).
Po co pisać kolejny silnik do słabej gry, jeśli można najpierw przetestować pomysł przez szybki prototyp w istniejących rozwiązaniach?
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w 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.

Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: matheavyk w Wrzesień 06, 2017, 17:57:41
Po co pisać kolejny silnik do słabej gry, jeśli można najpierw przetestować pomysł przez szybki prototyp w istniejących rozwiązaniach?

To pytanie jest błędne, bo zakładasz wiele rzeczy m.in., że ktoś chce pisać grę, że komuś zależy na efekcie końcowym itp. Niektórzy chcą się nauczyć programować, bo lubią to robić w wolnym czasie (http://www.gamedev.pl/forum/blitzbasic-i-inne--jest-sens#108202). Inni chcą szybko zarobić na byle czym, a uważają że potrafią stworzyć grę. Jedni lubią robić dużo małych gier, inni lubią całe życie rozwijać jedną (https://warsztat.gd/screen/17300/fame_0.9.14). Ktoś nie znosi składni Pythona, ktoś źle się czuje w C#, bo ma garbage collectora.

Uważam, że Sarann ma rację, ale tylko w odniesieniu do własnej osoby. Bycie "true" wydaje się spoko dla ludzi, którzy albo są młodzi, albo nie zajmują się profesjonalnie (i poważnie) zarabianiem na programowaniu. Potem okazuje się, że oprócz bycia prawdziwym programistą przyjemność sprawiają też inne rzeczy np. wydanie własnej, nawet małej, gry na google play, bycie specjalistą od wordpressa, któremu koledzy w pracy są wdzięczni, bo nie muszą się martwić o to, kto zrobi landing page następnej produkcji, umiejętność szybkiego postawienia serwera na azure z własnym kodem, ustawienie światła na scenie w Unity3D w dobry sposób, żeby prasa zainteresowała się screenem z naszej gry. To wszystko są bardzo różne umiejętności i nie odważę się podać uniwersalnej rady dla każdego początkującego.

Interesuje cię pokazanie mamie gry, w której ona będzie bohaterką, a jej model chcesz zrobić techniką fotogrametrii, o której słyszałeś? I dać jej taką grę na dzień matki, a nie umiesz robić gier? Powiem jedno (słuchaj Sarann :P) - NIE PISZ WŁASNEGO SILNIKA!
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Xion w Wrzesień 06, 2017, 18:20:15
Cytuj
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
Wow! Myślałem że pokolenie silnokologów wymarło już parę lat temu, ale widzę że niektórzy nowi bywalcy dzielnie zasilają tę starożytną frakcję :)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: DezerteR w Wrzesień 06, 2017, 20:15:08
Ja też siedzę i dłubię, ale raczej żeby zobaczyć ile potrafię zrobić bo na wydawaniu gier mi nie zależy. Taki projekt to fajny sposób na nauczenie sie kilku rzeczy, bo jeśli miłbym robić gry na powaznie to jednak wybrałbym unreala.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: ekhart w Wrzesień 06, 2017, 22:17:43
Jasne, że wszystko zależy od celu jaki sobie postawimy. Istotne jest ustalenie celu i zmierzanie ku niemu, a nie chodzenie na około.
Chciałem jedynie zauważyć to, że nie ma czegoś takiego jak prawdziwy programista. Albo się nim jest (programuję) albo nie. Programista silnika jest takim samym programistą co gameplay'u. Nie dzielmy ludzi na lepszych i gorszych. ;)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: P@tyS w Wrzesień 07, 2017, 11:10:00
Hej,
A jak dla mnie to fajnie się tego razem używa. Zanim się człowiek nauczy to postawić razem, połączyć w kodzie itd. to serio można się dużo dowiedzieć. Za pierwszym razem nie jest łatwo, ale dla samej satysfakcji warto spróbować.

Sam kiedyś robiłem sobie taki 'silnik' żeby 'szybciej' robić gry :) Jest to świetna zabawa, sporo uczy i można poeksperymentować sobie z design patternami bo się idealnie wpisują w to, np command albo factory. Może już nie chodzi tutaj o samo lua i c++, bo każda podobna kombinacja byłaby spoko, ale jeśli zrobi się to dobrze, czyli z designami, patternami itd, to później ma się w swoim portfolio perełkę.

Jak dla mnie rób, jak nie masz doświadczenia na 3d to leć w 2d i zrób shottera z góry. Oskryptuj przeciwników i wybuchające skrzynki. Spróbuj dodać jakieś dialogi. Postaraj się to zrobić tak na tip top, nawet jeśli uznasz że to marnowanie czasu bo możesz napisać to po swojemu. Commituj każdy kod tak jakby ktoś ciągle Ci go sprawdzał (albo znajdź taką osobę jak masz możliwość).

W końcu programowanie to nie język a umiejętność, znajdź coś co Ci podpasuje. Jak jest to C++ i lua to leć w to. Później jak będzie trzeba to umiejętności zostaną, a po prostu będziesz pisał zamiast 'if() {}' to 'if ... then ...' Sama zmiana nie wpłynie na to, że nagle przestaniesz umieć programować. Raczej wypadnie na plus, bo nauczysz się nowych rozwiązań, które tam są.

Podsumowując:
Łap klawiaturę. Bierz co uważasz za słuszne. Na początek wszystko takie będzie, a później sam będziesz chciał zmienić język na inny :) Ściągaj biblioteki itd. Ucz się i programuj. Poczytaj i poszukaj, jest cała masa materiałów.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: hashedone w Wrzesień 08, 2017, 12:25:58
Mam nadzieję, że nie jestem ostatnim (a zarazem całkiem młodym) wyznawcą tej ścieżki.
Pewnie nie ostatnim, wynajdowanie koła na nowo jest typową filozofią młodych programistów, doświadczenie skutecznie z tego leczy.

Cytuj
Szczególnie wtedy, gdy nie możesz nawet przetestować prototypu, bo chodzi w jednej klatce na sekundę i mimo wszystko potrzeba optymalizacji.
To jest usecase czy gdybanie?

Prawdziwi programiści wiedzą, że albo pisze się silniki, albo gry ;)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w Wrzesień 08, 2017, 13:36:37
Spróbuj operować na planszy miliardem voxeli naiwnym sposobem, to zobaczysz że nawet tego FPSa jednego nie będziesz miał w usecase :D
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: DezerteR w Wrzesień 08, 2017, 16:49:21
No dobra, ale trzeba odróznić rozsądny design od premature optimisation.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: hashedone w Wrzesień 11, 2017, 11:23:14
To nie jest żaden usecase. Każdy rozsądny silnik umie to rozsądnie wyrenderować. Powiedziałbym nawet, że to antyprzykład - używając gotowego silnika masz za darmo sensowny performance, robiąc to samemu "bo zrobię wydajniej", "będę mógł optymalizować" męczysz się dniami żeby samemu zaimplementować octree a na końcu się okazuje, że i tak jesteś mniej wydajny od Unity bo twoje struktury nie przewidziały czegoś. Tak więc kolejne lata optymalizujesz wyświetlanie cuba z teksturą, a Twój kolega w tym czasie już piszę trzecia grę, bazując na bogatym doświadczeniu z dwóch poprzednich.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w Wrzesień 11, 2017, 12:00:37
Możliwe, lecz mówimy w tym momencie o przedwczesnych optymalizacjach. Nie o homemade engine vs ready engine.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: DezerteR w Wrzesień 11, 2017, 12:41:35
Ale 'no premature optimizations' nie zakłada że masz wszystko pisać buteforcem. To powstało po to żeby nie marnować czasu na rzeczy które będą wołane tak rzadko że nie mają wpływu na performance, a rozwala się przez nie cały kod. W normalnej pracy zanim zaczniesz pisać to poświęcasz chwilę czasu na zlokalizowanie wąskich gardeł i wyeliminowanie ich przez zaprojektowanie kodu tak żeby działał dobrze od początku.

Czasem zrobienie czegoś porządnie będzie prostsze, szybsze(w developmencie) i bardziej przyszłościowe.
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: ekhart w Wrzesień 11, 2017, 21:57:03
Real life example: nawet Wiedźmin nie powstawał na własnym silniku tylko zapożyczonym (i to nie jedyny zresztą przykład). Na szczęście nikt nie wpadł na genialny pomysł, aby zacząć tworzyć go od pisania silnika. Bo i do dzisiaj byśmy się nie doczekali na premierę nawet pierwszej części :P
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w Wrzesień 11, 2017, 22:02:01
Real life example: nawet Wiedźmin nie powstawał na własnym silniku tylko zapożyczonym (i to nie jedyny zresztą przykład). Na szczęście nikt nie wpadł na genialny pomysł, aby zacząć tworzyć go od pisania silnika. Bo i do dzisiaj byśmy się nie doczekali na premierę nawet pierwszej części :P
Tego nie byłbym taki pewien, aż tak długo silników się nie tworzy :)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: laggyluk w Wrzesień 11, 2017, 22:02:35
Real life example: nawet Wiedźmin nie powstawał na własnym silniku tylko zapożyczonym (i to nie jedyny zresztą przykład). Na szczęście nikt nie wpadł na genialny pomysł, aby zacząć tworzyć go od pisania silnika. Bo i do dzisiaj byśmy się nie doczekali na premierę nawet pierwszej części :P
z tego co kojarzę to pierwsze demo-podejście było na autorskim silniku a dopiero jak się okazało że dalej nie da rady to wypożyczyli tech od bioware
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Dab w Wrzesień 11, 2017, 23:13:36
Jeżeli ktoś szuka dobrego języka skryptowego do gry to mocno polecam mruby zamiast lua.

https://github.com/dabroz/mruby-simple-game-engine/blob/master/slides/GIC2016.pdf
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: laggyluk w Wrzesień 12, 2017, 00:40:16
Jeżeli ktoś szuka dobrego języka skryptowego do gry to mocno polecam mruby zamiast lua.

https://github.com/dabroz/mruby-simple-game-engine/blob/master/slides/GIC2016.pdf
nie żebym był fanem skryptowania w C++ ale żeś go tam wykreślił na slajdzie jako nie hot-swapowalny a unreal to umie
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: Sarann w Wrzesień 12, 2017, 02:37:10
Zgaduję, że w locie zamienia C++ na jakiś język skryptowy?
No, ale Unreal to nie język :)
Tytuł: Odp: Czy uczyć się programowania w języku Lua?
Wiadomość wysłana przez: laggyluk w Wrzesień 12, 2017, 07:47:11
Zamienia dll z kodem bez restartowania edytora.
Jezeli mowimy o zamianie bez 'zatrzymywania gry' tego chyba faktycznie nie umie