Skocz do zawartości

Kurs matematyki na forbocie – propozycje tematów


qwerty2021

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

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

@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
Link do komentarza
Share on other sites

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 😞

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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)

Link do komentarza
Share on other sites

@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
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.