Fastbar
Powrót do strony głównej
Trzymaj pliki na gmclan.org!
Game Maker w pytaniach i odpowiedziach!
Polska dokumentacja
Tabela wyników ligi 24
Pobierz GM
Akademia GMCLANu
Kategorie bazy artykułów
Artykuły -> Game Maker -> Kursy dla początkujących
Treść artykułu
"Nieznany problem z usługami Google Play" dla GM:S 1.4
autor: Threef (4.03.16)
Prawie wszystkie zewnętrzne API w GameMaker: Studio 1.4 zostały przeniesione do zewnętrznych rozszerzeń (extensions). Ma tu duże plusy, a największym jakim się chwali YoYoGames jest to że wcześniej zmiany w zewnętrznym API wymagały zmian w samym GM:S a to skutkowało nowym update. Teraz YoYoGames może wypuścić sam update dla rozszerzenia bez zmuszania nas do pobierania najnowszej wersji całego programu.

W ten sposób zmieniły się między innymi API Padów MOGA, Facebooka, Analityki, no i Play Services o których jest ten drobny artykuł. Gdy będziemy próbowali aktywować w Global Game Settings któreś z zewnętrznych API zostaniemy przeniesieni do Marketplace gdzie będziemy mogli pobrać i dodać do naszego projektu odpowiednie rozszerzenie.

Skoro jesteśmy przy pobieraniu wspomnę ze gdy ktoś po zaktualizowaniu do wersji 1.4 ma problem ze skompilowaniem apk to musi pobrać Android Support Library i Android Support Repository. Oba poprzez Android SDK Manager z zakładki Tools.

Ale przejdźmy już do Google Play Games Services czyli usług udostępniających nam łatwe osiągnięcia albo tabele wyników dla Androida. Nie jest to instrukcja jak zaimplementować te usługi do waszych gier. Wszystko jest dobrze wytłumaczone na tech blogu YoYoGames, a w GameMakerze macie dołączone demo pokazujące jak skonfigurować usługi. Ja tutaj krótko skupię się na problemie jaki męczył mnie od ponad 4 miesięcy czyli:
cytat:
Nieznany problem z usługami Google Play.

Błąd który nie ma najmniejszego sensu. Nie blokuje gry. Nie daje komunikatu gdzie jest błąd. Wyniki w Google nigdzie nie prowadzą. Błąd który pojawia się po zalogowaniu i powoduje jedynie to że Play Services nie działa w grze.
Spędziłem sporo czasu sprawdzając wcześniejsze wersje GameMakera lub pobierając różne SDK. Dopiero przedwczoraj puściły mi nerwy i zacząłem szukać po forum GameMaker Community najróżniejszych tematów o problemach z Androidem i w końcu znalazłem rozwiązanie. Okazuje się że to wina YoYoGames, a błąd jest banalny i prawdopodobnie zostanie poprawiony za jakiś czas. Miejmy nadzieję że ten artykuł nie będzie potrzebny zbyt wielu osobom.

Błąd występuje w GooglePlayServicesExtension v2.2.1 i dotyczy Google Cloud Saving. Zupełnie innej usługi która jak się domyślacie służy do zapisywania stanów gry w chmurze. Szkoda tylko że nie jest to udokumentowana funkcjonalność i trzeba będzie się dokopywać do niej samemu. Dokumentacja dalej twierdzi że dostępne są tylko usługi chmury Amazon WhisperSync.
Tak więc nasz błąd jest wywoływany przez Google Play Games które poprzez Google Play Services stara się wywołać nie skonfigurowany Google Cloud Saving. Chodzi o to że nasza gra pyta o Cloud Saving, ale my nie umożliwiliśmy go aplikacji poprzez konsolę developerską. Jaki byłby sens zaznaczać ten ptaszek skoro nie zamierzamy korzystać z zapisów w chmurze? Stąd właśnie jest problem że pomimo iż mamy odznaczony podobny ptaszek w Global Game Settings naszego projektu to nasza gra sama pyta o używanie Cloud Saving!

Więc jednym z rozwiązań tego problemu jest po prostu włączenie zapisu do chmury w Google Play Developer Console. Ja nie testowałem tego rozwiązania, a od razu przeszedłem do drugiego które poprawia ten błąd. Aby to zrobić musimy edytować pliki rozszerzenia. Dokładnie ten jeden plik.
cytat:
ŚCIEŻKA DO PROJEKTU\extensions\GooglePlayServicesExtension\AndroidSource\Java\GooglePlayServicesExtension.java

Przechodzimy do linijki 97 gdzie znajdujemy ten kawałek kodu:
kod:
if( bCloudEnable )
//{
//These are needed if you are using the cloud saving functionality, if you have them in & do not have save games enabled in your google developer console for your game, you won't be able to log
// in to google play services...
Log.i("yoyo","Adding Google Drive API for cloud saving");
builder.addApi(Drive.API);
builder.addScope(Drive.SCOPE_APPFOLDER);
//}


Jak widać klamry zostały wykomentowane z jakiegoś powodu przez YoYoGames. Przez to warunek nie ma znaczenia i kod wykona się niezależnie od niego. Sam komentarz wewnątrz klamr opisuje wszystko bardzo dobrze. Gdyby kogoś interesowało to warunek sprawdza czy w Global Game Settings został zaznaczony ptaszek od Cloud Saving. Jeżeli warunek nie jest brany pod uwagę to i ptaszek nie ma znaczenia.
Powoduje to że nie ważne czy chcemy czy nie, do naszej gry zostaje dopisane API Google Drive. To skutkuje znowu tym że nasza gra nie może się zalogować do Play Services bo nie zgodziliśmy się aby korzystała z tego API.

Musimy odkomentować klamry i sprawić aby warunek działał. Zapisujemy plik. Czyścimy Cache w projekcie i kompilujemy go ponownie. Teraz wszystko powinno działać. Nasza gra będzie się nareszcie logować do Google Games i wysyłać punkty do tabel wyników, a nasi gracze będą mogli zdobywać osiągnięcia!
głosów: 2 | ocena: 9.99 oceń zasób | dodał: Threef
Komentarze
stron: 1

1


av

Uzjel (17:46, 4.03.2016)

Zamiast tego, wystarczyło zezwolić w konsoli Google API na Drive API lub wyłączyć Cloud Saving w konsoli programisty

av

I am Lord (18:43, 4.03.2016)

A ktoś też miał problem, dzisiaj pisał. Im am vader?

av

Threef (19:08, 4.03.2016)

Uzjel: Właśnie na odwrót. Trzeba włączyć Drive API w konsoli.

av

Uzjel (0:50, 5.03.2016)

Tak napisałem.

av

I am vader (15:29, 7.03.2016)

Tak, ale moj problem byl z kompilacją na androida, no more, no less. To moze byc problem z moją konfiguracją, nie kompilowałem od czasu przenosin na nowy dysk, chociaz GM wykrywa wszystko za poprawnie skonfigurowane.

av

Threef (16:19, 7.03.2016)

@I am vader: Może długość ścieżki? Nie dość że trzeba mieć krótką ścieżkę do SDK Androida to i trzeba podać nową ścieżkę w konfiguracji GM dla jego cache. Bo GM wrzuca pliki do tamtego folderu i stamtąd próbuje kompilować.

av

Uzjel (1:22, 8.03.2016)

Fakt, przeskakiwanie z wersji stabilnych jest bardzo trudne czasami :/

av

gnysek (20:06, 9.03.2016)

I najlepiej nie mieć polskich liter i spacji w żadnej ze ścieżek.

av

I am vader (23:19, 9.03.2016)

@Threef - Ścieżki mam takie same i równie krótkie jak miałem oryginalnie, po prostu na nowym dysku. Powinno działać..

av

gnysek (11:09, 29.03.2016)

Teraz to jeszcze trzeba podać dla jakiej wersji gra ma się kompilować od kiedy mają ten nowy kompiler. Jak podasz inne niż masz pobrane, zapomnij o tym, że się uda.

stron: 1

1



Dodaj komentarz:
Treść:
Menu
Panel użytkownika
Jesteś niezalogowany!

Nie masz konta? Zarejestruj się
Użytkownicy on-line
12 użytkownik(ów) aktywny(ch) przez ostatnie 15 minut:
gości: 12, userów: 0, ukrytych: 0
Użytkownicy na czacie discord
MaxGaming (1:21, 21.07.18):
Tylko powiem że wgl tu nie chodziło o muzykę a tym bardziej o polską xd
MaxGaming (1:21, 21.07.18):
Hahaha po prostu nie ważne XD
I am vader (1:14, 21.07.18):
Mam w dupie polską scenę, polski internet i polską muzykę, nie wiem kim jest martyna Linkiewicz i nie chcę wiedziec i mi z tym dobrze.
MaxGaming (1:01, 21.07.18):
Poczytaj dlaczego zdobyła fejm. Niestety nie mogę tego napisać na portalu gdzie są dzieci...
MaxGaming (1:01, 21.07.18):
Że w 2018 roku trzeba jeszcze takie zaetty tłumaczyć xd
MaxGaming (1:00, 21.07.18):
Ale nie chodzi o hip hop tylko o Martynę Linkiewicz xd nie musisz słuchać rapu żeby znać tą historię xd
I am vader (0:43, 21.07.18):
Nie wiem co hip hop(??) ma do tego
MaxGaming (0:28, 21.07.18):
A dla niektórych od koncertu Rae Sremmurd
MaxGaming (0:26, 21.07.18):
Niestety ale bycie celebrytom zaczyna się od 5 lajków...
I am vader (23:44, 20.07.18):
4 lajki podglądu który wrzuciłem, czy to już sława?
Wojo (10:13, 20.07.18):
Prawda:p
MaxGaming (4:49, 20.07.18):
Bo te egzaminy są śmieszne jak to całe technikum XD
I am vader (1:08, 20.07.18):
Papierki są do rozpałki
Sutikku (0:07, 20.07.18):
głupie rozwiązanie, czemu nie pozwolić każdemu kto chce przystąpić? Strach przed tym, że egzamin wcale nie potwierdza kwalifikacji do zawodu? To może pora coś zmienić
Wojo (23:36, 19.07.18):
2 lata w zawodzie bądź w szkole poliecalnej z tego co mi wiadomo
Sutikku (23:34, 19.07.18):
trochę śmieszne gdybym miał zdane egzaminy zawodowe, a chodziłbym do szkoły na lekcje które mają mnie do nich przygotować
Sutikku (23:32, 19.07.18):
takie pytanie mam, czy hipotetycznie można podejść do egzaminów zawodowych nie kończąc szkoły? W sensie, jak jestem w 2 technikum czy mógłbym sam się przygotować i podejść do egzaminu w jakiejś instytucji w tracie kiedy ostatnie klasy technikum będą je pisać
Wojo (21:45, 19.07.18):
eigentlich, masz rację
I am vader (19:17, 19.07.18):
Jest różnica między podmienieniem całego zdania, a podmianą w trącenia jak "I mean" lub "Actually".
Wojo (16:45, 19.07.18):
Oh Wojo stop being so mean...
Wojo (16:44, 19.07.18):
Ja znaju kak pa polski gawarit, lecz podobają mi się takie wtrącenia z obcych języków
I am vader (12:48, 19.07.18):
I mean, wiedzialem ze ds_mapy tak robią, ale zapomniałem o tym gdy pisałem ten kawałek kodu.
gnysek (10:07, 19.07.18):
tak, ds_mapy od jsonów usuwają sie same. Można też zrobić tak z własnymi chyba, ze się dowiązane usuwają, za pomocą ds_list_mark_as_list / ds_list_mark_as_map
I am vader (22:31, 18.07.18):
Głupi, prostacki błąd, ale głęboko w kodzie, więc nie zwróciłem na to uwagi wcześniej
I am vader (22:23, 18.07.18):
Jakby kogos interesowalo skad moj problem z ds_listami, to dlatego ze uzywalem tych ds_list do robienia JSON, ale jak juz nie potrzebowalem tymczasowej ds_mapy(ktora byla tylko po to aby zbudowac JSON) to usuwalem te ds_mape a to usuwalo z kolei wszystkie powiazane ds_listy, a tych nie chcialem usuwac.
MaxGaming (20:39, 17.07.18):
Zamknięty system operacyjny...
Wojo (19:21, 17.07.18):
sklep play jest czynny tylko do godziny 17 i w niedziele handlowe...
MaxGaming (17:48, 17.07.18):
Sklep play mógłby też istnieć na darmowym/płatnym androidzie który byłby zamknięty
MaxGaming (17:48, 17.07.18):
Nie mogą pobierać opłat od producentów w obecnej formie licencyjnej.
MaxGaming (17:47, 17.07.18):
A coś więcej ktoś wie niż domniemania? Admob mógłby istnieć i bez androida i na androidzie zamkniętym
Wojo (14:46, 17.07.18):
jak cos to tylko wyjaśniam gmclanowemu koledze
I am vader (14:36, 17.07.18):
No jak korzystasz z googlowskich reklam jak admob to oczywiscie ze za darmo by tego nie robili.
Wojo (8:12, 17.07.18):
nawet reklamy w aplikacjach przynoszą profit googlowi z tego co mi wiadomo
Wojo (8:12, 17.07.18):
wydaje mi się, że pobierają opłaty od producentów ale jeśli nie to na androidzie korzysta się z usług google w dużej mierze. Sklep play, który kiedyś nosił nazwę android market, google play jest własnością google. Mapy też są własnością google. Pomijam fakt, że aby korzystać z tych funkcji to należy założyć konto google.
MaxGaming (7:46, 17.07.18):
Ale to że ma jądro Linuxa nie oznacza że system musi być otwarty. No i wątpię że google pobiera opłatę od urządzenia tym bardziej że są odmiany androida które nie podlegają google'owi
Uzjel (23:44, 16.07.18):
Coś z ds_'ami było zwalone w HTML5, kiedyś, kiedyś, kiedyś...
I am vader (23:41, 16.07.18):
Rzecz w tym ze chodzi doslownei o funkcje ds_list_copy, zadne "wlasne rozwiazanie"
gnysek (23:11, 16.07.18):
kopiowanie ds_list brzmi jak coś, co na 90% się moze zepsuć aczkolwiek jesli nie istnieje, to albo złe id, albo gdzies kasujesz złe id.
I am vader (20:46, 16.07.18):
Chociaz podejrzewam ze to ja cos zrypalem przy kopiowaniu ds_list
I am vader (20:30, 16.07.18):
Czy ktoś jeszcze ma taki problem ze jak w jednym create stworzy za wiele ds_list to potem wywala blad ze taka ds_lista nie istnieje?
Wojo (19:37, 16.07.18):
to po 1 a po 2 android jest linuxem czyli oprogramowaniem na darmowym jajniku, które można modyfikować wedle własnego uznania
I am vader (17:49, 16.07.18):
To co powiem to czyste zalozenie na logike, nie sprawdzalem poprawnosci tej informacji: To ze system jest darmowy dla uzytkownika, nie znaczy ze jest darmowy dla producenta. Kiedy kazdy dobrze sprzedajacy sie telefon ma twoj system, zarabiasz na licencjach krocie.
MaxGaming (14:05, 16.07.18):
Mógłby ktoś mi wytłumaczyć dlaczego Android powstał jako produkt google. Jakie ma z tego profity google w stosunku do normalnej licencji?
Wojo (19:09, 14.07.18):
popieram Cię vader. Przecież ten kształt można zastosować niemalże do wszystkiego
I am vader (16:35, 14.07.18):
golden ratio to najwiekszy scam jaki powstal.
Wojo (9:04, 14.07.18):
już kiedyś o tym było na gmclanie i w podświadomości wiedziałem co to ale myślałem, że to jest co innego
Wojo (8:54, 14.07.18):
dobra już wiem co to
Wojo (8:17, 14.07.18):
Przysięgam że dopiero teraz ją zauważyłem
Wojo (8:17, 14.07.18):
Chell jak się nazywa ta serpentyna widoczna na screenie?
Ankieta
» Jakie kursy najchętniej widziałbyś na stronie ?
GM Studio
GM Studio 2
Godot
Construct

GMCLAN to serwis o programie Game Maker i nie tylko.
[ Polityka prywatności ]
Copyright © 2002-2018. GMCLAN.ORG
Wszelkie prawa zastrzeżone. Kopiowanie materiałów bez zgody redakcji zabronione!
© 2002-2017 Ranmus (ranmus.pl), © 2017-2018 {=|=} fable_inside();

[ Czas generowania strony: 0.02454 sekund ] [ Liczba zapytań MySQL: 13 ]