Warsztat.GD

Społeczność => Projekty zaawansowane => Wątek zaczęty przez: Cocomide w Lipiec 05, 2013, 00:46:29

Tytuł: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 05, 2013, 00:46:29
Ukończyłem niedawno swój pierwszy, samodzielny projekt gry na Androida. Pochwalę się też i tutaj.

Dwarf Dust

(http://simdictive.com/wp-content/uploads/2013/06/hiResIco.png)

Dwarf Dust jest nowatorskim podejściem do gier typu „Falldown”, w których gracz przy pomocy akcelerometru steruje spadającym obiektem, omijając przeszkody schodząc jak najniżej. W grze sterujemy gromadą Krasnali wgłąb kopalni Gwiezdnego Pyłu. Kopalnia jest zaczarowana dlatego co 100 stopni zmienia swój wygląd wyjawiając przy tym nowe, coraz groźniejsze pułapki. Zadaniem gracza jest poprowadzenia Krasnali jak najgłębiej omijając przeszkody oraz uwalniając coraz więcej Krasnali. Pomaga nam przy tym zestaw „Dopalaczy” zbieranych poprzez złapanie ich palcem na ekranie dotykowym. Tylko większa ilość górników zdoła się przebić przez zasypaną kopalnię. Po drodze można zebrać spore ilości Gwiezdnego Pyłu, który służy do ulepszania „Dopalaczy” zdobywanych w grze. W sklepiku dostępne są także nowi pracownicy kopalni. Jest też możliwość szybszego zdobycia Gwiezdnego Pyłu poprzez zakup za pomocą Portfela Google.

A to wszystko po to żeby konkurować w globalnym rankingu na najlepszego górnika!

Zapraszam do wypróbowania mojej produkcji oraz w miarę możliwości do sprawiedliwego ocenienia gry. Dwarf Dust jest w pełni darmowy, posiada jednak reklamy oraz mikro-płatności.

(https://developer.android.com/images/brand/pl_generic_rgb_wo_60.png) (https://play.google.com/store/apps/details?id=com.me.magicpot)

https://play.google.com/store/apps/details?id=com.me.magicpot (https://play.google.com/store/apps/details?id=com.me.magicpot)

Przy da się opinia warsztatowych profesjonalistów oraz amatorów :)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 05, 2013, 12:40:56
Coś jest chyba nie tak. Gra się włącza mimo to, że trochę długo ale to szczegół no i jest fajnie. Włączasz nową grę i tu niespodzianka bo nie widać ani postaci ani poziomów, po których ma poruszać się postać. Tak na marginesie mało intuicyjna jest obsługa menu.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 05, 2013, 12:52:36
Dziwny problem, a na jakim urządzeniu była gra testowana?
Co masz na myśli jako "mało intuicyjna"? Chętnie bym poprawił intuicyjność jeżeli jest z nią problem, to mój pierwszy samodzielny projekt - na pewno ma sporo wad.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 05, 2013, 13:40:03
A tak dla testów wrzuciłem sobie ją na tablet FunTab 7.0 bo mam w tej chwili tylko to pod ręką. Jeżeli chodzi o intuicyjność to jeżeli wejdzie się w top wyniki to aby wyjść z tego działa tylko przycisk back a mógł by być do tego jakiś przycisk na ekranie. Tylko w tym miejscu można korzystać z przycisku back. Nigdzie indziej on nie działa. Jeżeli jesteśmy w głównym menu to przydało by się żeby można było zamknąć grę przyciskiem back a nie tylko dostępnym w menu. To są tylko i wyłącznie moje odczucia nie wiem jak tam reszta osób grająca w Twoją grę. Jeżeli chodzi o gameplay to niestety nic nie mogę powiedzieć bo nie zdołałem przetestować przez problem z grafiką.
http://img199.imageshack.us/img199/1131/k2mb.jpg (http://img199.imageshack.us/img199/1131/k2mb.jpg)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: IgI w Lipiec 05, 2013, 13:46:28
Słowem wstępu. Gra testowana na Samsungu Galaxy Mini 2 z oficjalnym softem. Po pierwszym uruchomieniu gry, jak wszedłem w sklep to się telefon zawiesił i wymagał restartu. Przy następnym podejściu wszytko było już OK.

Plusy:
- przyjemna dla oka grafika
- działa płynnie
- nawet fajnie się gra

Minusy:
- trochę nudna i łatwa (przynajmniej po pierwszych paru minutach gry)
- wszystko toczy się trochę za wolno
- teraz zerknij na rysunek - https://www.dropbox.com/s/azuzpppm618114p/SC20130705-121840.png
 1) Wygląda to jak końcówka platformy obok i nie pasuje mi wizualnie
 2) Strefa, która wygląda na to, że można tam się znaleźć, a jest niewidzialna ściana

Podsumowanie:
Gra całkiem fajna i nadaje się do zabijania czasu, np. w pociągu/tramwaju/autobusie. Jak dla mnie grafika podczas gry mogła by być nieco większa (na moim telefonie wszytko takie małe się wydaje). Ogólnie 3, a nawet 3.5 na 5.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 05, 2013, 13:54:03
No to taki zbieg okoliczności, że u ciebie wyświetla się to co u mnie się nie wyświetla i odwrotnie :P
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Adam27 w Lipiec 05, 2013, 15:29:33
Cytuj
- teraz zerknij na rysunek - https://www.dropbox.com/s/azuzpppm618114p/SC20130705-121840.png
 1) Wygląda to jak końcówka platformy obok i nie pasuje mi wizualnie
 2) Strefa, która wygląda na to, że można tam się znaleźć, a jest niewidzialna ściana
3) Przydałoby się pisać po angielsku poprawnie: available
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 05, 2013, 16:33:14
Słowem wstępu. Gra testowana na Samsungu Galaxy Mini 2 z oficjalnym softem. Po pierwszym uruchomieniu gry, jak wszedłem w sklep to się telefon zawiesił i wymagał restartu. Przy następnym podejściu wszytko było już OK.

Plusy:
- przyjemna dla oka grafika
- działa płynnie
- nawet fajnie się gra

Minusy:
- trochę nudna i łatwa (przynajmniej po pierwszych paru minutach gry)
- wszystko toczy się trochę za wolno
- teraz zerknij na rysunek - https://www.dropbox.com/s/azuzpppm618114p/SC20130705-121840.png
 1) Wygląda to jak końcówka platformy obok i nie pasuje mi wizualnie
 2) Strefa, która wygląda na to, że można tam się znaleźć, a jest niewidzialna ściana

Podsumowanie:
Gra całkiem fajna i nadaje się do zabijania czasu, np. w pociągu/tramwaju/autobusie. Jak dla mnie grafika podczas gry mogła by być nieco większa (na moim telefonie wszytko takie małe się wydaje). Ogólnie 3, a nawet 3.5 na 5.

Przy wejściu do sklepu jedyna akcja to animacja GUI i aktualizacja waluty - telefon zwiesić musiał TapJoy swoją aktualizacją.

Co do tych znikających tekstur - problemem chyba jest GPU, nie da rady utrzymać tylu dużych tekstur i nadpisuje je. Staram się pomniejszać atlasy tekstur dzieląc je na mniejsze. Następna aktualizacja, mam nadzieję, będzie bez tego błędu.

3) Przydałoby się pisać po angielsku poprawnie: available
Co za wpadka! Dzięki (chociaż mi strasznie wstyd)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 07, 2013, 23:52:42
Pozwolę sobie dopisać:

Udostępniłem wersję poprawiona i chciałbym prosić osoby, które miał problemy z wyświetlaniem grafiki żeby spróbowały jeszcze raz :)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 08, 2013, 00:21:51
Odpisałem już na markecie ale napiszę Ci tu jeszcze raz. Jest trochę lepiej bo wczytuje się tło i platformy ale nadal nie widać postaci, innych przedmiotów oraz bonusów lecących do góry. Oj czeka cię jeszcze dużo optymalizacji. Gra Temple Run 2 chodzi na tym tablecie bez żadnego problemu a z taką prosta gierką ma problem. No musisz pokombinować jeszcze trochę.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 08, 2013, 01:50:05
Pomniejszam dalej atlasy tekstur, testowałem na jednym ze starszych urządzeń z gorszym GPU i już działa. Wersja 1.06 powinna mieć już wszystko zoptymalizowane. Jeżeli teraz nie zadziała to będę zmuszony powoli wykluczać niekompatybilne urządzenia ;/
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Raptor w Lipiec 08, 2013, 12:31:54
Mój Samsung Galaxy Ace (nie rootowany, na Androidzie 2.3.6) jest całkowicie niekompatybilny - menu łącznie ze sklepem normalnie działa, ale jak wybierze się grę, to strasznie długo się ładuje, a potem jest tylko czarny ekran.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 08, 2013, 13:37:38
Normalnie pierwszy raz w życiu spotykam developera, który trochę poprawił pogrzebał zrobił aktualizację i dalej już mu się nie chce i tworzy listę niekompatybilnych urządzeń. Mogę się założyć, że masz jakieś przecieki w kodzie i to zawala pamięć ale po co poszukać jak można wywalić listę z tysiącami urządzeń, które nie są kompatybilne. Zastanowił byś się może nad zmniejszeniem jakości plików graficznych bo taka prosta gra żeby aż tyle zajmowała...
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 08, 2013, 18:36:39
Nie chodzi o to, że mi się nie chce, nigdzie tego nie napisałem i proszę o wstrzymanie się z takimi oskarżeniami.
Staram się ograniczać wielkość assetów ale połowa z nich to dźwięki i nie mogę już zmniejszyć ich wielkości - konwertuję powoli pliki png na ich mniejsze wersje - zobaczymy. Jeżeli nie uda mi się osiągnąć efektu to będę zmuszony wykluczać urządzenia - wiadomo, że nie każda gra będzie działać na każdym urządzeniu. A w przypadku Dwarf Dust w tej chwili pobrać może grę każdy.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Veldrin w Lipiec 08, 2013, 22:25:32
Ściągnąłem na swój Sony Xperia Neo V, który używam do developerki.

Wywala mi podczas loadingu przed rozpoczęciu gry, bez żadnego komunikatu.

Jedyne co z logcata na czerwono udało mi się dostać co dotyczy gry:

07-08 21:21:19.407: E/InputDispatcher(290): channel '2c1876f8 com.me.magicpot/com.me.magicpot.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

Btw jaka technologia gry? Bo po komentarza sądziłem, że to wina shaderów(sam dostawałem info od ludzi że czasem shader na S3/Note nie działał, na szczęście w grze dałem możliwości sterowania opcjami graficznymi;)). Gra ma 5 mb, zasoby nie mogą być za duże.

Chyba, że robisz coś bardzo, bardzo niedobrze na CPU i na tych gorszych urządzeniach nie domaga;).
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 08, 2013, 22:57:21
Używam libgdx OGL 1.0. Będę analizował co gdzie i jak mogłem skopać - dzięki za przetestowanie gierki :)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 09, 2013, 02:04:14
Po najnowszej aktualizacji jest jeszcze gorzej niż było. Wcześniej chociaż trochę grafik się ładowało a teraz do gry żadne się nie ładują. Nie ma co się zaraz za wykluczanie urządzeń brać bo to jest prosta gierka nie ma nic w sobie strasznie skomplikowanego a nie działa jak powinna. Fakt faktem wywala błąd nie raz i zamyka aplikację. Wysyłałem raporty o tym.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 09, 2013, 13:35:36
Wrzuciłem kolejny update. Tym razem we znaki dał się AssetManager, który jakimś cudem zwalniał zasoby przed wywołaniem tego zwalniania...
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: polkom21 w Lipiec 09, 2013, 14:07:15
Ja nadal mam te same problemy. Jest jak by minimalnie lepiej ale jeszcze nie wszystkie grafiki działają.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Veldrin w Lipiec 09, 2013, 16:17:11
Zrobiłeś dużo fajnych rzeczy jezeli chodzi o reklamy/mikropłatności, ale mam wrażenie, że pod względem kodu są jakieś mega błędy grube korzystania z libgdx.

Nie mam przed oczami kodu ale coś złego jest już na starcie. Pojawia się LoadingScreen(tak to nazywam) - rozumiem, że w tle się ładują wszystkie zasoby. Libgdx ma do tego fajne wsparcie. Mimo tego, zanim pojawi się MenuScreen gra muzyka czasem wiele sekund, zanim przejdzie do render() danego stanu.

Bez dostępu do kodu nie potrafię specjalnie pomóc poza wskazówkami. Moim zdaniem architektura kodu jest skopana.

BTW na jakim sprzęcie to testowałeś u siebie?


Problem tkwi w pamięci. Co ty na Boga tyle alokujesz w tej grze?????
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 09, 2013, 17:26:24
Cytuj
Nie mam przed oczami kodu ale coś złego jest już na starcie. Pojawia się LoadingScreen(tak to nazywam) - rozumiem, że w tle się ładują wszystkie zasoby. Libgdx ma do tego fajne wsparcie. Mimo tego, zanim pojawi się MenuScreen gra muzyka czasem wiele sekund, zanim przejdzie do render() danego stanu.
Libgdx puszcza muzyke na osobnym wątku, czasem zacznie grać zanim wyświetli się Stage gry.

Cytuj
Problem tkwi w pamięci. Co ty na Boga tyle alokujesz w tej grze?????
Problem rzeczywiście tkwi w pamięci, ale pamięci GPU... Assety odchudziłem do granic możliwości i dalej nie wiem czemu na słabszych sprzętach niektóre tekstury są białe...

Cytuj
... mam wrażenie, że pod względem kodu są jakieś mega błędy grube korzystania z libgdx.

Nie mam przed oczami kodu ...

Mocne słowa jak się kodu nie widziało :) Problemem jest raczej dostosowanie gry do słabszych urządzeń. Niestety nie wiem jak zdebugować białe tekstury... Nie posiadam żadnego urządzenia, które by miało taki problem.

Cytuj
BTW na jakim sprzęcie to testowałeś u siebie?

Samsung Galaxy S3 - płynnie, brak błędów
Samsung Galaxy S3 mini - płynnie brak błędów
Samsung Galaxy S2 - płynnie, brak błędów
ZTE Blade II -  oko. 40-50 fps, znikały tekstury ale po zmniejszeniu wielkości atlasów jest bezbłędnie
LG L3 - niskie fps, niegrywalnie ale wszystko się wyświetla (pracuje nad tym telefonem)
Tablet A088 (nie wiem jaka marka) - płynnie, brak błędów
Sony Xperia Sola - płynnie, brak  błędów
Sony Xperia Arc S - płynnie, brak błędów
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Karol w Lipiec 09, 2013, 18:23:13
Sony Xperia X8 - menu płynnie śmiga, a potem loading, loading, minutę później loading i crash. Może i stary sprzęt, ale w bardziej wymagające gry grałem bez problemu (zarówno 2D jak i 3D).

Samsung Galaxy Tab 2 - gra działa (i jest bardzo łatwa i szybko się nudzi), ale ładuje się dłużej niż choćby to: https://play.google.com/store/apps/details?id=com.spidweb.avadon
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 09, 2013, 19:14:47
@Karol
A czy mógłbyś wysłać raport z takiego crasha?
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Karol w Lipiec 09, 2013, 21:49:09
@Karol
A czy mógłbyś wysłać raport z takiego crasha?
Jasne, http://pastebin.com/QuApLEWs . Może coś tam dostrzeżesz.

Btw. Twoja gra zjada na tablecie 65MB+ pamięci, aż na żółto świeci. Za to np. Plants vs Zombie nie przebija 56MB, a ma z pewnością więcej assetów. Ciężko mi uwierzyć w to, aby gra mająca 5MB miała problem z rozmiarem assetów.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Veldrin w Lipiec 09, 2013, 22:31:46
Ja swoje gry tworzyłem z założeniem, że mój telefon - Sony Xperia Neo V to urządzenie, które uznaje za wymagania minimalne. Obsługę OpenGL ES 2.0 również(jak dobrze pamiętam 96% rynku według developer.android?).

Jedna z moich produkcji to low poly 3D z dużą liczbą particli 3D i efektów post-process. U ciebie wszystko da radę zrobić jednym batchowanym drawem bez złożonych particli i efektów post-process.

To oznacza, że gra powinna działać na znacznie gorszym sprzęcie niż mój.
 
Po resecie telefonu - dokładnym killu  procesów w tle gra mi rusza i działa bardzo fajnie, gra się super.  Z tego jednak wnioskuję, że RAM był u mnie problemem.

Problem z VRAM oznaczałby jakiś TOTALNY overkill zasobów(choć gra ma 5 MB).

Cytuj
Libgdx puszcza muzyke na osobnym wątku, czasem zacznie grać zanim wyświetli się Stage gry.

SYNCHRONIZACJA! Akurat zsynchronizowanie tego nie wymaga specjalnej pracy. Raczej poprawnego korzystania z architektury stanów libgdx. Pierwszy raz spotykam się z takim problemem.

W jaki sposób zarządzasz stanami gry oraz zasobami, że pojawia się taki problem?

Cytuj
Mocne słowa jak się kodu nie widziało :)

Bazując na widocznych konsekwencjach - mocno ale prawdziwe(nawet jeżeli częściowo) słowa :D!

Ale no taki problem projektów closed source. Otwarcie źródeł to automatycznie rozwiązanie wielu podobnych problemów!(zachęcam ;))

PS. zawsze jest emulator(sic!), na którym możesz sobie konfigurować rozmiar zasobów wirtualnego urządzenia. Szczerze mówiąc nigdy z powodzeniem nie go nie użyłem ;).

Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 09, 2013, 23:21:07
Wszystko co piszesz ma sens. Analizuje kod linijka po linijce. DDMS odpalony w tle cały czas, nie ma żadnych szalonych alokacji. Nie mam wycieków w aktorach, Assety też ładnie sprzątam przed zmianą stanu.

Muzyka to mało pikuś, po prostu przeniosłem wywołanie w inne miejsce - to wcale nie była oznaka kłopotów :)

Cytuj
W jaki sposób zarządzasz stanami gry oraz zasobami, że pojawia się taki problem?

Do zmiany stanów używam klasy ze splash screenem na której ładnie nie wszystko zwalniam i alokuje nowe assety. Do tego wywołuje disspose starego gameScreena. Assetami zajmuje sie AssetManager z libgdx - ta sprawa jest zrobiona porządnie.

Nie wiem co dalej robić :)
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Veldrin w Lipiec 09, 2013, 23:51:31
Hmm takie teoretycznie rozwiązanie mi przychodzi do głowy. Nie testowałem czy to w praktyce tak się zachowuje, więc nie powiem.

Bo problem jest taki, że brakuje zasobów. Na gorszym sprzęcie rozpoczyna się gra i czegoś brakuje - jest biało.

Architektura twoich zasobów graficznych to atlasy tekstur, pewnie 1-2 dla stanu gry? Może problem na bardzo kiepskich sprzętach(jak wspomniany no name tablet) polega na tym, że odpalasz AssetManagera - który działa asynchronicznie, nie wymagasz finishLoading i rozpoczynasz grę?

Wtedy mamy przykład, że nie cały atlas jest w pamięci, pointer do tekstury jest więc exception nie leci. Na lepszym sprzęcie zwyczajnie się wyrabia  i nie ma wyścigu.

To tylko teoretyzowanie - nie wiem czy takie zachowanie pojawia się w praktyce.

Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 10, 2013, 01:18:39
Nieźle kombinujesz. Ale obsłużyłem to za pomocą :
if(MyGame.Assets.getProgress() >= 1f) Zresztą - jakby niezaładowany asset został użyty to wywaliłoby stack.

Kiedy miałem ten problem na ZTE to nie zawsze te same tekstury były białe. Czasami platformy, czasami krasnale - różnie. Zrozumiałem, że tekstury muszą się nadpisywać bo są za duże. Zdywersyfikowałem atlasy i zoptymalizowałem pliki png. Zadziałało.

Czy problemem może być liczba atlasów? Przyznam, że mam ich sporo ponieważ grafika jest przystosowana do rozdzielczości HD. Czy jakbym przygotował wariant z mniejszymi zasobami i inne atlasy, dobierający zestawy do urządzenia, to mogłoby to zadziałać?

@Veldrin
Dzięki za pomoc, może dowiem się dzięki tobie o co chodzi
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Veldrin w Lipiec 10, 2013, 01:54:20
Hmm ja w swoich dwóch gierkach na Androida uznałem, że skorzystanie z atlasów nie wpłynie mi specjalnie na wydajność i każda teksturka(nawet animacji krowy) jest osobna :). Wszystkie zasoby potrzebne do gry Cows can't fly są ładowane na starcie raz i tyle.

Jest tego duuużo. Nie miałem problemu.

Napisz ILE tego jest, jakie są ich rozmiary. Może korzystasz z rozdzielczości nie obsługiwanej przez GPU?

PS. A dlaczego nie korzystasz po prostu z wartości zwracanej przez update? Choć pewnie wychodzi na to samo.

Szczególnie jak napisałeś, że jedziesz na OpenGL ES 1.0
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Cocomide w Lipiec 10, 2013, 02:53:49
W sumie 38 plików graficznych, około 20 ładowanych do stanu z grą. Wszystko maksymalnie w rozmiarze 1024x1024.

Cytuj
PS. A dlaczego nie korzystasz po prostu z wartości zwracanej przez update? Choć pewnie wychodzi na to samo.
Tak to to samo. Wcześniej używałem progress bara i tak już zostało.
Tytuł: Odp: Dwarf Dust
Wiadomość wysłana przez: Pewu w Lipiec 13, 2013, 00:25:14
Gra prezentuje się nadzwyczaj profesjonalnie i naprawdę stoi na wysokim poziomie. Bardzo podoba mi się grafika, dźwięku nie sprawdzałem. Na HTC Desire X pojawiają się niestety drobne lagi. Nie są silne, ale częste. Poprawiłbym też reakcję żyroskopu, bo jest trochę mozolne i za dużo trzeba majtać telefonem. Czekam na optymalizację ale i postęp! :) Gra jest fajna :)