walka z godotem

niedziela, 2 kwietnia 2017

Moi drodzy. Regulaminowe dwa wpisy na blogu tygodniowo okazały się wyzwaniem zbyt dużym. Czuję, że projekt jeszcze do końca nie dojrzał w mojej głowie, nie przygotowałem się odpowiednio do wzięcia udziału w konkursie. Przez to jestem zmuszany wrzucać tu content mało wartościowy, co nie bardzo mi się podoba.

Nie porzucam projektu, będę go rozwijał we własnym tempie z regularnością dostrojoną do mojego rytmu. Możecie spodziewać się także wpisów na blogu.

Jeśli ktoś z DSP2017 trafi na tego bloga życzę mu powodzenia i dużo wytrwałości. Uczestnikowi Ekhart dziękuję za pomoc jakiej mi udzielił, Maciejowi Aniserowiczowi za zorganizowanie konkursu i danie tysiącowi programistów (w tym mi) initial kopa.

Pozdrawiam i dzięki!

niedziela, 26 marca 2017

HLD

Gra, w której wrzuceni zostajemy do nieprzyjaznego świata bez jakiejkolwiek wskazówki. Gra, w której cała historia zostaje opowiedziana bez użycia chociażby jednego słowa. Gra, którą odkrywamy od początku do końca metodą prób i błędów. Wielu błędów.

Włączam grę i przenoszę się do pięknego świata spod pędzla Teddy'ego Diefa, głównego designera. Nie rozwijam statystyk, nie czytam dialogów, to wszystko nieważne. Tutaj tylko eksplorujemy i podziwiamy. A jest co podziwiać.


Hyper Light Drifter, jak już wcześniej napomniałem, to moja siła napędowa i inspiracja. Może i nie widać dużego podobieństwa między pracami moimi i pana Diefa, ale uwierzcie mi, daję z siebie sto dziesięć procent. Już teraz widzę w moich artach zadziwiającą poprawę:

przed startem DSP
wtrakcie DSP



Dla tych, którzy nie znają tytułu zostawiam linka co by mogli nacieszyć oczy. Wszystkich zachęcam do zapoznania się z Hyper Light Drifterem. Można go dostać tutaj. Pozdrawiam!

piątek, 24 marca 2017

Initial push

Czołem, wczoraj nie znalazłem chwilki więc wrzucam initial comit dzisiaj. W repozytorium znajduje się jeszcze niewiele mojego kodu, bo nadal oswajam się z interfejsem edytora. Jest skrypt odpowiedzialny za movement głównego bohatera oraz za jego animacje, nad którymi obecnie pracuję.

Tutaj nie ma linka do mojego repozytorium. Jest pod słowem "bohatera" akapit wyżej. Pozdrawiam!

niedziela, 19 marca 2017

Klik

Użycie Tileset Helpera okazało się strzałem w dziesiątkę (dzięki, Ekhart). Używając tego pluginu praca z tilesetami jest o wiele przyjemniejsza.

         Klik                                     Klik
         

                           Klik

Znaczną część niedzieli poświęciłem przyjemnością, to jest edukacji w zakresie pixel artu i popełnianiu wielu karygodnych błędów w tym zakresie. Grafikę robię w Gimpie, używam tam takich zaawansowanych narzędzi jak gumka i ołówek. Moja praca polega na nadawaniu kolejnym pixelom odpowiedniej barwy z mojej szesnastokolorowej, starannie ułożonej palety. Klik, klik, klik.

                   Klik

Na razie krótka przerwa.

Klik
                                                     Klik
 W czwartek postaram się wrzucić coś do repo, trochę tam pusto :) Pozdrawiam i do zobaczenia!


                                         Klik


czwartek, 16 marca 2017

Godotowe Tile

Niedawno zmierzyłem się z godotowymi tilesetami, to dość toporny mechanizm.

Tworzenie tilesetu polega w godocie na utworzeniu nowej sceny, do której dodajemy nody typu Sprite. Każdy utworzony Sprite bierzemy pod lupę i dodajemy mu wszystko to, czego potrzebuje aby stać się pełnoprawnym elementem świata gry - to jest texturę oraz blok kolizji. Banalne? Tak. Ale niezbyt przyjemne. Przycinanie textury polega tu na ręcznym wprowadzaniu współrzędnych i rozmiarów danego tila. Każdego po kolei...

Rysowanie bloku kolizji też nie zadowala. Aby to zrobić należy do tak sporządzonego sprite dodać dziecko typu CollisionPolygon i za pomocą narzędzia ołówka narysować obszar kolizji dla każdego tila osobno (albo skopiowanie takiego obszaru, po czym zmiana jego współrzędnych w atrybutach). Bardzo tu pomaga możliwość utworzenia na scenie siatki, do której można przyciągać punkty obszaru kolizji nanoszone ołówkiem.

Utworzyłem dla testów tileset składający się z 4 tilów i eksporotwałem go do pliku zrozumiałego dla godota. Do wyboru miałem 3 różne rozszerzenia - .xml, .res oraz .tres. Przy wgrywaniu takiego setu do mapy rozpoznawane są już tylko dwa z nich - .xml i .tres.

Trochę boli to, że nie można użyć do tej mozolnej pracy jakiegoś narzędzia wyższego poziomu. Tiled zapisuje swoje mapy w formacie .json i kilku innych, ale nie ma tam .xml ani tajemniczego .tres. Internetowy konwerter json -> xml też nie pomaga (i się nie dziwię, po prostu musiałem spróbować).

Potem spróbuję zautomatyzować ten proces, na razie czeka mnie dużo klikania, rysowania i wklepywania coordów.

Dodałem mapkę do projektu i odpaliłem grę. Patrzyłem, jak ludek popychany godotową siłą ciążenia spada w dół, po czym ląduje prawidłowo na ziemi. Satysfakcjonujące. Potem przeszedłem się w prawo... I spadłem w niewidzialną dziurę pomiędzy tilami. Dziwne, obszary kolizji narysowałem bardzo dokładnie i na postaci i na tilach. Jeszcze nie udało mi się tego przypadku rozgryźć.

Acha, godotową siłę ciążenia uaktywniłem opakowując mój Sprite postaci w obiekt o nazwie RigidBody i nadając mu tym samym atrybuty budujące jego ciało. Mogę tam na przykład zmienić wartość masy obiektu lub zabawnego atrybutu o nazwie 'bounce'. :)

Pozdrawiam!

sobota, 11 marca 2017

Dobre pierwsze wrażenie

Stwierdzam bardzo ładną, pythonową składnię gdscriptu.

Szczególnie na osobach które na co dzień mają do czynienia z JSem (jak ja) robi to napawdę dobre wrażenie.

pisanie takiego():
  kodu_naprawdę()
  sprawia_radość(wygląda_ładnie, i_czysto)

człowiek = uświadamia.sobie({
  jakBardzo: ma dość(tych) {
    głupich = nawiasów({i: klamer})
  }
)}; /* pdk */

Niestety, samo IDE Godota nie spełnia moich niewygórowanych wymagań. Pisanie skryptów w edytorze bez obsługi podstawowych skrótów klawiszowych to katorga. Postanowiłem więc przenieść się na Atoma, który to cwaniak ma w swoich paczkach kolorowanie składni dla plików .gd.

No i nie mam teraz podpowiadajki, ale trudno.

Co do mojego projektu - na razie zaprzyjaźniam się z nową technologią. Godot ma na swojej stronie zarówno tutoriale jak i wiele przykładowych projektów, których kod można sobie pooglądać.
https://godotengine.org/showcase

Szybko odnalazłem fajnego platformera, pobrałem go, pograłem, wszedłem w kod, podbiłem sobie jumpa i szybkość, znów pograłem. Fajne. Potem zacząłem analizę kodu.

Utworzyłem własny projekt, wgrałem fajną texturę do noda typu sprite, jak nakazują tutoriale. Napisałem prosty movement. Podoba mi się, piszę dalej. :-)

sobota, 4 marca 2017

Dzień dobry


Każdy klepacz kodu w pewnym momencie swojego nędznego życia musi popełnić grę, tak jak każdy mężczyzna posadzić syna.

Mimo, że do rasowego gamera mi daleko to jednak do niektórych starszych tytułów odczuwam pewien sentyment, a niektóre nowsze wciąż są w stanie sprawić, że po plecach przejdą mi ciarki. Do tej drugiej kategorii (nowszych gier) zaliczam przede wszystkich Hyper Light Driftera, który to kazał mi na siebie czekać ładnych parę lat. Jednak było warto, dynamiczna rozgrywka mega wciąga a przepiękna grafika to arcydzieło pixelartowej sceny. Arcydzieło tak wielkie że poruszyło moje wrażliwe serce developera-poety. Dlatego też grafikę do mojego projektu będę robił sam i będę się starał ze wszystkich moich dwóch sił.

Patrzcie tylko na tego byka, jaka dorodna kupa pixeli.



Grafika pochodzi z mojego porzuconego projektu gry survivalowej na bezludnej wyspie, do którego zrobiłem tylko movement i ruch kamery. I dużo spritów.

Co do mojego projektu konkursowego - na razie ogarniam tutoriale, wkrótce podzielę się zdobytą wiedzą.