DSP17

Ogame – ale jak? O przygotowaniach do pracy słów kilka

To już było

Wcześniej już z grubsza napisałem dlaczego Ogame, ale wypadało by jeszcze wytłumaczyć czemu zdecydowałem się na klon istniejącej gry, a nie całkiem nowy pomysł. Otóż… wytłumaczenie jest proste – nie jestem dobry w wymyślaniu gier, ale zawsze chciałem jakąś zaprogramować. Próbowałem wielokrotnie: Tower Defense, Platformówka, RTS… Zawsze kończyło się na chęciach, bo nigdy nie pasował mi system gry jaki wymyśliłem, albo był zbyt skomplikowany, albo wydawał się zbyt oklepany, za prosty, niezrozumiały, przekombinowany, nie miał tego czegoś, zabrakło pomysłu itd.

Patrząc w przeszłość, zakończyłem jeden mały projekt gry – Snake. Gra znana i oklepana. Każdy wie jak działa snake – zajada kulki i rośnie mu ogon. Koniec. To były wymagania minimalne. Wystarczyło, że to zaimplementuję i mogłem uznać projekt za zakończony. Lubię proste zasady.

Tak samo pomyślałem o tym projekcie. W prawdzie nie jest tak prosty jak wąż, ale zasady są mi bardzo dobrze znane, a całą grę jestem w stanie podzielić na kolejne etapy/moduły do zaimplementowania. Nie muszę myśleć o ograniczaniu swojej wyobraźni bo „później tego nigdy nie zaimplementuje”. Mam określone wymagania, a ja mogę się zająć tym co misie lubią najbardziej – projektowaniem systemu, TDD, implementowaniem całości.

Analiza systemu

Patrząc szybko i pobieżnie na podstronach gry widać pewne części które można wyodrębnić jako poszczególne funkcjonalności

  • Użytkownicy – rejestracja i logowanie
  • Dashboard – podział na planety, statystyki konta, licznik surowców, podgląd aktywnych misji flot
  • Budynki i badania – poziomy, rozbudowa (w tym czas potrzebny na budowe), kolejka budowy, wymagania technologiczne do budowy, korzyści z budowy (wieksza produkcja energii/surowców, odblokowanie budowy statków, zwiększenie produkcji energii kosztem surowców itd)
  • Statki i obrona – zamiast budowy kolejnych, droższych poziomów – budowa na ilość
  • Flota – cele misji (stacjonuj, transportuj, atakuj, kolonizuj, szpieguj)

User stories

Wziąłem na pierwszy ogień logowanie i system levelowania budynków. Powstały mi z nich takie kamienie milowe w formie user story:

  • As a user I want to be able to create my account and use it after logging in
  • As a user I want to get list of all my buildings
  • As a user I want to level up my buildings
  • As a user I want to queue the construction of my buildings
  • As a user I want buy my buildings with resources
  • As a user I want my buildings to depend on each other (technology system)
  • As a user I want to earn resources
  • As a user I want my earnings to depend on energy supply
  • As a user I want to speed up construction of my buildings (robots factory, nanites)
  • As a user I want to limit amount of resources I can keep at a time

Myślę, że tyle ich wystarczy na początek. Zapisałem je w języku angielskim, ponieważ taki język staram się stosować na swoim githubie, gdzie powyższe wyląduje jako ZenHubowe Epis issue. O ZenHubie pewnie jeszcze co nie co napiszę w przyszłości, bo uważam że to całkiem sprawny system zarządzania swoim prywatnym pet-projectem jak i większym przedsięwzięciem zespołowym, kiedy nie masz pod ręką Jiry lub nie chcesz mieć.

Comming soon

Jako, że Ogame Clone to nie jest mój całkiem świeży projekt, w przyszłym wpisie postaram się pokrótce opisać na czym obecnie stoimy.

Leave a Reply

Your email address will not be published. Required fields are marked *