Kot w JavaScript #3 || Dlaczego nienawidzę 'state machine' i czym właściwie jest ct.js?

BLOG
6V
user-2119469 main blog image
Skomplikowany | Dzisiaj, 19:31
Poniżej znajduje się treść dodana przez czytelnika PPE.pl w formie bloga.

Do rozpoczęcia prac nad moim nowym projektem pod nazwą kodową Gridlock zainspirowały mnie trzy zupełnie różne od siebie gry. 

Cześć, witajcie!

Nie rozpisując się, zapraszam do tekstu. 

 

Trójca inspiracji

Niemal każdego twórcę gier spotyka jakaś inspiracja w postaci gier (lub gry) Indie czy Triple-A. Nawet wielkiego hitu. Gra Vampire Survivors inspirowała się Magic Survival. Gra TetherGeist inspirowana była Celeste. W moim przypadku to trzy różne gry.

Pierwsza to taka, z której zbuduję rdzeń gry. Jest to Duck Game. Ta gra to istna rywalizacja i - nie lubię tego słowa - integracja. Chciałbym, by moja gra tak samo zbliżała ludzi, którzy w nią grają, łącząc z kanapową rywalizacją 1v1 na wspólnym ekranie (tak wiem, nic odkrywczego).

Druga to taka, z której zaczerpnę walkę. Gracz nie będzie więc strzelać jak w Duck Game, ale zadawać ciosy. Tą inspiracją jest Hollow Knight, z którego poza podstawą walki chciałbym wyssać magię muzyki, która nadaje klimatu i dynamiki. 

Trzecia to taka, która będzie mi służyć jako wzór graficzny. To z kolei Thomas was Alone (do wzięcia tej inspiracji pod uwagę zainspirował mnie pewien komentarz pod jednym z poprzednich wpisów z serii). Czyli... gracze będą klockami. Tak. 

Poza tymi, mam jeszcze trzy, w pewnym sensie poboczne inspiracje: Animation Versus (gra w fazie produkcji, bijatyka), Gran Turismo 7 (oczywiście gra wyścigowa. lubię czasem pograć z kimś na jednym ekranie), TetherGeist (tutaj akurat chcę inspirować się twórcami tej gry za ich pasję).

[pierwsze zdjęcie z galerii]

TetherGeist

Dlaczego nienawidzę 'state machine'?

I tutaj drugie wytłumaczenie, dlaczego wolę tak minimalistyczną grafikę - maszyna stanów. Nie żebym nie umiał jej zastosować, ale żmudne sprawdzanie z dziesięciu stanów, w jakim jest dany obiekt (np. gracz) i potem dobieranie odpowiedniej animacji, jest dla mnie płotem (bo nie murem). Czy jest w tym jakaś głębia, żebym mógł coś o tym jeszcze napisać? Chyba nie.

Czym jest ct.js i dlaczego on?

W zasadzie to nigdy nie pisałem, czym dokładnie jest ani dlaczego akurat ten silnik (chociaż w sumie też nikt nie pytał). 

Ct.js jest silnikiem typu opensource, co dla zjadacza chleba oznacza, że do kodu silnika może zajrzeć każdy (w przeciwieństwie do popularnego Unity). Zalety? Obsługuje dwa proste języki, JavaScript oraz CofeeScript (język podobny do Pythona), sprzyjające szybkiemu tworzeniu gier, oraz język bloczkowy przypominający trudniejszego Scratcha - Catnip (z ang. kocimiętka). Jego edytor jest wizualnie wygodny dla oczu, w przeciwieństwie do silników takich jak Unreal czy Godot. Powiem jeszcze, że nie używa on czystego JS, co może przysporzyć dodatkowych trzydziestu minut nauki dla znających już sam język (chociaż ct.js używa JS jako języka skryptowego, wiele czynności jest ułatwionych o 300% jak nie więcej i warto nauczyć się jak najwięcej dodatkowych funkcji). Z wad silnika wymienię choćby brak natywnego systemu świateł, choć znajdzie się na to łatwe rozwiązanie. 

[drugie zdjęcie z galerii]

ct.js

Ale dlaczego używam ct.js? Przez wymienione powyżej zalety tego silnika. Poza tym, polubiłem społeczność na Discordzie ct.js za możliwość pomocy w odnalezieniu rozwiązania na dany problem czy w pewnym sensie otwartego twórcy CoMiGo, który samodzielnie tworzy narzędzie od lat. 

Ciekawostka: nazwa serii "Kot w JavaScript" nawiązuje do loga ct.js, którym jest kot.

 

P. S.

Mam nadzieję, że jasno i zwięźle opisałem plan na nową grę oraz przekonałem kogoś do rozpoczęcia przygody z gamedevem lub użycia ct.js. Jeśli znajdą się chętni, może nawet spróbuję tutaj coś napisać, by pomóc innym w nauce - no bo najlepiej się uczyć, ucząc innych.

Oceń bloga:
0

Komentarze (0)

SORTUJ OD: Najnowszych / Najstarszych / Popularnych

cropper