31 lipca 2018

[LibGdx] Nie zasypuję gruszek w popiele

Ostatnia aktualizacja bloga była dosyć dawno, ale wbrew wszelkim pozorom nie siedzę z założonymi rękoma. Jestem w trakcie budowania sporej, jak na moje możliwości czasowe, gry w libgdx. Niestety nie mogę jeszcze pochwalić się czego dokładnie dotyczy.

Przykładowo wygenerowana mapka. Ładnie widać efekt triangulacji

Przy okazji pracy w libgdx wykonałem ponownie tutorial (wyjściowo oparty o silnik unity) dotyczący generowania map na bazie pikselowego szumu. Tym razem w libgdx. Postaram się na dniach umieścić kod projektu w ramach jakiegoś dłuższego wpisu (lub ich cyklu). Ze względu na to, iż jest to w dużej mierze kopia kodu zrobionego w z tutoriala nie będę wklejał każdej jednej klasy w całości, a skupię się na zastosowanych w kodzie rozwiązaniach.

Z góry zaznaczam, że generator mapek nie jest częścią wspomnianego na początku projektu.

07 maja 2018

[LibGDX] Start nowego projektu

Startuję z nowym projektem. Na tę chwilę nie mogę jeszcze dokładnie napisać o czym będzie, ale mam nadzieję, że wkrótce zmieni się to.

Z informacji, którymi mogę się podzielić: będzie to gra (a jakże!) napisana w libGdx, której przeznaczeniem będzie trafić na sklep Google Play. Czyli witaj Androidzie!
W tej chwili mam  zapewnione wsparcie: grafika (uff!), drugiego programisty i chętnych do testowania produktu. Przewidzianych jest kilka (!) lokalizacji.
Wyzwanie jest spore ponieważ  poza samym pisaniem gry trzeba będzie zająć się wieloma sprawami organizacyjnymi związanymi z powstaniem komercyjnej aplikacji.

Do odważnych świat należy!

Życzcie mi szczęścia.

20 kwietnia 2018

Koniec laby

Kończę z nieróbstwem! W najbliższym czasie ruszam z kolejnym projektem. Tym razem będzie to pełnoprawna aplikacja na Androida oparta o libGdx. Sądzę, że trochę zaskoczę was tym co będę robił.
Przy okazji mam nadzieję, że nie rzucam się z motyką na Słońce, ponieważ programowanie systemów bankowych różni się od programowania gier.
A czas, który mógłbym wieczorami przeznaczyć na programowanie, marnuje przy FTL. Gdybym zliczył spędzone przy grze godzinki wyszło by ich co najmniej 30 jak nie 2x więcej, a tyle spokojnie wystarczyłoby na poznanie niemal wszystkich podstawowych i części zaawansownych technik nowego języka czy biblioteki. Cóż ...
 Do mijającego tygodnia nie miałem jednak sensownego planu co robić dalej. Szczęśliwie  sytuacja zmieniła się i pojawił się spory temat, którego wykonanie zajmie mi dobre 100 -150 godzin pracy. W tej chwili jestem na etapie planowania zakresu prac i zbierania sił.


A tak marnuje czas - udany atak na statek matka z użyciem slug crusiera i dwóch promieni zapalających!

08 kwietnia 2018

Marnowanie czasu, poziom 9000

Miałem wieczorami pisać w libGdx, a spędzam czas na graniu w Faster Than Light. Nie ma to jak dobrze napisana gra. Wciąga niczym bagno i świetnie stymuluje do przysłowiowej jeszcze jednej tury.

Wystrzegajcie się FTL jak ognia jeśli chcecie na komputerze robić coś sensownego. :)

28 marca 2018

[libGdx] Aktualny stan gry

Poniżej krótki gif, który pokazuje stopień zaawansowania prac toczących się nad grą i jednocześnie książką.

Widoczny na niej ludzik jest w pełni sterowalny, zderza się ze ścianami (oddzielna od warstwy grafiki warstwa kolizyjna) i potrafi chodzić po całej, zdefiniowanej w pliku, planszy miasta. Jeszcze nie potrafi przechodzić pomiędzy mapami  (miasto, świat , podziemia) ponieważ realizacja tego elementu jest w dalszych rozdziałach książki, a aktualnie siedzę nad okienkiem menu postaci i statystyk.



Równie małymi kroczkami, niczym bohater powyższej grafiki, zbliżam się do końca książki.

Przede mną przechodzenie między mapami, poprawienie warstwy kolizyjnej (jest przesunięta w poziomie), efekty cząsteczkowe, dodanie tekstur dnia i nocy, zapis, odczyt i pincet innych drobiazgów.

25 marca 2018

[libGdx] Małym krokami do przodu

Kolejne godziny w libGdx za mną. Udało mi się znaleźć przyczynę podwójnego ładowania ekranu gry (błąd widoczny jest w poprzednim wpisie) i teraz ludzik potrafi już samodzielnie chodzić po całej dostępnej planszy.

Uczenie się libGdx  z książki bywa jednak uciążliwe. Autor przeskakuje całe bloki kodu od tak sobie lub nagle do prawidłowego działania aplikacji potrzebny jest kod, który jest 10 stron dalej. W efekcie co chwila gra przestaje całkowicie działać. Szczęśliwie cały projektu  dostępny jest on-line, więc jeśli czegoś nie znajdę w treści książki to jest w dostępnym sieciowym zasobie. Tak czy inaczej, gdyby nie posiadane doświadczenie w programowaniu, gra zwyczajnie by nie działała.

Druga rzecz, jaka rzuciła mi się w oczy w czasie pracy z książką, to nieopisywanie w części przypadków dlaczego coś ma być wykonane w ten, a nie inny, sposób. Niektóre użyte w grze rozwiązania architektoniczne (lub programistyczne) nie są wystarczająco wytłumaczone. Odniosłem także wrażenie, iż autor pisze kod w dany sposób ponieważ robił tak do tej pory, ale nie wie właściwie dlaczego. Jako twórca książki można by z przekąsem powiedzieć Ależ to rozwiązanie jest oczywiste, powinieneś je już znać!, jednak po przerobieniu ponad 150 stron uważam, że część technik powinna być opisana trochę szerzej. Nie ma problemu ze znalezieniem odpowiedzi w internecie, ale jeśli autor używa jakiegoś elementu biblioteki to może warto wspomnieć dlaczego. Tego przynajmniej oczekiwał bym  od książki.

Mimo powyższych uwag pisanie dosyć skomplikowanej gry z książką przed oczami jest ciekawsze niż klepanie prostych, zwykle jednoklasowych, przypadków użycia libGdx. Zdecydowanie nie jest to jednak pozycja dla osób, które do tej pory nie miały wiele wspólnego z programowaniem.




20 marca 2018

Wojownik, libGdx i kolejna gra

To już ponad miesiąc od ostatniego wpisu! Patrząc na moją dotychczasową aktywność trzeba przyznać, że się opuściłem. Główną przyczyną takiego stanu rzeczy jest (powoli przechodzące) przemęczenie spowodowane pisaniem Wojownika Autostrady i nauką Angulara. Każdy ma pewien próg, powyżej którego głowa przestaje przyjmować wiadomości i potrzebuje odpoczynku.


 
Chciałbym pokazać wam statystyki użycia strony zawierającej Wojownika Autostrady (po prawej). Oczywiście największy pik zainteresowania nastąpiłwraz z pojawieniem się gry w Internecie i informacji o niej na stronie Kryształów Czasu oraz na profilu fb portalu czy tu na blogu. Z upływem czasu zainteresowanie znacząco spadło, ale jest to zrozumiałem. Po prostu ci - którzy mieli pograć - pograli :).

Podejrzewam też, że nikt nie dotarł do ostatniego - 350 - paragrafu ponieważ gra jest po prostu morderczo trudna. Nie zrobiłem niestety zapisu statystyk odwiedzin poszczególnych paragrafów, a powrót do programowania w PHP, co byłoby nieodzowne,  aby uzyskać te dane, uważam za średnie rozwiązanie. Wystarczy rzeźba w javascript.
Trzeba by (sugestia czegoja) wprowadzić tryb łatwy lub ogólnie możliwość wyboru poziomu trudności. 


A jakie mam plany?
Atakuje Androida oraz bibliotekę graficzną libGdx! I mam już pierwszy mały sukces. Poniżej zrzut z tworzonego na bazie książki prostego rpg-a. Na razie jako aplikacja desktopowa, którą docelowo będę chciał zportować do Androida. Zrzut jest statyczny (może w końcu nauczę się robić gify...) ale spieszę powiedzieć, że widoczny tam wojownik reaguje na naciśnięcie klawiszy kierunkowych i posiada animację kierunkowego ruchu.  I na razie nie wiem dlaczego mapa ładuje się podwójnie :P




Naukę libGdx i pisania gier opartych na tej bibliotece opieram o książki: Mastering LibGDX Game Development, Android Game Programming by Example oraz Killer Game Programming in Java. I wszystko oczywiście w javie. Normalnej javie :)
Generalnie czeka mnie trochę nauki, ale efekty są zachęcające.
p.s.
A moglibyście spytać dlaczego nie skorzystam z Unity? Przecież niemal 80% gier dostępnych na Androida powstałą w tym języku. Cóż nie znam C# :P I nie chce mi się go uczyć :P

12 lutego 2018

Wojownik Autostrady Piekło na Autostradzie

Dzisiaj mamy niezbyt okrągłą rocznicę urodzin Joe Devera (dokładnie  62 rocznicę). Pisarza znanego
w Polsce głównie z cyklu gier paragrafowych opisujących losy Cala Phoenixa czyli Wojownika Autostrady. Dever ma na koncie dużo więcej gier paragrafowych z czego kilka jest o wiele bardziej rozbudowanych fabularnie niż przygody Cala. Więcej informacji znajdziecie na angielskiej wersji wiki dotyczącej Joe Devera.

Ale nie o  tym miało być.

Z dniem dzisiejszym ogłaszam zakończenie prac nad większymi elementami silnika paragrafowego utrzymującego interaktywną wersję Wojownika Autostrady.  Przy okazji usunąłem ekran witający informacją o beta testach. W pełni uruchomiłem wszystkie przewidziane w projekcie funkcjonalności i oddaję teraz tę grę w wasze ręce. Mam nadzieję, że przechodzenie jej dostarczy wam tyle samo radości jak mi przerobienie jej w wersję on-line.
Droga do zakończenia projektu była dłuższa niż się spodziewałem, ale cieszę się, że podjąłem się tego zadania.
Wiec jeśli tu jesteś to zmierz się z przeciwnościami losu jakie czekają każdego kto chce przekroczyć spalone słońcem i zniszczone wojną bezdroża Teksasu jako:



interaktywna paragrafówka on-line


p.s.
Wszelkie uwagi nadal są miło widziane. Drobne poprawki będę wprowadzał na bieżąco.
Gra zostanie na podanym adresie do końca świata i jeden dzień dłużej , czyli do momentu w którym będę płacił za domenę :)  .



11 lutego 2018

Angular Freeway Warrior Highway Holocaust

Droga dobiega końca. Angularowy Wojownik Autostrady właśnie otrzymał ostatni dodatek, który wymieniłem we wpisie z września zeszłego roku. W tej chwili jestem w trakcie szlifowania rozwiązania związanego z przełączaniem języków.

Nie sądziłem, że napisanie tej paragrafówki, zajmie mi tyle czasu. Gdyby ktoś, we wrześniu, powiedział mi, że na efekt końcowy będę musiał czekać tak długo i że  będzie mnie to kosztowało tyle pracy to prawdopodobnie nie podjąłbym się tego zadania. Może to i lepiej. Udało się i jestem z siebie zadowolony. Sporo w tym czasie nauczyłem się - tak na temat angulara jak i samej pracy nad organizowaniem swojego wolnego czasu. Niemal przestałem grać na kompie  (sądzę że spokojnie 5x mnie gram w gry niż jeszcze pół roku temu), oglądać głupoty w necie czy cokolwiek robi się przy kompie, aby zmaksymalizować marnowanie wolnego czasu.

Ostatni miesiąc był mega trudny - widziałem już koniec prac, ale cel nie przybliżał się gdyż nie poświęciłem mu wystarczająco wiele uwagi. Po prostu przemęczyłem się pisaniem gry, nauką i pracą w efekcie szybkość pracy spadła dramatycznie.

Nie można jednak poddawać się u kresu drogi! Jeszcze kilka, kilkanaście linii kodu przede mną.

Poniżej zrzuty ekranowe z wersji polsko-angielskiej. Możliwe jest przełączanie się na bieżąco między językami. Nie wszystko jest przetłumaczone (np. nie tłumaczyłem opisów efektów ataków), ale to co jest spokojnie wystarcza, aby osoba anglojęzyczna mogła się spokojnie pobawić. Dorzucę jeszcze tłumaczenia nazw przedmiotów (tego brakuje), wyczyszczę angielską wersję i będzie koniec!



Dla próby już  wrzuciłem tę wersję na serwer, ale wymaga kilku poprawek. Może jakimś cudem zdążę (przed 12.02) wrzucić wszystko w ostatecznej wersji na serwer ale grać oczywiście można:

08 lutego 2018

Dead line się zbliża

Już niedługo (12.02) założony termin zakończenia prac i ostatecznej prezentacji gry, a ja siedzę i dorabiam polsko-angielskie etykiety.

I jeszcze sporo przede mną. Mam nadzieję, że wyrobię się do poniedziałku .