Na początku była gra…

Cześć!

Bez zbędnych ceregieli – po co ten blog, dlaczego, jak często – przechodzę do sedna…
I do prezentu dla moich pierwszych Czytelników.

Od kiedy interesuję się komputerami, czyli od dzieciństwa w latach 80-tych, pierwszym i najważniejszym zastosowaniem komputera były dla mnie gry.

Wiele się od tamtego czasu zmieniło, komputer stał się dla mnie narzędziem codziennej pracy, a to jak stał się ogólnie powszechny spowodowało, że trochę zacząłem zapominać jaki zachwyt wzbudzał we mnie kiedyś, gdy mimo 64KB pamięci pod maską i 2MHz procesora przenosił mnie w inne wspaniałe światy, stawiał przede mną wyzwania intelektualne i manualne.

Twórcy gier jawili się dla mnie wtedy, jak wspaniali magicy, poeci,świetni muzycy i błyskotliwi inżynierowie w jednym. Marzenia o staniu się jednym z takich geniuszy wydawały się nieuzasadnione. Przecież moja gra nie będzie się równała z ich grami, nie umiem tak dobrze programować, nie znam się na grafice, nie mam talentu muzycznego, itd…

Czasem stawiamy sobie ograniczenia, które nie pozwalają nam po prostu czerpać radości z tego, co naprawdę lubimy robić.
A tworzenie gier jest jeszcze większą radością niż granie w nie.
A tworzenie gier, w które ktoś z chęcią gra, to już szczyt spełnienia.

Czy można robić pierwsze gry mając prawie czterdziestkę?
Można, tak jak można zacząć malować, śpiewać, biegać czy majsterkować.
Po prostu należy przestać marzyć…

Dlatego zapraszam do zagrania poniżej w moją pierwszą grę, która jest inspirowana znaną zabawą.
Zasady są następujące:

  • Mamy 12 piłek w rzędzie, z których ostatnia jest specjalna, bo jest bombą!
  • Wybieramy, kto zaczyna – my czy komputer.
  • Gracze robią ruchy na zmianę, które polegają na zabraniu jednej lub dwóch piłek.
  • Kto zabierze ostatnią piłkę – bombę, przegrywa.

Zagrajcie przeciw komputerowi i zobaczcie, czy i kiedy potraficie z nim wygrać.


Mam nadzieję, że gra sprawiła Wam choć chwilę radości, tak jak mnie sprawiła wiele radości praca nad nią. Ta prosta gra została zrobiona w HTML’u i Javascripcie, którego się aktualnie uczę.

Zanim usiadłem do programowania, zrobiłem sobie mały projekt gry, taki dokument, który w świecie twórców gier, zwany jest GDD – Game Design Document. To jest bardzo przydatny etap robienia gry.
Gdy mam już przemyślane i spisane, jak gra ma wyglądać, jakie są ekrany, jak wyglądają ruchy gracza i komputera, jaki jest algorytm gry, implementacja jest już znacznie prostsza – wiem do czego dążę i skupiam się już tylko na problemach technicznych. Oczywiście po drodze wyszły dwa zagadnienia, których nie przewidziałem, pod względem mechaniki gry, ale to były już małe rzeczy, większość miałem już dobrze przemyślane.

W GDD wypisałem kilka dodatkowych atrakcji, których nie zaimplementowałem, bo wydłużały proces programowania, a nie były istotą gry. Chciałem przede wszystkim grę skończyć!
Gra nie ma zbyt dużej „regrywalności”, jak się zorientujecie, jak w nią wygrywać, to właściwie koniec zabawy. Dlatego zachęcam do komentowania – czy była dla Was zaskoczeniem, czy chcecie żebym ją dalej rozszerzał o nietknięte pomysły z GDD, albo zgłaszajcie własne pomysły, jak grę wzbogacić.
A może chcielibyście przeczytać, jak w grę wygrać i dlaczego w ten sposób, oraz jak gra komputer, a także jak nauczyć komputer w nią grać.
Ten drugi temat na pewno i tak podejmę na blogu, od Was zależy, który najpierw.

Także komentujcie, wybierajcie, sugerujcie!

P.S. Dla zainteresowanych JavaScriptem: okazuje się, że ruch jest względny, zdarzenie onMouseOut jest generowane nie tylko przez kursor uciekający znad obiektu, ale też obiekt usunięty z DOM, który był pod kursorem…

Icons made by Madebyoliver from www.flaticon.com is licensed by CC 3.0 BY
Icons made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
Icons made by Roundicons from www.flaticon.com is licensed by CC 3.0 BY

5 odpowiedzi do “Na początku była gra…”

  1. Najtrudniejszy pierwszy krok ;-).
    Gratuluję rozpoczęcia działalności 😉 i trzymam kciuki za wytrwałość. Ciekaw jestem kolejnych tematów tutaj, ale zapowiada się ciekawie.
    Życzę, by dzięki blogowi udało się realizować marzenia :-).
    Jak wpadnie mi jakiś pomysł na grę, którą by można zaimplementować, to dam znać.

  2. Heloł George, widzę, że – w jakże udany sposób – otworzyłeś kolejny front Twych dociekań i dokonań. To szczególnie miłe, że chcesz się dzielić swymi odkryciami. No i krzewić kulturę słowa pisanego w bądź co bądź ubogim, jak kataryniarz w poście, w *dojrzałe* wypowiedzi, medium „internetów”.

    Nie zaniedbuj bogactwa dotychczas prowadzonych wątków, ucz się bawiąc, baw się ucząc, a garb Ci sam wyrośnie – garb cennych umiejętności i mądrości.

    Chętnie się douczę js korzystając z Twych doświadczeń. Że też takich ważnych rzeczy nie uczą w szkole (może teraz już uczą).

  3. Hej Tomek, gra mi się podoba, udało mi się wygrać z komputerem i to nieprzypadkowo 🙂 Jeżeli jesteś otwarty na sugestie co do rozszerzenia tej gry – to może dodasz opcję modyfikacji liczby piłek w turze? ps. marzeniom trzeba pomagać aby się spełniły więc powodzenia !

    1. Dzięki Entymologio!
      Tak, można uogólnić tę grę do (n,m) piłeczek. n – liczba piłeczek na początku, m – maksymalna liczba piłeczek, które można wziąć w jednym ruchu.
      Napiszę o tym w następnym poście i uaktualnię grę o wybór tych liczb na początku.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *