Autor Wątek: Tequila Platformer  (Przeczytany 2136 razy)

Offline szczypiorofix

  • Użytkownik

# Lipiec 19, 2016, 12:40:16
Witam wszystkich.
Pokrótce napiszę tylko, że programowaniem (w zasadzie to tylko java + android, czyli także java) zajmuję się od ok. 9 miesięcy, dawno dawno temu dłubałem co nieco w Pascalu.
To mój pierwszy projekt, który opuszcza szufladę i ląduje tutaj.

TEQUILA PLATFORMER
To mój pierwszy projekt, który w zasadzie można częściowo nazwać "grą".
To prosty side-scrolling platformer, w teksańsko - meksykańskich klimatach. Gra polega (a jakże) na wiecznym podążaniu w prawo aż do znacznika końca poziomu, gdzie przeskakuje się na kolejny level. Po drodze nasza postać zbiera monety (na razie tylko monety, zobaczę co dalej), unika groźnych wrogów (na razie tylko pszczoły) oraz oczywiście na wypijaniu różnych trunków, w tym oczywiście tytułowej tequili, co spełnia zadanie power-upów (na razie jest tylko tequila ale myślę też nad innymi trunkami i bonusami oczywiście).

Technikalia:
Gra całkowicie zrobiona w czystej javie, sposób pisania wspomagany różnymi tutorialami ale sporą część kodu i tak musiałem przerobić po swojemu.

Oprócz standardowych bibliotek wykorzystałem także 2 zewnętrzne:
- JInput - do obsługi pada
- JLayer - do obsługi plików *.mp3

Grafiki pochodzą z darmowych setów, głównie ze stron www.opengameart.org oraz darmówki z www.gameart2d.com. Muzyka z serwisu opengameart.com. Dźwięk skoku stworzony przeze mnie przy pomocy narzędzia na stronie: http://www.bfxr.net/

Gra do chwili obecnej posiada 5 poziomów, z czego w zasadzie tylko pierwszy nadaje się do czegokolwiek i spełnia głównie funkcje testowe nowych ficzerów. Na potrzeby gry stworzyłem prosty edytor poziomów oraz "konfigurator" dla padów, dzięki czemu można przypisać sobie klawisze do poszczególnych akcji postaci.

Mam jeszcze parę pomysłów, zobaczymy co uda mi się dorzucić do tej gry, trochę czasu jeszcze mam.

Pierwszy screen

Wszelkie uwagi (zwłaszcza te krytyczne) będą mile widziane :)

Pozdrawiam!


PS. w ustawieniach pada zalecam przypisywanie przycisków cyfrowych (analogi nie działają jeszcze jak powinny).

EDIT2:
Link do pobrania. Build 20160720.
« Ostatnia zmiana: Lipiec 20, 2016, 14:21:21 wysłana przez szczypiorofix »

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

# Lipiec 19, 2016, 12:59:29
Wszelkie uwagi (zwłaszcza te krytyczne) będą mile widziane :)
To daj linka :D!

Offline szczypiorofix

  • Użytkownik

# Lipiec 21, 2016, 18:08:49

Offline Mergul

  • Użytkownik

# Lipiec 21, 2016, 18:26:12
Zgrałem i...
-U mnie kiedy zbieram monetki to delikatnie przycina gra
-Pszczółki powinny moim zdaniem rysować się przed kaktusami i kamieniami. Ponieważ postać rysuje się przed, a one nie, a postać atakują :D Trochę to burzy złudzenie głębi. A poza tym denerwują takie ukryte pszczółki ;)
-Fajnie jakby było widać kiedy kończą nam się bonusy, żeby, np. poziom tequili się zmniejszał w butelce :D Albo, żeby chociaż obrazek zaczynał mrugać, albo coś :)

Offline szczypiorofix

  • Użytkownik

# Lipiec 21, 2016, 18:42:31
Po kolei:

1) monety u mnie działają ok ale spróbuję na innej konfiguracji. W zasadzie nie wiem w czym problem, może w dźwiękach. Przyjrzę się temu bliżej.

2) Kolejność rysowania postaci to jest problem z którym się trochę zmagam, związane to było z pewnym pomysłem z którego musiałem tymczasowo zrezygnować z powodu (w ogromnej większości) z moich ograniczonych umiejętności (jestem totalnym samoukiem) ;)
Generalnie zamysł jest taki, że każdy GameObject (player, block, sceneryObject, beeObject itd.), który jest klasą abstrakcyjną, ląduje w LinkedList w kolejności dodawania w momencie wczytywanie poziomu z pliku (zapisana tablica typów integer 500x40) iteruję po kolei wartości i w zależności od wartości wczytuję dany obiekt. Potem w game loop obiekt klasy objectsHandler w metodach tick oraz render iteruje po LinkedList i rysuje wszystko "jak leci" czyli w kolejności dodawania do tego elementu listy. Przeniosłem obiekt player na koniec przez co postać jest zawsze rysowana nad wszystkim i w zasadzie pszczołom też by się coś takiego przydało. Z drugiej strony takie ukryte pszczółki to dodatkowe utrudnienie ;)

3) O tym już wcześniej myślałem. Tak naprawdę nie wiadomo, kiedy kończy się bonus za tequilę a kiedy "kara" za przejedzenie tacosami ;)

Dzięki za sugestie :)
« Ostatnia zmiana: Lipiec 21, 2016, 18:44:11 wysłana przez szczypiorofix »

Offline Mergul

  • Użytkownik

# Lipiec 21, 2016, 19:59:50
Cytuj
z moich ograniczonych umiejętności (jestem totalnym samoukiem) ;)
To akurat nie problem :D Pewnie większość osób na tym forum (w tym ja) to samouki :D
Cytuj
Z drugiej strony takie ukryte pszczółki to dodatkowe utrudnienie ;)
Niby tak, ale gracze lubią utrudnienia które nie irytują ;) A to tylko będzie spowalniać gracza, bo będzie musiał czekać patrząc czy są pszczółki, czy ich nie ma :D Dodaj sobie najlepiej parametr odpowiadający za kolejność rysowania i posortuj po nim obiekty :)

Powodzenia przy projekcie ;)

PS. doszedłem do piątego poziomu, dalej mi się nie chciało :P

Offline szczypiorofix

  • Użytkownik

# Lipiec 21, 2016, 20:47:08
To akurat nie problem :D Pewnie większość osób na tym forum (w tym ja) to samouki :D
Niby tak ale coraz częściej zdarza mi się rozbijać o czystą matematykę i wynikają braki mojego wykształcenia informatycznego a samą matmę miałem ostatni raz w liceum, czyli baaardzo dawno temu.

Dodaj sobie najlepiej parametr odpowiadający za kolejność rysowania i posortuj po nim obiekty :)
Hmm coś będę musiał z tym zrobić. Chyba nie objedzie się też bez zmiany w samym generatorze poziomu.

Powodzenia przy projekcie ;)
Dziękuję i wzajemnie :)

PS. doszedłem do piątego poziomu, dalej mi się nie chciało :P
Hehe bo nie ma więcej poziomów niż 5 ;) pierwszy jest testowy a kolejne są puste.

Offline damoch

  • Użytkownik

# Lipiec 23, 2016, 11:21:59
Całkiem przyjemnie się gra :) Ciekawi mnie jednak jak rozwiążesz kwestię kamery, konkretnie jej pozycji na osi Y - będzie ona podążała za graczem, czy raczej pozostanie na tej samej wysokości?

PS. Tequila jako power up? Niezbyt edukacyjne :D

Offline szczypiorofix

  • Użytkownik

  • +1
# Lipiec 23, 2016, 12:01:42
Całkiem przyjemnie się gra :)
Dziękuję :)

Co do kamery: na osi X podąża oczywiście za graczem w stosunku 1:1 natomiast na osi Y (co widać na pierwszym gameplayu) porusza się w górę ale ze znacznie zmniejszoną prędkością. To samo dotyczy efektu parallax na tle (góry) gdzie poruszanie na osi Y jest znacznie zmniejszone w porównaniu z osią X - chciałem w ten sposób zwiększyć głębię samej gry ;)

Tequila - nieedukacyjna? W założeniach gra nie miała być edukacyjna ;) mogę dać specjalne oznaczenia (PEGI chyba nie przewiduje alkoholu) dla tych "bardziej wrażliwych" ;)

EDIT:
Wersja poprawiona i uzupełniona o wcześniejsze sugestie (wskaźnik power-upów na razie taki prosty, kolejność rysowania obiektów) oraz dodatkowo poprawione, bardziej płynne sterowanie, migotanie postaci po trafieniu oraz możliwość robienia screenshotów (klawiszem F12). Zapraszam do testowania :)
« Ostatnia zmiana: Lipiec 23, 2016, 12:40:38 wysłana przez szczypiorofix »

Offline Mergul

  • Użytkownik

# Lipiec 24, 2016, 18:27:08
Z tymi poprawkami gra się dużo przyjemniej :)
Jednak w momencie zbierania monetek dalej mam przycinki (win10), i nie wiem czy to tak zamierzone, że jak najeżdżam myszką na przycisk w menu to dopiero gdzieś po połowie sekundy odtwarzany jest dźwięk i przeskakuje na przycisk niebieska obwódka :)

Offline szczypiorofix

  • Użytkownik

# Lipiec 24, 2016, 21:16:02
Co do opóźnieni w menu głównym - tak, też mam zauważalne opóźnienia, może nie 0.5 sek ale jednak zauważalne. Menu zrobione chyba najprościej jak się da, wszystko standardowo w swingu, metody zaznaczania/odznaczania chyba najprościej i najszybciej jak się da jednak dalej będę musiał z tym pokombinować gdyż nie działa to płynnie (mam inny projekt, dodatkowo z graficznymi przyciskami, również z zaznaczaniem myszą + klawiatura i tam działa to bardzo dobrze).
Obecnie moją klasę odpowiedzialną za ładowanie i odtwarzanie dźwięków (poza mp3) kompletnie przebudowałem i przepisałem na nowo, powinno być dużo lepiej (u mnie nie widzę żadnej różnicy, tak jak wcześniej wszystko działa bardzo dobrze a mam win7 64bit i stary komputer - q6600, 8GB RAM i ATI hd5770). Aktualnie zajmuję się dodawaniem kilku elementów i jak tylko się uporam z tym, żeby wszystko działa jak należy - wrzucę grę do ściągnięcia i przetestowania ;)

Offline szczypiorofix

  • Użytkownik

# Lipiec 29, 2016, 23:16:18
Tequila Platformer : po uprzednich sugestiach (i nie tylko) wprowadziłem szereg poprawek i kilka nowych elementów.

Poprawki i usprawnienia:
- klasa SoundLoader napisana od nowa (jestem ciekaw czy nadal są opóźnienia w dźwiękach na win10)
- poprawiona praca kamery
- przebudowana klasa ObjectsHandler (zyskałem trochę fpsów i więcej możliwości) co m.in. wpłynęło na właściwą kolejność rysowania obiektów
- masa drobnych poprawek np. bardziej płynne sterowanie.

Nowe elementy (głównie te, które utrudniają ale także urozmaicają rozgrywkę):
- ruchome platformy (poziome i pionowe)
- woda, w której bohater może utonąć
- chmurka płynąca po niebie (tu jeszcze trochę jest do poprawy ale staram się robić wszystko po kolei)
- Angry Cactus - czyli nieprzyjemne kaktusy, które wyczuwając obecność gracza budzą się i strzelają igłami
- przesuwane skrzynki - czasem trzeba pogłówkować, coś zrzucić, coś przesunąć żeby dostać się do wyżej położonych półek ze monetami :)

Mam w głowie jeszcze parę pomysłów, które zaprezentuję dopiero wtedy gdy będzie to działać prawidłowo.

Przykładowa prezentacja poziomu (ciągle zmienianego pod wpływem nowych elementów i usprawnień). W zasadzie grywalny jest tylko poziom pierwszy ale konstrukcją poziomów zajmę się w momencie, gdy nie będę już dodawał żadnych nowych elementów.

Link do pobrania.

Wszelkie sugestie oraz krytyka bardzo mile widziana :)
Zapraszam do testowania.
« Ostatnia zmiana: Lipiec 30, 2016, 00:34:04 wysłana przez szczypiorofix »

Offline Mergul

  • Użytkownik

# Lipiec 30, 2016, 11:54:51
Menu działa już płynnie. Dźwięki działają płynnie, nie przycina już :)
Jeżeli zbierzemy tequile, albo tacos i włączymy pauze, to napis ma kolor paska życia power-upa.
Mógłbyś zrobić tak, żeby rysować wodę półprzezroczystą i nad postacią, żeby było widać jak wpada do wody :) Albo nawet rysować wodę dwa razy, raz za postacią i raz przed z półprzezroczystością :)

Offline szczypiorofix

  • Użytkownik

# Lipiec 30, 2016, 17:02:58
Menu działa już płynnie. Dźwięki działają płynnie, nie przycina już :)
Miło mi to słyszeć :) Wcześniej w menu rysowany był w głównym kontenerze obrazek, odświeżany wtedy gdy którykolwiek z buttonów był zmieniany, czyli jak to standardowo w swingu. Zrezygnowałem teraz z obrazka. Zrobię lepsze, ładniejsze menu ale to nie jest priorytet w tym momencie ;)

Jeżeli zbierzemy tequile, albo tacos i włączymy pauze, to napis ma kolor paska życia power-upa.
Faktycznie, nie zauważyłem. Już naprawione :)

Mógłbyś zrobić tak, żeby rysować wodę półprzezroczystą i nad postacią, żeby było widać jak wpada do wody :) Albo nawet rysować wodę dwa razy, raz za postacią i raz przed z półprzezroczystością :)
Dzięki za sugestie :) W ogóle myślałem też nad tym żeby zrobić wodę animowaną, nijak się to ma do rzeczywistości ale wyglądałoby może lepiej. Z przezroczystością wody to też dobry pomysł.

Offline szczypiorofix

  • Użytkownik

  • +1
# Wrzesień 12, 2016, 15:06:38
Dawno nie było żadnego update'u i nadszedł już na to najwyższy czas.
Nowości i zmian jest dość sporo i nie wiem czy po ponad miesiącu uda mi się wszystko wymienić, więc po kolei:

- nowe menu główne (tamte oparte na swingu poszło w zapomnienie), z różnymi bajerami,

- nowy motyw muzyczny w menu głównym,

- in-game menu (teraz wreszcie można rozpoczynać grę i wracać do menu głównego gry),

- system osiągnięć (tak, przecież wszyscy to lubią :D ), które można sobie potem pooglądać w menu głównym gry,

- poszczególne elementy menu głównego działają (jak grać, najlepsze wyniki, osiągnięcia,o grze), no może poza Kryształami Mocy (o czym za chwilę ale to jeszcze wczesna beta)

- Kryształy Mocy - czyli kryształy pojawiające się w różnych miejscach losowo (kolory też są losowane) i uzbieranie 5 takich samym (ich liczba z każdą grą się sumuje)  daje dostęp do specjalnego "hand menu" dostępnego poprzez trzymanie klawisza Ctrl. "Moce" wybiera się klikając na odpowiednich kryształach (działają tylko jak na razie pierwsze 2 od góry: 1 - regeneracja zdrowia o 1, 2 - zwiększenie maksymalnego zdrowia o 1), tu jeszcze mam kilka pomysłów i nie do końca jestem pewien jak byłoby najlepiej/najfajniej,

- Najlepsze Wyniki czyli po prostu Hall of Fame z globalnymi wynikami (gra łączy się z moją aplikacją działającą non stop na moim vpsie, który zarządza dostępem do bazy danych w MySQLu. Łączenie się działa w głównym wątku więc samo wybieranie menu może ciut zacinać grę, wiem, to jest do poprawki),

- po ukończeniu poziomu należy wpisać swoje imię/ksywkę a uzyskane wyniki i czas gry zostaje wysłany do bazy danych gdzie później można sobie obejrzeć najlepsze wyniki, kto jakie uzyskał (to co wyżej),

- nowe elementy w grze: trampolina, wysuwające się kolce, opadające bloki poprawiona została także obsługa "przycisków" które włączają włączane ruchome platformy - poruszają się tylko gdy postać lub przesuwana skrzynka stoi na przycisku,

- dostępne 2 języki: polski i angielski (na razie częściowo) do wyboru "w locie",

- mniejsze poprawki w stylu: lock na fpsy w menu, poprawki w obsłudze muzyki, dźwięków oraz obiektów gry itd.


EDIT:
Update:
- poprawione działanie Kryształów Mocy i podręcznego menu
- dodane intro oraz outro
- menu wyboru poziomów: pozwala bezpośrednio wybierać poziomy już odblokowane
- zaprojektowałem 9 poziomów (pozostał mi ostatni ale to spokojnie powinienem zdążyć na dzisiaj) + ostatni - finałowy
- dodana finałowa muzyczka ;)
Więcej info wieczorem, przed wydaniem "oficjalnym" gry ;)
« Ostatnia zmiana: Październik 01, 2016, 10:35:01 wysłana przez szczypiorofix »