Gamedev
W kolejności chronologicznej.
Podseria | Odcinek | Opis |
---|---|---|
Wstęp | #1 Konfiguracja środowiska | Coś dla bardzo początkujących - wyjaśnienie z jakiej konfiguracji środowiska korzystam w dalszych odcinkach, a także szybki kurs instalacji MinGW GCC oraz potrzebnych bibliotek. |
Wstęp | #2 Mini framework | Opis mojego mini-framworku od środka, czyli na poziomie kodu. |
Sokoban | #1 Wstęp, grafika, mapa | Przygotowanie grafiki, mapy opartej na tile'ach (kafelkach) oraz Makefile. |
Sokoban | #2 Wczytanie i rysowanie mapy | Zdefiniowanie struktury mapy, napisanie prostego parsera oraz renderingu tile-mapy. |
Sokoban | #3 Gracz i kamienie | Zdefiniowanie struktury gracza i kamieni + napisanie renderingu. |
Sokoban | #4 Sterowanie i logika | Implementacja sterowania oraz podstawowej logiki gry. |
Magus | Magus Ex Machina | Krótkie demo gry Magus Ex Machina, stworzonej przeze mnie i Mateusza "j00ru" Jurczyka. |
Magus | Wasze pytania do podcastu o Magus... | Prośba o pytania do planowanego nagrania o Magus Ex Machina. |
Sokoban | #5 Ukończenie levelu i gry | Doimplementowanie brakującej logiki - warunek przejścia planszy oraz gry + ładowanie kolejnych plansz. |
Sokoban | Problemy #1 | Jak skompilować Sokoban pod Visual C++? Jak zrobić, żeby exek stworzony przez najnowszego MinGW GCC nie wymagał libgcc_s.dll do działania? Etc. |
Sokoban | #6 Płynny ruch | Zmiana modelu ruchu gracza ze skokowego na płynny poprzez dodanie ultra-prostej animacji ruchu na key-frame'ach. |
Materiały dodatkowe
Mini-framework z którego korzystam + linki do potrzebnych bilbliotek:
- Mini-framework v.1: game.cpp
- SDL 1.2: click
- SDL_image: click
- SDL_mixer: click
- + link do MinGW GCC: click
Sokoban:
- Pakiet z grafiką: gfx_sokoban.zip
- Kod z poszczególnych odcinków + zrzut z tablicy: click
Instalacja nagłówków/libów do OpenGL i innych libów pod systemami z rodziny Debian/Ubuntu:
- GL/gl.h i GL/glu.h (jeśli ich nie ma): sudo apt-get install mesa-common-dev libglu1-mesa-dev
- SDL, SDL_image, SDL_mixer: sudo apt-get install libsdl1.2-dev libsdl-mixer1.2-dev libsdl-image1.2-dev
Zachęcam również do rzucenia okiem na odcinek o Maszynach Wirtualnych z serii FAQ.
Comments:
Przerobiony kod pod tym adresem: http://pastebin.com/7sp8LGUV
Dodane możliwości przybliżenia i oddalenia kamery (klawisze -, +), oraz zmiany kąta (PG_UP, PG_DOWN).
Od razu przepraszam za chaos, ale kod nie doczekał się oczyszczenia. Były to eksperymenty, więc gdy tylko coś zaczęło działać, był to satysfakcjonujący stan rzeczy :) Jest też jeszcze 1 bug, którego nie namierzyłem. Kamera potrafi czasem "odpłynąć" poza obszar gry, ale po kilku sekundach wraca na miejsce.
Teraz pojawia się pytanie, które bym miał względem tego kodu. Jak w takiej sytuacji zazwyczaj realizuje się interface gry typu wyświetlenie informacji o tym, który to poziom, ilość kamieni do ustawienia, może np. wyświetlanie mierzonego czasu, w którym gracz ukończy poziom. Czy należy to robić jako elementy 3D tyle, że powiązane pozycją z kamerą (aby cały czas były w tym samym miejscu ekranu), czy też da się na taki obraz 3D nałożyć dwuwymiarowe sprite'y w konkretnej pozycji na ekranie?
Wiem, że temat ma już parę miesięcy, ale jeśli znajdziesz chwilę na odpowiedź, będę wdzięczny.
Dobra robota z wersją 3D :)
(na buga z "uciekaniem" kamery faktycznie trafiłem ;>)
Ad pytanie:
HUD/interfejs rysuje się (zazwyczaj) na oddzielnej "warstwie". Tzn po narysowaniu wszystkiego dot. gry robisz np. glLoadIdentity() (czyli resetujesz "ustawienia kamery", a w zasadzie macierz obrotu/translacji/etc), ustawiasz odpowiednią translacje lub włączasz "tryb ortho", i rysujesz UI.
Dwuwymiarowe sprite'y to zazwyczaj quady oteksturowane odpowiednio. Rzadziej jeden quad z całym GUI wyrysowanym na jednym sprite'cie / jednej teksturze.
Daj znać jeśli będziesz jeszcze coś grzebał przy wersji 3D tego sokobana.
Pozdrawiam.
mistrzostwo jeśli chodzi o tutoriale, robisz kawał dobrej roboty. Nieśmiało tylko zapytam czy obiecane :) video tworzenia shooter'a jest w trakcie produkcji :/
ps.
idę walczyć z kodem Magusa ... dzięki za udostępnienie
wszystkiego dobrego
Add a comment: