Jak dodać grafikę do gry oraz poruszanie się postaci?

projektowanie-gier
gry

#1

Witam mam pytanie. Jak dodaje się grafikę (interesuje mnie 3D) do gry oraz poruszanie się tych postaci?

P.S. Zna ktoś szybki sposób na naukę html i css oraz c++?


#2
  1. Wykorzystujesz silnik gry, np. Unity, i robisz to tak jak umożliwia to dany silnik.

  2. Kursy - obojętnie jakie, bo chodzi o złapanie podstaw. Potem książki i bardziej zaawansowane kursy. Często ludzie polecają bootcampy, czyli takie intensywne kilkudniowe kursy. No i ćwiczyć, czyli pisać.

  • poza językiem wypada ogarnąć “zagadnienia poboczne” - architektura, wzorce, protokoły sieciowe… tak w dłuższej perspektywie. Najważniejsze to zacząć, a najlepiej zacząć od jakiegoś kursu, a tych w Internecie można znaleźć całkiem sporo.

#3

Dzięki za pomoc :slight_smile:


#4

Grafika polega na wczytaniu modelu wykonanego w jakimś programie graficznym do silnika.
Gotowe silniki mają sklepy z modelami i mogą zaimportować plik graficzny z poziomu edytora.
We własnym silniku trzeba samemu napisać kod który taki model wczyta do czegoś co będzie można potem przekazać do biblioteki od grafiki.
Żeby geometria dobrze wyglądała trzeba też nałożyć na nią tekstury i dobrze skonfigurować oświetlenie sceny.
Jeśli model ma się animować dochodzi jeszcze rigowanie czyli przypisanie geometrii do szkieletu który będzie się animował. I potem same animacje czyli opis jak mają się przemieszczać kości w czasie.
Generlanie gruby temat.
Ale jak chcesz wstawić model na scenę np w edytorze unity 3d to znajdujesz darmowy model na asset store, dodjesz do projektu, przeciągasz z assetów na scenę i działa.
Ale jest masa konfiguracji i na każdym etapie dużo się dzieje.

Poruszanie się postaci wymaga jakiejś fizyki. Wyróżniłbym 3 katgorie:

  • turbo prosta, np podłoga to płaszczyzna Y = 0 itp.
    mało elastyczne ale do niektórych gier wystarczy
  • prosta symulacja - korzysta z silnika fizycznego
    ale głównie po to żeby sprawdzać ręcznie czy coś jest pod nogami gracza
  • symulacja fizyczna - różne bryły symulują się, z grawitacją, ślizganiem się, odbijaniem itd
    daje fajne efekty interakcji ze światem ale trudno to kontrolować

Gracz zwykle ma prostą bryłę która przybliża jego model ale zachowuje się bardziej przewidywalnie.
Najczęściej równoległobok, walec albo kapsułkę (walec z doklejonymi półsferami na końcach)
Gra wczytuje stan klawiatury i w zależności od klawiszy i czasu który upłynął od ostantiej klatki przesuwa gracza. Silnik fizyczny albo ify dbają o to żeby gracz nie właził w ściany ani w podłogę.
Żeby gracz wchodził pod górę, zsuwał się w dół, nie blokował jak teren nie jest idealnie płaski, skakał itd zwykle trzeba dopisać jakiś własny kod który przesuwa go dodatkowo góra dół,
np podnieś, przesuń, opuść.
W każdej grze kod będzie inny,

Nauka nie będzie szybka, html + css to są technologie do stronek internetowych
Najlepiej się ich uczyć robiąc strony internetowe.
C++ do dość niskopoziomowego kodu
W zależności od tego co w tym C++ będziesz pisać to będziesz musiał umieć co innego
Podstawy C++, C# i Javy są bardzo podobne więc dowolny z tych języków pozwoli załapać podstawy
Różne biblioteki i zastosowania będą kompletnie inne więc w każdej dziedzinie zrobienie czegoś konkretnego będzie wymagać znajomości innych narzędzi, bibliotek i innej domeny

Poprzeglądać różne tutoriale, zrobić samemu to co pokazują na tutorialu
Jak już się trochę ogranie wybrać jakiś projekt szkoleniowy i popytać w jakiej technologii go zrobić
Najlepiej rozszerzyć coś czego podstawy były wcześniej w tutorialu
Tak czy siak szybko nie będzie, ale jest sporo różnych materiałów


#5

Bardzo fajna odpowiedź, dziękuję. A mam pytanie czy Java i JavaScript to to samo?


#6

Lol nope, tylko nazwy mają podobne

Java to taki wariant C++ tylko interpretowany i troche bardziej abstrakcyjny a mniej niskopoziomowy
Ma interpreter a nie kod maszynowy i ma domyślnie garbage collector,
w c++ w końcu chyba dodali jako opcję ale domyślnie samemu trzeba sprzątać
Java jest popularna głównie w aplikacjach biznesowych zwłaszcza większych
Firma Sun zaczęła go w 1991jako bardziej przenośny niż C++,
koło 2009–10 Oracle kupiło Suna i w konsekwencji Javę
Oracle to duże korpo biznesowe, ale jest troche społeczności która rozwija Javę w też w innych kierunkach

JavaScript zwany też EcmaScriptem to język dynamiczny używany w przeglądarkach
Jest trochę projektów pisania w nim aplikacji nie webowych głównie na bazie projektu node.js
W nazwie ma Javę tylko dlatego że Java była popularna więc podszyli się pod nią
Jak Netscape projektował język do swojej przeglądarki w 1993, od tamtego czasu
język się przyjął i jest głównym językiem obsługiwanym we wszystkich przeglądarkach
dla stron internetowych
Ma troche syfnych konwencji jak np trudne do zrozumienia automatyczne konwersje typów
I na początku przeglądarki miały masę własnych niekompatybilnych rozszerzeń
Ale i tak nie było nic lepszego i teraz jest standardem dla stron internetowych
(i sporo się poprawił odkąd google weszło z chrome i pokazało jak go lepiej obsłużyć)
Jak chcesz robić coś większego w JS warto zainteresować się TypeScriptem
To “rozszerzenie” Javascriptu które dodaje sprawdzanie typów obiektów


#7

Dzięki, pomogłeś bardzo.


#8

Powodzenia na gamedevowym szlaku =).


#9

wstęp do 3D w HTML5 https://www.basedesign.com/blog/how-to-render-3d-in-2d-canvas