Skocz do zawartości

Kurs matematyki na forbocie – propozycje tematów


Pomocna odpowiedź

@H1M4W4R1 może nie pracowałem w twojej branży zawodowo, ale amatorsko pisałem programy w grafice i przerobiłem od deski do deski kurs OpenGL, który serdecznie polecam 🙂 

Szczerze jest tam sporo matmy. W zaawansowanym game devie pewnie to są tylko narzędzia (niewiem, nie znam się), ale działasz najpewniej na wektorach ale samo to wymaga matmy.

Prosta operacja "dot product", którą wielokrotnie używałem pisząc shadery, przydaje się też w uczeniu sztucznych sieci neuronowych, badaniu korelacji sygnałów, itp.

W kontekście gier i grafiki tematy jakie potrzebowałem to m.in:

  • operacje na wektorach i macierzach, przekształcenia afiniczne,
  • rożne odwzorowania układów współrzędnych,
  • funkcje liniowe i interpolacja,
  • podstawy fizyki: kinematyka, rozkład sił, pole jednorodne i centralne (symulacja przyciągania).

Do tego pojawiają się algorytmy. Oczywiście zależy co robisz. Jak gość z tutoriala pokazywał jak samemu zaimplementować kolizje z terenem, to omawiał współrzędne barycentryczne? czy jakoś tak... implementacja dźwięku przestrzennego - fizyka się kłania, dźwięk zanika kwadratowo, przestrzeń zmienia się logarytmicznie... matmy jest sporo 😕 

Oczywiście da się tego uniknąć. Ostatnio czytałem o tym, że w pythonie da się pisać supewydajne programy porównywalne z odpowiednikami w C... pod warunkiem, że unikasz składni pythona 🙂 więc jeżeli weźmiesz pakiet numpy i będziesz żonglował funkcjami to nawet nie ma tam miejsca na matmę. To już jest jednak programowanie wysokopoziomowe

1 minutę temu, ethanak napisał:

void main(int argc, char *argv[]) { game *game=make_game(random()); save_game(game, argv[1]); }

no bez przesady... 

Po prostu większość rzeczy matematycznych jest robiona przez biblioteki silnika gry i jedyne czym się przejmujesz to

  1.  dodaj wielokąty
  2. wykonaj komendę z dokumentacji, która weryfikuje czy na siebie nachodzą 
1 minutę temu, Gieneq napisał:

W kontekście gier i grafiki tematy jakie potrzebowałem to m.in:

  • operacje na wektorach i macierzach, przekształcenia afiniczne,
  • rożne odwzorowania układów współrzędnych,
  • funkcje liniowe i interpolacja,
  • podstawy fizyki: kinematyka, rozkład sił, pole jednorodne i centralne (symulacja przyciągania).

Do tego pojawiają się algorytmy. Oczywiście zależy co robisz. Jak gość z tutoriala pokazywał jak samemu zaimplementować kolizje z terenem, to omawiał współrzędne barycentryczne? czy jakoś tak... implementacja dźwięku przestrzennego - fizyka się kłania, dźwięk zanika kwadratowo, przestrzeń zmienia się logarytmicznie... matmy jest sporo 😕 

Oczywiście da się tego uniknąć. Ostatnio czytałem o tym, że w pythonie da się pisać supewydajne programy porównywalne z odpowiednikami w C... pod warunkiem, że unikasz składni pythona 🙂 więc jeżeli weźmiesz pakiet numpy i będziesz żonglował funkcjami to nawet nie ma tam miejsca na matmę. To już jest jednak programowanie wysokopoziomowe

Praktycznie to wszystko robi silnik. Obecnie praktycznie żadna gra nie jest tworzona na niskim poziomie, bo średni czas na zaprojektowanie gry mobilnej od zera do wypuszczenia reklamy to ok. 3-4 dni robocze. Na niskim poziomie trwałoby to wieki, dlatego stosuje się programowanie wysokopoziomowe (czasami wspomagając się "średnim" poziomem - np. język IL).

Potrzebujesz dźwięku - dodajesz źródło dźwięku, ustawiasz parametry, gotowe. Potrzebujesz kolizji, dodajesz do obiektu skrypt "Rigidbody", ustalasz masę, gotowe... Teraz nie ma czasu na zabawę w algorytmy, bo inaczej wypadasz z branży, albo ktoś sprząta ci fajny pomysł sprzed nosa.

(edytowany)

@H1M4W4R1 domyślam się, że nie trwa to tyle. Gość z tego kanału pisał 3 gry: pierwsza po 2 latach do kosza - przekombinowana, nie znał się, nieciekawa. Druga po chyba 3 latach pisania trafiła na Steama i coś tam zarabia - sam kupiłem, żeby wesprzeć gościa za świetny content. Teraz robi 3 grę... ETA: 3 lata.

Oczywiście projekt zaczynał od narysowania trójkąta w przestrzeni, ale już przy 3 projekcie nabudował silnik który zrobił przy 2, więc można powiedzieć, że kiedyś fizyka się kończy a zaczyna się silnik.

Choć i tak jestem zdania, że no macierz perspektywy to chyba trzeba umieć napisać, nawet obudzonym w środku nocy 😄 

Edytowano przez Gieneq
3 minuty temu, H1M4W4R1 napisał:

średni czas na zaprojektowanie gry mobilnej od zera do wypuszczenia reklamy to ok. 3-4 dni robocze.

No tak, a ja swoją Milenę pisałem sześć lat... ale ja muszę być niekumaty 😞

 

Przed chwilą, Gieneq napisał:

domyślam się, że nie trwa to tyle. Gość z tego kanału pisał 3 gry: pierwsza po 2 latach do kosza - przekombinowana, nie znał się, nieciekawa. Druga po chyba 3 latach pisania trafiła na Steama i coś tam zarabia - sam kupiłem, żeby wesprzeć gościa za świetny content. Teraz robi 3 grę... ETA: 3 lata.

Oczywiście projekt zaczynał od narysowania trójkąta w przestrzeni, ale już przy 3 projekcie nabudował silnik który zrobił przy 2, więc można powiedzieć, że kiedyś fizyka się kończy a zaczyna się silnik.

Średnio z opóźnieniami wychodzi tydzień do dwóch... (MVP) i do miesiąca (pełnoprawna gra mobilna)

Przykład:

image.thumb.png.680eb7eecc5d4b4eab4b22cfb9d74560.png

Patrz CrossWords - od 7 do 10 czerwca. Bomberman miał opóźnienie, bo grafik z zespołu miał urlop... Jak zawsze ci graficy się obijają i tworzą opóźnienia...

4 minuty temu, ethanak napisał:

No tak, a ja swoją Milenę pisałem sześć lat... ale ja muszę być niekumaty 😞

Ale porównaj sobie jej jakość z jakością kodu w typowej grze mobilnej 😛 (zwłaszcza wydajności)

@H1M4W4R1 nie mam jak porównać - gdybym miał do dyspozycji funkcję z jakiegoś silnika typu "is_verb(const char *word, int *stress)" to bym się nie zastanawiał tylko zastosował.

Tylko skąd wytrzasnąć taki silnik 😞

 

 

(edytowany)

@qwerty2021 na komputerze w sumie to nie wychodzisz poza podstawowe operacje, bo komputer nie umie tych innych. Nie wiem czy wie co to sinus, raczej nie, ale wie co to szereg Taylora i nim rozwiązuje przybliżenia funkcji. Co do filtru Kalmana to tam jedyna trudność to operacje macierzowe, które są powtarzalnym dodawaniem i mnożenie. Na forbocie jest kilka artykułów, ale fakt mogą być dość trudne dla początkujących więc można wziać to pod uwagę.

Edytowano przez Gieneq

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...