Co może być atrakcyjne dla geeka odwiedzającego targi pracy branży IT? Chodzenie od stoiska do stoiska i rozmawianie z ludźmi z firm…? Zbieranie gadżetów promocyjnych…? Przyglądanie się hostessom…? Granie w gry…? Dokładnie – gry! “No, ale chyba nie macie zamiaru grać na targach?” to pytanie, wypowiedziane poirytowanym tonem, padło podczas naszej burzy mózgów, poprzedzającej przygotowania do Future3. Tak, mieliśmy właśnie taki zamiar.

Jako że w Goyello łączymy pracę z zabawą, oczywiście w odpowiednich proporcjach, postanowiliśmy przygotować dla naszych gości na targach coś zabawnego, ale wymagającego nieco wysiłku umysłowego. W ten sposób narodził się pomysł stworzenia #GoyelloGame. Chcecie wiedzieć, czego dokonaliśmy w zaledwie 8 tygodni?

Cele

Zaczynając pracę nad grą wiedzieliśmy, że do osiągnięcia mamy konkretne cele. Przed wszystkim – dotrzeć do grupy docelowej. Miało powstać coś zabawnego, trafiającego w gust developerów. Ponieważ tworzyliśmy tę grę specjalnie z myślą o targach pracy Future3, musiała przyciągać uwagę. Raczej nie byłoby wesoło, gdyby nikt nie wpadł na stoisko, żeby w nią pograć. Chcieliśmy również, aby gra zawierała aspekt rywalizacji. Nie zależało nam na szczególnie tym, aby ludzie walczyli o pierwsze miejsce, jednak chcieliśmy móc przyznać nagrody.

Gra

#GoyelloGame to gra typu “puzzle”, przeznaczona dla developerów. Ponieważ Goyello to firma kochająca sport rowerowy, a jednocześnie dostawca rozwiązań informatycznych, naszym głównym bohaterem został jadący na rowerze programista. Na jego drodze pojawia się wiele przeszkód. Musi je pokonać, by dotrzeć do mety, gdzie czeka na niego dziewczyna.

Mechanizm gry polega na dopasowywaniu brakujących fragmentów kodu w dwóch językach do wyboru: Java i C#. W każdym języku przygotowaliśmy 15 nieuporządkowanych fragmentów kodu. Na początku gry należy wybrać język, aby otrzymać 5 przykładów z lukami do wypełnienia. Trzeba je uzupełnić przeciągając dostępne opcje do odpowiednich luk. Jeśli gracz poda nieprawidłowe rozwiązania i straci wszystkie życia, dziewczyna odchodzi z innych facetem… 😉 Zwycięzcą zaś zostaje ten, kto najszybciej wskaże właściwe odpowiedzi.

 

Wyzwania

Podczas pracy nad #GoyelloGame pojawiło się kilka wyzwań. Pierwsze to ograniczenia czasowe. Na wymyślenie historii, zadań dla graczy i zaprogramowanie aplikacji mieliśmy zaledwie 8 tygodni. I nie było to wcale jedyne zadanie, nad którym pracowaliśmy w tym czasie. Mieliśmy swoje codzienne obowiązki w projektach, w których uczestniczymy. Limit czasu spowodował ograniczenie zakresu całego przedsięwzięcia. Musieliśmy odpowiedzieć na pytanie: „Co naprawdę możemy dostarczyć w ciągu 8 tygodni?” Już na samym początku pojawiło się kilka pomysłów odnośnie mechanizmu i fabuły gry. Podczas prac nad aplikacją pomysły te ewoluowały, udało się nam jednak wszystkie wykorzystać. Dużą pomocą była dla nas metodyka Agile, według której działaliśmy.

Kolejne wyzwanie? W Goyello tworzymy aplikacje biznesowe, nie gry. Musieliśmy więc na chwilę przestawić myślenie na zupełnie inne tory. Na szczęście kilkoro członków zespołu pracowało dawniej w firmie produkującej gry. Mieliśmy więc ułatwione zadanie. Nie bez znaczenia była też dobra współpraca i wzorowa praca zespołowa.

Na początku każdy z nas miał odmienne zdanie co do tego, czym #GoyelloGame właściwie powinna być. Strzelanką w kosmosie? Grą typu co-op dla wielu graczy? Interaktywną animacją? Pomysłów było mnóstwo, żaden jednak nie dodawał w pełni ducha firmy. A przecież o to nam przede wszystkim chodziło. Postanowiliśmy więc stworzyć coś prostego, zabawnego i spójnego. Wzięliśmy to, co najlepsze ze wszystkich przedstawionych pomysłów, tchnęliśmy w to ducha firmy, dodaliśmy trochę naszej miłości do rowerów i w rezultacie otrzymaliśmy produkt, na który dziś spoglądamy z wielkim zadowoleniem i satysfakcją.

Zaprojektowanie fabuły było również sporym wyzwaniem. Zdecydowaliśmy się postępować zgodnie z zasadą KISS, aby nie komplikować historii. W przedsięwzięcie zaangażowało się wielu naszych kolegów, developerów oraz team leaderzy. Dzięki temu udało nam się stworzyć całkiem sensowny mechanizm gry.

Kwestią do ustalenia było również narzędzie do sterowania grą. Decyzję zmienialiśmy kilka razy. Rozważaliśmy myszkę i klawiaturę, pad od Xbox’a albo nawet Kinecta. Ostatecznie jednak wybór padł na kontroler AirMouse. Umożliwienie sterowania różnymi narzędziami nie było prostą sprawą, ale znacznie poprawiło użyteczność gry.

I na koniec, choć to wcale nie najmniej ważny aspekt – user experience. Musieliśmy odpowiedzieć sobie na kilka pytań, np. „Jak prowadzić gracza?”, “Jak mu w jasny sposób pokazać, co aktualnie dzieje się w grze?” Napotkaliśmy tu utrudnienia, które dotyczyły m.in. opracowania mechaniki gry, nietrafnego wyboru narzędzia do sterowania grą, itp. Na szczęście podejście iteracyjne pozwoliło nam w porę reagować na pojawiające się problemy i na czas znajdować rozwiązania.

Zespół

Nad #GoyelloGame pracował multidyscyplinarny zespół. Dzięki temu byliśmy wstanie osiągnąć wymienione wyżej cele, ale też spojrzeć na projekt z różnych perspektyw. W pracach udział wzięło dwoje marketingowców, dwóch developerów, dwoje projektantów oraz specjalistka HR. Większość członków zespołu mówi o sobie, że są geekami i miłośnikami gier.

 

Realizacja

Kiedy nie jesteś pewien, w którą stronę iść, Agile wskaże ci drogę. To nasze motto. Zapewniam, że działa. Jeśli realizujecie projekt wysokiego ryzyka, w którym nie wszystkie założenia zostały na początku poczynione, potrzebujecie metodyki, która pozwoli wam elastycznie dopasowywać się do zmieniających się wymagań. Co to za metodyka? Nazywa się Agile.

Działając zgodnie ze Scrum podzieliliśmy proces tworzenia gry na etapy:

  1. Projekt – przede wszystkim należało określić wątek przewodni, którego będziemy się trzymać na każdym etapie realizacji. Potrzebowaliśmy również przynajmniej zarysu fabuły, aby móc rozpocząć pracę. Gdy te kwestie zostały ustalone, mogliśmy przystąpić do tworzenia papierowego prototypu #GoyelloGame oraz mockupów. Przedstawiliśmy je Kasi, naszej dyrektor marketingu. Dostaliśmy od niej zielone światło i mogliśmy rozpocząć produkcję.
  2. Gromadzenie zasobów – to bardzo istotny etap, w wielu projektach pomijany. Tymczasem lepiej przygotować zasoby, takie jak grafiki, projekty i próbki kodu już na początku prac. Nasze były w większości gotowe pod koniec tego etapu. To, czego nie udało się nam od razu zebrać, zamierzaliśmy dostarczyć w późniejszym terminie.
  3. Produkcja – najbardziej oczywisty etap, czyli pisanie kodu. Potrzebowaliśmy na to trzech tygodniowych sprintów. Podejście iteracyjne, o którym już wspominałem, pozwoliło nam elastycznie reagować na zmieniające się okoliczności i stworzyć zestaw podstawowych funkcjonalności. Największym wyzwaniem na tym etapie było zaprogramowanie dodatkowego sposobu sterowania grą.
  4. Ostatnie szlify – każdy developer gier to wie. Gdy tylko wydaje się, że oto dzieło jest skończone, zawsze, ale to zawsze pojawia się ktoś, kto mówi ci, jak możesz projekt ulepszyć. Przewidując taki scenariusz, zaplanowaliśmy dwa tygodniowe sprinty przeznaczone na wprowadzanie zmian i poprawek. Na tym etapie zaprosiliśmy do współpracy naszych kolegów, developerów, jako reprezentantów grupy docelowej. Zawsze tak robimy – zanim projekt ujrzy światło dzienne, testujemy rozwiązanie z przedstawicielami końcowych użytkowników. Walidacja to niezbędny etap każdej realizacji. Pozwala zweryfikować, czy przyjęto właściwe założenia początkowe oraz czy poprawnie zidentyfikowano potrzeby użytkowników. Zebraliśmy więc kolegów w Social Roomie i zaprosiliśmy do gry. Słuchaliśmy uważnie ich uwag i opinii. Z radością odnotowaliśmy fakt, że projekt i cała koncepcja jego wykorzystania podobały się im.

I to już koniec?

Nie sądzę. Co prawda, w tej chwili nie planujemy wypuszczenia #GoyelloGame na rynek, ale nie wykluczamy całkowicie takiej opcji. Gra powstała w Unity 3D Game Engine, można więc uruchomić ją w dowolnym środowisku. Mamy też mnóstwo pomysłów, których chcielibyśmy użyć w #GoyelloGame lub w innych grach, które zamierzamy w przyszłości stworzyć. Przygotujcie się zatem na inwazję #GoyelloGame!

Coach, mentor and Team Leader. Certified .NET developer, Agile enthusiast and Machine Learning specialist. In his free time ̶ avid scuba diver and fantasy books reader.