Tworzenie gry Mazer – prolog

Co mają kamienie szlachetne, wieża szachowa, plan mieszkania i sierżant do pisania gry? Co trzeba umieć i zrobić, aby stworzyć grę na telefony i komputery stacjonarne?

Tym wpisem rozpoczynam serię artykułów, które będą retrospekcją z tworzenia gry Mazer, którą pisałem na przełomie kilku ostatnich lat. Była to nie lada przygoda i wyzwanie – mam Ci do opisania wiele interesujących problemów, na które się natknąłem, przedstawienia ich rozwiązań, opowiedzenia anegdot i podzielenia się doświadczeniami z procesu tworzenia gry – zapraszam do czytania!

Prolog

Ostatnio wydałem moją pierwszą oficjalną grę – ponad dwadzieścia lat po moim starcie z programowaniem.

Moja przygoda z grami zaczęła się od Pegasusa – małej, szarej konsoli, którą podłączało się do telewizora, a postaciami sterowało za pomocą prostokątnych padów z kilkoma przyciskami. Do dziś pamiętam uczucie i dźwięk towarzyszący wkładaniu i wyjmowaniu kartridża z grą.

Konsola Pegasus, na której grałem w dzieciństwie
Pegasus, na którym grałem 30 lat temu

Po długim użytkowaniu Pegasusa przesiadłem się na mój pierwszy komputer i dzięki niemu moja fascynacja grami jeszcze bardziej się rozwinęła. Pierwszą grą, którą dostałem, był Smerfoteletransporter, w której należało uratować Smerfetkę porwaną przez Gargamela.

Zanim zacząłem myśleć o ogólnym procesie tworzenia gier (projektowanie, implementacja, testowanie), zastanawiałem się: jak to jest, że gra po prostu działa? Co sprawia, że postacie poruszają się, gdy nacisnę dany przycisk? Jak animowani są bohaterowie gier? Jak to się dzieje, że postać idzie w określone miejsce, skąd zna trasę, czy jest ona na sztywno zaprogramowana, czy może jest jakiś sposób wyznaczenia tej drogi na ekranie na bieżąco? Jak liczony jest upływ czasu? Gdzie i jak zapisywane są informacje o postępie w grze, gdy ją wyłączamy? Skąd komputerowi przeciwnicy wiedzą, co mają zrobić?

Te i inne pytania oraz przyjemność z grania wzbudzały we mnie chęć tworzenia własnych gier. I to właśnie stało się głównym powodem, dla którego postanowiłem dowiedzieć się jak to się dzieje, że kod pisany przez programistów zamienia się w tak złożone, barwne i ciekawe gry.

Gdy chęć nauki programowania zaczęła we mnie kiełkować, zacząłem szukać informacji na ten temat. Dowiedziałem się wtedy o istnieniu Delphi. Było to zaawansowane (jak na tamte czasy) środowisko developerskie, czyli program, w którym programiści mogli w wygodny sposób projektować aplikacje i pisać ich kod źródłowy. Traf chciał, że niedługo potem do jednego z czasopism o komputerach dołączona była płyta CD z Delphi 7.

Płyta CD z pełną wersją Borland Delphi 7 Personal
Płyta z pełną wersją Borland Delphi 7 Personal

Pamiętam dzień, gdy zainstalowałem Delphi, jakby to było wczoraj. Gdy czekałem, aż to popularne wtedy środowisko developerskie się uruchomi, myślałem sobie:

Napiszę na początek jakąś grę strategiczną, a potem eRPeGa.

Gdy Delphi się uruchomiło, na ekranie zobaczyłem wiele okien z dziesiątkami przycisków, menu, ustawień, a do tego edytory: kodu i okna aplikacji. Wyglądały one podobnie, jak poniżej (chociaż zdjęcie to dotyczy środowiska developerskiego Lazarus, które jest na Delphi wzorowane):

Środowisko developerskie Lazarus, wzorowane na Delphi – wygląda bardzo podobnie jak Delphi, z którego korzystałem ponad 20 lat temu
Środowisko developerskie Lazarus, wzorowane na Delphi – wygląda bardzo podobnie jak Delphi, z którego korzystałem ponad 20 lat temu

Przytłoczony tym, co zobaczyłem na ekranie, poklikałem w różne miejsca, popatrzyłem w menu okna głównego, przejrzałem fragment kodu domyślnego programu, który wyświetla po uruchomieniu puste okno aplikacji, a następnie, sfrustrowany, myśląc:

Ale to jest głupie.

kliknąłem na X w prawym górnym rogu, aby wyłączyć Delphi.

Dwa tygodnie później, gdy ochłonąłem, a mój zrównany z ziemią entuzjazm zaczął podnosić się z podłogi, pomyślałem, że może to nie będzie jednak takie proste, jak mi się wydawało. Postanowiłem wtedy, że się nie poddam, i zrobię drugie podejście do próby nauki programowania, tym razem zaczynając od czegoś prostszego. Natrafiłem wtedy w Internecie na kurs Turbo Pascala.

Trudno opisać uczucie, gdy napisze się swój pierwszy program, który po uruchomieniu wypisuje na ekran napis Witaj Świecie! i kończy swoje działanie. To tak, jakby nagle wypłynęło się na ocean możliwości ograniczonych tylko własną wyobraźnią i czasem, jakby otworzyło się drzwi, za którymi może być wszystko, co nasz umysł jest w stanie wykreować, jakby nabyło się umiejętność tworzenia czegoś z niczego. Niesamowite, uskrzydlające uczucie otwierające wszechświat możliwości. Pierwszy program, który sprawił, że tak właśnie się poczułem, wyglądał jak poniżej:

program HelloWorld;
begin
  WriteLn('Witaj Świecie!');
end.

Efekt działania tego programu jest następujący:

Wynik działania programu HelloWorld – wyświetlony komunikat powitalny
Wynik działania programu HelloWorld – wyświetlony komunikat powitalny

Wtedy jeszcze tego nie wiedziałem, ale ten szary napis powitalny w czarnym oknie linii poleceń był moim pierwszym krokiem na drodze do stania się programistą.


Za tydzień ciąg dalszy – wtedy opowiem Ci jak doszło do tego, że postanowiłem napisać Mazera.

Jeden komentarz do “Tworzenie gry Mazer – prolog”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Nie musisz podawać swojego imienia, e-mailu, ani strony www, aby opublikować komentarz. Komentarze muszą zostać zatwierdzone, aby były widoczne na stronie.