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

Offline matheavyk

  • Użytkownik
    • rabagames.com

  • +2
# 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!

Offline Mr. Spam

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

Offline Xion

  • Redaktor
    • xion.log

  • +4
# 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ę :)

Offline DezerteR

  • Użytkownik

  • +2
# 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.

Offline ekhart

  • Użytkownik
    • ekhart.pl

  • +1
# 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. ;)

Offline P@tyS

  • Użytkownik
    • Patys coding

  • +3
# 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.

Offline hashedone

  • Użytkownik

  • +2
# 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 ;)

Offline Sarann

  • Użytkownik

# 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

Offline DezerteR

  • Użytkownik

  • +2
# Wrzesień 08, 2017, 16:49:21
No dobra, ale trzeba odróznić rozsądny design od premature optimisation.

Offline hashedone

  • Użytkownik

  • +1
# 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.

Offline Sarann

  • Użytkownik

# Wrzesień 11, 2017, 12:00:37
Możliwe, lecz mówimy w tym momencie o przedwczesnych optymalizacjach. Nie o homemade engine vs ready engine.

Offline DezerteR

  • Użytkownik

  • +1
# 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.

Offline ekhart

  • Użytkownik
    • ekhart.pl

# 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

Offline Sarann

  • Użytkownik

# 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 :)

Offline laggyluk

  • Użytkownik
    • http://laggyluk.com

# 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

Offline Dab

  • Redaktor
    • blog

# 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