Cześć! Tutaj wasz Koci Redaktor Enterus Meowkowski V Peleowski, którego możecie kojarzyć z poprzednich artykułów jak i kilku skromnych newsów jak i to że się ujawniłem na naszym twierdzowym kanale YT.
W chwili pisania tego tekstu zawodowo jako programista pracuję prawie 4 lata i przez ten czas miałem styczność z pewnymi narzędziami, które pomagały mi planować jak i realizować przeróżne projekty. Między innymi są to Asana, Git, GitHub, GitLab, Draw.io, Arkusze i wiele wiele innych.
W tym artykule skupię się głównie na opisaniu procesu planowania, a nawet niezbędnych narzędzi, dzięki którym praca przy własnym projekcie będzie szła gładko jak po maśle. Tak naprawdę to dużo zrobią same GitHub oraz Draw.io, ale też takie rzeczy jak pisanie dokumentów czy rozpiska w skoroszycie się przydadzą. Mi dość często pomaga zwykła kartka papieru i ołówek/długopis, więc też dam pole do wyboru :)
Teraz przejdziemy krok po kroku od wymyślania do konkretów pracy!
Wymyślanie projektu
Przy wymyślaniu projektu ważne jest, aby sobie wszystko rozpisać co ma się zawrzeć. Niezależnie czy chodzi o grę czy aplikację albo serwer, trzeba wiedzieć co jest potrzebne.
Do tego mamy oczywiście bardzo proste rzeczy, a jedną z nich korzystam podczas pisania tego tekstu :) Oczywiście chodzi mi o edytor tekstowy. Tutaj raczej wiadomo że jest szeroki wybór edytorów. Ja w zależności od potrzeby korzystam albo z Google Docs albo z programu na komputerze. Przy rozmowie z klientem oczywiście korzystam z wszelkiej formy pisania notatek - może być to zwykły Notatnik na komputerze albo wcześniej wspomniana kartka papieru - tutaj głównie chodzi o to, aby jak najszybciej wypisać to o czym rozmawia się z klientem. Gdy ma się więcej czasu na przemyślenia to mimo wszystko lepiej użyć edytora jak Word czy Google Docs.
Przy wymyślaniu oczywiście nie ma ograniczeń. Ważne żeby sobie zrobić obraz tego co chce się osiągnąć. Jeśli to się też przyda, bo czasami tak też trzeba, można sobie rozrysować grafy, tabelki, szkice, rysunki. Wszystko to co się wymyśli i zapisze w każdej formie przyda się przy planowaniu.
Planowanie projektu
Gdy już wykorzystaliśmy naszą wyobraźnie w 110 procentach :) to możemy zacząć zadawać sobie pytania, głównie "jak ja to zrobię?" albo "jak do tego dojść?". Zbierz wszystkie notki, dokumenty, arkusze, szkice i wszystko to co masz z poprzedniego etapu. Zacznij to rozważać, czytać zdanie po zdaniu i układaj sobie plany. Oczywiście trudno jest zrobić plan idealny, ale halo! od czego mamy edytowanie? :) Teraz masz okazję postawienia przed sobą wyzwań, możliwości rozwoju oraz ocenienia tego co tak naprawdę z tego wszystkiego dasz radę zrobić. Wszystko oczywiście rób na swoje możliwości tak, aby nie zadręczać się. Jeśli masz wymyśloną super grę, a jesteś mocno początkujący i zrób tylko fragment gry, niewielki jej wycinek, aby po prostu wyrobić sobie doświadczenie i nauczyć się korzystać z wybranych programów.
Gdy zdecydujesz się co konkretnie chcesz zrobić, wtedy możesz rozpisać plan. Jak wcześniej wspomniałem, nie ma planu idealnego, ale zawsze powinny być takie, które da się zrealizować. Pamiętaj że nie unikniesz błędów podczas tworzenia, więc też wyznacz sobie czas na ich poprawę. Jeśli natomiast nie wiesz ile tego czasu potrzebujesz to nie szkodzi i tak poprawki są przeważnie ostatnim etapem tworzenia ;)
Do tworzenia ogólnej listy "to do" (do zrobienia) można wykorzystać GitHub, Asanę lub ClickUp. Dla początkujących polecam GitHub, głównie dlatego że można w nim trzymać projekt jak i rozpisywać to co chcę się z nim zrobić. Planuję też kiedyś zrobić o nim serię poradników, a do tego czasu lepiej skorzystać z internetowych poradników, które nauczą narzędzie Git jak i platformę GitHub. Tego jest bardzo dużo i na pewno każdy znajdzie takie poradniki jakie mu podpasują.
Czasami (a raczej często) do planowania potrzebne są konkretne szkice albo schematy. Do ich zrobienia polecam Draw.io, który ma wiele możliwości natomiast ja wykorzystuję go do planowania baz danych. Można w nim robić różne schematy blokowe, zaprojektować architektury, a w kontekście gier naszkicować drzewko rozwoju postaci, zrobić schematy ulepszeń, ogólnie kto co lubi.
Taki ogólny plan będzie wyglądać podobnie do tej listy:
Zrobić mapy
Mapa z poziomami
Mapy poziomów
Stworzyć drzewko rozwoju
Wymyślić umiejętności
Wymyślić połączania umiejętności
Uszczegóławianie planu pracy
Idąc dalej w ten magiczny świat planowania i opisów, robiąc drogę od ogółu do szczegółu mamy kolejny etap uszczegóławiania planu. Idąc po kolei z własnym planem musimy dowiedzieć się czy to co mamy wypisane wyczerpuje temat. Hasła typu "Stworzyć mapę" nie gwarantuje nam tego jaka ma być ta mapa, co ma zawierać, jak wyglądać i jak działać. Tak naprawdę z tego wiemy że ma ona zaistnieć i tyle :) - brakuje szczegółów. Mając opisy i ogólny plan można sobie każdą jedną mapę, postać, umiejętność i inne cuda i wymysły lepiej opisać. W zależności od tego co chcemy osiągnąć to to należy napisać.
Weź ogólny punkt planu dla ułatwienia zróbmy przykład "Stworzyć mapę" i dodajmy temu zadaniu konkretne szczegóły.
Najpierw tytuł. "Stworzyć mapę" nie mówi nam nic o tym, która ma to być mapa. Niech tytuł zadania będzie też lekko opisowy (ale nie za mocno). Niech nam powie tylko, o którą mapę chodzi. Na początku wywalmy słowo "Stworzyć" - wiadomo że jeśli nie ma tej mapy to musimy ja zrobić. Jeśli jednak potrzebujesz tego słowa to je zostaw. Ja preferuję to wywalić tylko dlatego, że to dla mnie jest niepotrzebne słowo. Zamiast słowa "Mapa" możemy stawić konkretną nazwę lokalizacji. Z "Stworzyć mapę" może wyjść nam np. "Miasto targowe niedaleko stolicy" i już to coś nam mówi: wiemy że to miasto, więc będzie to co nieco większa mapa od np. wsi. Wiemy że targowe, więc już mają być handlarze, stragany i sklepy. Mniej więcej wiemy gdzie ta mapa ma się znajdować, a skoro niedaleko stolicy to może być ładniejsza od innych dzielnic handlowych. Sam tytuł niesie ze sobą wiele informacji. Raz dobrze napisany tytuł zadania ma nam dać obraz tego co ma zostać stworzone.
Druga sprawa to opis danego zadania. Tutaj mogę nie zaskoczyć, bo z ogólnego tytułu muszą wyjść konkrety. Wiemy już że mamy do zrobienia miasto targowe, ale nie wiemy dokładnie jak ma wyglądać i gdzie mają być budynki i stragany. Polecam to sobie opisać na tyle konkretne i na tyle ogólnie, aby wiedzieć co ma się pojawić, ale nie zablokować sobie możliwości artystycznych. Przykładowo prawidłowym opisem może być przez środek mapy ma biec ulica, przy której odchodzą pozostałe i przy tej głównej ulicy mogą stać już stragany oraz budynki. Niech kilka z budynków będzie mieszkalna, a kilka sklepami. Po bokach miasta niech będzie podobnie, ale bardziej ubogo. W końcu centrum/rynek ma tętnić życiem i okazjami. Natomiast złym opisem będzie bycie za bardzo konkretnym np. Ulica na środku mapy, po prawej jeden dom i trzy sklepy, po lewej trzy domy i dwa sklepy. Na środku dziesięć straganów. Itp. itd. a można pójść jeszcze gorzej - pisząc konkretne koordynaty obiektów :) Wiadomo, że podczas pisania opisów można nie wiedzieć swojej mapy w pełni. Same super-konkrety jak ma mapa wyglądać najlepiej zrobić już na edytorze mapy. Podobnie z kodem: ogólnie nie pisze się tego jakich funkcji się użyje, a tego jaki ma być efekt końcowy działania skrawka kodu czy też co skrawek kodu ma zrealizować. Już takim super przykładem: jest funkcja ma dodać dwie liczby ze sobą, a nie Funkcja ma dodać dwie liczby ze sobą używając znaku plus, jako argumenty można podać tylko 2 liczby, które mogą być zmiennoprzecinkowe. W skrócie co za dużo to nie zdrowo. Te konkrety mają być takie, że jak włączysz programy to ich przeczytaniu dasz radę zrobić to co masz w założeniach.
Trzecia sprawa to podzadania (tzw. subataski) - nic nadzwyczajnego. Jeśli dane zadanie do realizacji wydaje się dość długie to najlepiej jest to rozbić na mniejsze zadania i podzadania. Idąc przykładem tworzeniem mapy to głównie skupimy się na start na oprawie graficznej, wyglądzie, a dopiero w drugiej kolejności na postawieniu interakcji, obiektów, zdarzeń, itd. Tworzenie mapy można rozdzielić zatem na:
Utworzenie terenu
Postawieniu budowli
Zrobieniu podstawowych interakcji
Zrobieniu specjalnych interakcji
Utworzenie pozostałych obiektów (dodanie życia np. ludzi, zwierząt, potwory)
Stworzenie wydarzeń
i ta lista może się też ciągnąc i ciągnąć w zależności od tego co w danej mapie ma być i zadziać, no ale przynajmniej mamy to rozpisane i nie zapomnimy czegoś dorobić.
Gdy już te trzy aspekty uszczegóławiania mamy za sobą i wiemy co mamy zrobić i jak dość do skutku to możemy przystąpić do realizacji naszego planu
Realizacja planu
Do realizacji planu oczywiście potrzebujemy już konkretnych programów i narzędzi. Gdy to ma być gra to musimy wybrać silnik gry, a gdy kod programu dla klienta no to coś dzięki czemu ten kod zrobisz np. VS Code.
Przy realizacji bierzemy nasz plan i patrzymy co w danej chwili możemy zrobić. Takie zadania, które możemy zacząć oznaczamy że są w trakcie realizacji i do tego siadamy. Zaznaczam, że warto nie brać za dużo naraz. Wyznacz sobie czas, w którym dane rzeczy zrobisz: to zadanie zacznę dzisiaj i myślę że zrobię je do jutra, a tamto wezmę jutro i pewnie mi to zejdzie z 5 dni. Czas pracy nad każdym jednym zdaniem to sprawa indywidualna. Każdy ma różne umiejętności i doświadczenie, więc wiadomo że początkujący może robić coś tydzień, gdzie zaawansowanemu zejdzie to w 1 dzień albo kilka godzin.
To co nam realizację przyśpieszy to zwykłe proszenie o pomoc. Ja osobiście mam z tym problem, ale gdy w czymś utykam to szukam na internecie sposobu rozwiązania, a gdy jestem już frustrowany to wtedy łaskawie pytam inne osoby o rady. Ogólna uniwersalna zasada jest taka, że jak z czymś idzie nam zbyt długo i jest to męczące to nie należy się z tym męczyć tylko od razu szukać pomocy w różnych formach.
Samą realizację można jeszcze rozbić na kilka etapów. Tak dla uogólnienia mogą to być takie etapy:
Stworzenie podstawy (np. wszystkich map bez obiektów i wydarzeń)
Zrobienie konkretów (np. dodanie postaci i innych tworów na mapy)
Końcowe prace (np. mechanika, umiejętności - wszystko to aby zrobić coś grywalnego)
Poprawki
Oczywiście etapy są czysto-przykładowe, aby tylko pomóc ułożyć swoje własne i też niezależnie od projektu etapów może być więcej, a może być mniej.
Przy realizacji też mogą zdarzyć błędy, a z pewnością się one pojawią. Nie należy panikować czy też smucić. Błędy to rzecz ludzka, a jeśli się nie mylisz to jesteś kotem albo kosmitą :D
Błędy to najlepsza rzecz, dzięki której można się czegoś więcej nauczyć. Na pewno wiesz, że mówię o słynnym "Ucz się na błędach". Jest to jak najbardziej prawidłowe podejście. Gdybym ja się nie uczył na błędach to raz nigdy bym nie napisał tego tekstu to dwa nie miałbym pracy ;) a podczas pisania tego artykułu popełniłem dużo ortografów.. Na szczęście program wie lepiej ode mnie i mi podpowiada poprawki ^^, a ty masz przyjemność z czytania.
Także poprawki mówią tylko o tym, że się rozwijasz. :)
Zakończenie
Przeszliśmy przez cały proces robienia planu. Od wymyślania ogółów do napisania szczegółów. W artykule nie mówiłem dokładnie jak korzystać z specjalistycznych narzędzi, ale też nie chciałem robić cztery razy większej ściany tekstu. Ważne jest to, że podałem konkretne nazwy, a to już jest coś dzięki czemu można znaleźć pomoce do tych aplikacji i porali :)
Liczę na to że rozjaśniłem planowanie. Oczywiście ja podałem tylko przykłady, a konkretne podejścia do planowania trzeba sobie wyrobić. Planowanie jest dość niedocenianym etapem projektowania, a tak naprawdę ta dodatkowa praca owocuje i daje wiele więcej od robienia czegoś na hura. Mam porównanie tworzenia projektów bez planowania i z planowaniem i szczerze to z planem szły mi (łącznie z planowaniem) szybciej i łatwiej niż te bez planowania.