Jump to content

Moja gra w C++'ie - Trigonium


MacMercury

Recommended Posts

Hej! Jestem Mac Mercury. Chciałbym zaprezentować swoją pierwszą opublikowaną światu grę - Trigonium (łac. Trójkąt).

 

 

miotao.png

 

Co tu dużo mówić... Jesteś czarnym trójkątem i musisz dotrzeć do portalu. Obracasz się dość nieporadnie (patrz: gameplay), a w dodatku nie możesz dotknąć żadnej ściany, bo spowodujesz efektowną eksplozję.

 

Z map są na razie tylko trzy tutoriale, ale napisałem już automatyczny loader własnych (ta na zdjęciu jest właśnie wczytana). Kształt ścian zupełnie nie ma znaczenia, a koordy obiektów są umieszczone w config'u. Problem w tym, że nawet nie zacząłem jeszcze prac nad graficznym edytorem (będzie w GTK+, którego też nie zacząłem się uczyć...).

 

Gra jest ukończona w 50% i bazuje na (niestety) SFML'u i będzie wydana zarówno na Linux'a, jak i na OS, Którego Nazwy Nie Wolno Wymawiać. Na razie jest w wersji milestone 0 (datę wydania pierwszego snapshota planuję na 5 lutego).

 

Mam nadzieję, że się spodoba :)

 

 

Blog (ang.)

 

>>Download<<

Link to comment
Share on other sites

Fajnie

Dzięki ;)

 

jakbyś jakiś download zrobił gdzie można zassać coś to bym sobie na chwilę włączył :)

Download będzie w granicach 5 lutego (nie obiecuję), ale na razie pewnie tylko na Linuksa, bo nie chce mi się instalować maszyny wirtualnej.

 

Obejrzałem film z yt i wydaje mi się, że gdyby trójkąt miał bezwładność byłoby fajniej :)

Akurat dodałem bezwładność kilka godzin temu :D

Teraz pracuję nad różnymi rodzajami przeciwników.

Link to comment
Share on other sites

Aj... obejrzałem tez chwilę na YT i naszło mnie by zrobić coś takiego ale w 3d w OGL-u z jakimiś podstawowymi shaderami oświetlenia + ew. jakieś inne drobne albo w klimatyce cell shading i wszystko czarno białe. Tylko jakiś fajny kadr kamery trzeba by zrobić a całośc byłaby w jakiś mrocznych tunelach gdzie jest ciemno i widać tylko niedaleki obszar. Szkoda tylko, że człowiek nie ma czasu :( kurde.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link to comment
Share on other sites

Aj... obejrzałem tez chwilę na YT i naszło mnie by zrobić coś takiego ale w 3d w OGL-u z jakimiś podstawowymi shaderami oświetlenia + ew. jakieś inne drobne albo w klimatyce cell shading i wszystko czarno białe. Tylko jakiś fajny kadr kamery trzeba by zrobić a całośc byłaby w jakiś mrocznych tunelach gdzie jest ciemno i widać tylko niedaleki obszar.

Heh, akurat większość z tych konceptów też mi się obijała po myślach ;) Z tym czarno-białym to raczej kiepski pomysł, bo inne trójkąty są kolorowe.

Zacząłem się już uczyć Ogre'a i może jak już skończę, zacznę przepisywać wszystko w 3D.

Ale trochę potrwa :D

Szkoda tylko, że człowiek nie ma czasu :( kurde.

Szkoda :/ Przykro mi.
Link to comment
Share on other sites

Gra jest ukończona w 50% i bazuje na (niestety) SFML'u

Dlaczego niestety? Co jest takiego złego w SFML?

 

Jak robiłeś kolizje w tej mapie na screenie? Jakieś bounding shape'y, per pixel? BTW. zamiast dawać podpowiedzi w osobnych okienkach zadowol się tylko głównym oknem gry ;) Możesz sobie sam zaprogramować jakieś przyciski, triggery itp. bezpośrednio...

 

Tak poza tym całkiem niezła gierka ;)

Link to comment
Share on other sites

Dlaczego niestety? Co jest takiego złego w SFML?

Zwykłe okno "Hello world" 800x600 w SFML 1.6 zżera (u mnie) 50% procesora...

 

Jak robiłeś kolizje w tej mapie na screenie? Jakieś bounding shape'y, per pixel

Per pixel. Dlatego też kształt mapy jest całkowicie dowolny.

 

BTW. zamiast dawać podpowiedzi w osobnych okienkach zadowol się tylko głównym oknem gry ;) Możesz sobie sam zaprogramować jakieś przyciski, triggery itp. bezpośrednio...

Próbowałem ;), ale estetycznie wyglądało to nie najlepiej (fakt, że pop-up też wygląda źle, ale ciiii... :P).

API przycisków już napisałem (działają bardzo dobrze w menu), ale w tym przypadku enter jest wygodniejszy ;)

 

Tak poza tym całkiem niezła gierka ;)

Dzięki :)

Link to comment
Share on other sites

Zwykłe okno "Hello world" 800x600 w SFML 1.6 zżera (u mnie) 50% procesora...

Czy w tym Hello world ustawiłeś limit klatek na sekundę? Jak będę w domu, to napiszę ile "pożera" menu mojej gry ;)

 

App.SetFramerateLimit(30);

 

 

edit: menu mojej gry bierze w porywach 4% procka, Python + SFML. Okienko ma rozmiar trochę większy niż 800x600.

Link to comment
Share on other sites

Nie ogranicza sie liczby FPSow, a to ze gra pozera 100% jeden rdzen jest jak najbardziej ok.

Niekoniecznie. Ja osobiście nie nawidzę słuchać swojego systemu chłodzenia w notebooku -.-

 

Im więcej klatek tym wieksza plynnosc.

Wybacz, ale aż takim idiotą nie jestem, żeby tego nie wiedzieć.

 

Kontynuując dyskusję... jeśli nie chcesz ograniczać FPS, to możesz kontrolować szybkość animacji mnożąc przemieszczenie przez współczynnik App.GetFrameTime()

Już dodałem limit FPS'ów, a potencjalny gracz może go zmienić w menu.

Link to comment
Share on other sites

Kontynuując dyskusję... jeśli nie chcesz ograniczać FPS, to możesz kontrolować szybkość animacji mnożąc przemieszczenie przez współczynnik App.GetFrameTime():

 

http://www.sfml-dev....window-time.php

 

 

Ja osobiście dotychczas zawsze szedłem na łatwiznę i tylko ograniczałem FPS, żeby uzyskać w miarę stałą liczbę klatek ;)

Link to comment
Share on other sites

  • 2 weeks later...

Przez ostatni tydzień udało mi się wprowadzić trochę porządku - i teraz gra jest grywalna.

Problem w tym, że podczas tworzenia portu na Winshita natrafiłem na problem.

 

Linkuje się fajnie (MinGW z Code::Blocks), ale od razu po uruchomieniu gdb wywala sygnał "sigtrap" w ntdll.

Mam ograniczony dostęp do maszyny z Winshitem, a więc odnalezienie źródła na takim etapie tworzenia może trochę potrwać o.o

 

Przynajmniej wiem, że problem na 100% leży w jakimś konstruktorze.

Link to comment
Share on other sites

  • 2 weeks later...

Minęły dokładnie dwa tygodnie (no dobra, tydzień, 6 dni i 22,5 godziny...).

 

Przez ten czas (pewnie, że z przerwami ;)) męczyłem się ze zbudowaniem tego na windozę, cholera jasna. Na dwóch fizycznych maszynach, dwóch wirtualnych, dwóch wersjach systemów, trzech kompilatorach... Za każdym razem wywalał inny error o.o

Ostatecznie górował M$ (niestety...) ze swoim VC++ 2008 na wirtualnym windoze 7.

 

Linki na devblogu.

Jutro dodam wersję na 32-bitowe Linuksy (a przynajmniej mam taką nadzieję -.-).

Wersja na win32 może nie działać (nie sprawdzałem) na kartach ATI/AMD.

Link to comment
Share on other sites

  • 2 weeks later...

1. Te ślizaganie się jest straszne :) albo za szybko ten pojazd wyhamowuje albo kompletnie nie da się go w pewnym momencie wyhamować. Postaraj się to jakoś zbalansować.

 

2. W kampani pierwsza misja ten pojazd jest za blisko krawędzi ponieważ wystarczy obrócić się minimalnie w lewo i buum od razu przegrywamy. Takie akcje odstraszają momentalnie od gry. Pograłem 2min. bo nawet nie udało mi się przejść 1planszy do połowy bo miałem problemy ze sterowaniem.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link to comment
Share on other sites

1. Te ślizaganie się jest straszne :) albo za szybko ten pojazd wyhamowuje albo kompletnie nie da się go w pewnym momencie wyhamować. Postaraj się to jakoś zbalansować.

Zauważyłem to, postaram się to poprawić.

 

2. W kampani pierwsza misja ten pojazd jest za blisko krawędzi ponieważ wystarczy obrócić się minimalnie w lewo i buum od razu przegrywamy. Takie akcje odstraszają momentalnie od gry. Pograłem 2min. bo nawet nie udało mi się przejść 1planszy do połowy bo miałem problemy ze sterowaniem.

Na początku pierwszej misji jak byk jest napisane, że trzeba się obracać w prawo :D

Link to comment
Share on other sites

No jasne, że jest napisane że trzeba się w prawo obracać. Ale ile graczy zawsze wykonuje dokładnie w 100% to co jest nakazane :P ?

 

Edit: obracanie statku też jest coś do kitu. Bo jeszcze raz teraz odpaliłem rano. Lekko nacisnę w prawo/w lewo i statek bum od razu przynajmniej o 45* mi się obraca przez co na zakrętach nie sposób w ogóle dostosować się. Trzeba stanąć i próbować 10razy dobrze dobrać obrót.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link to comment
Share on other sites

Wszystko poprawione, ale natrafiłem na inny problem.

 

W wersji na windozę checkpointy raz się pojawiają, a raz nie.

Kod jest taki sam (i wszystkie zmienne są na początku zerowane).

 

Oczywiście, na Linuksie wszystko działa bez problemu...

Link to comment
Share on other sites

Ok. Ale teraz w ogóle wyeliminowałeś element ślizgu ;) idąc na łatwiznę.

 

Jak tam masz prędkość i w ogóle ruch w kodzie? Bo najprościej zrobić, że wciskając W/S zwiększasz/zmniejszasz prędkość a co update fizyki dodajesz wektor prędkości do pozycji. Oczywiście pamiętając o jakimś pseudo-oporze, który wytrąci w czasie tą prędkość.

Ot taka mini-strona moja po godzinach :)http://www.wnetrzekuchni.pl

Link to comment
Share on other sites

Ok. Ale teraz w ogóle wyeliminowałeś element ślizgu ;) idąc na łatwiznę.

Niezupełnie ;) Wejdź w ustawienia.

 

Jak tam masz prędkość i w ogóle ruch w kodzie? Bo najprościej zrobić, że wciskając W/S zwiększasz/zmniejszasz prędkość <min;max> a co update fizyki dodajesz wektor prędkości do pozycji. Oczywiście pamiętając o jakimś pseudo-oporze, który wytrąci w czasie tą prędkość.

Mniej więcej tak to właśnie wygląda. Ale na pewno coś tam jest źle...

Przejrzę ten kod jeszcze raz, gdy będę miał wolny czas ;) Na razie chcę się jednak zająć AI i grafikami (te placeholdery są okropne -.-).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...