Rest time

Hej
Od razu ostrzegam – ten artykuł nie ma nic wspólnego z rest api. Chodzi mi o miękkie znaczenie tego słowa 😉

Człowieki

Wśród technicznych znajomych spotykam się z różnym podejściem do tematu organizacji pracy. Często słyszę historię o kończeniu lub tworzeniu projektu w ciągu przez kilka dni || jeden dzień || jedną noc przed epickim i gloryfikowanym deadlinem. Jeżeli mamy mało czasu na wykonanie zadania, to stereotypowym podejściem jest próba wpadnięcia w mityczne flow i nie ruszanie się z miejsca dopóki krew z nosa nie zacznie kapać na klawiaturę nie zrobimy zadania.

Nie zaprzeczę że zdarza mi się tak robić, pomimo świadomości jak szkodliwe jest takie podejście. Zwiększa szansę na błędy, czy wręcz nie dokładne wykonanie całego zadania. Dodatkowy stres jednych nakręca i przyśpiesza pracę, a innych paraliżuje i może mieć negatywne konsekwencje. Zamiast rozważać wpływ stresu na człowieka (który wbrew pozorom jest naturalny dla ludzkiego organizmu), czy odpowiednie planowanie zdań by nie robić ich na ostatnią chwilę, chcę zwrócić uwagę na problem przerw.

Po co?

Gdy opowiadałam znajomym o robieniu przerw podczas nauki zwykle są zaskoczeni. Dowiedziałam się ile to czasu marnuję i psuję sobie koncentrację. Problem w tym, że ciągle mam problemy z koncentracją, a właśnie przerwy miały mi z nią pomóc.

Przy wpatrywaniu się w ten sam problem przez kilka godzin podświadomie tworzymy własne skróty myślowe, które mają nam ułatwić analizowanie. Jednocześnie jednak generują problemy – nie zwracamy uwagi na pewne elementy czy całkowicie o nich zapominamy. Ile razy mieliście sytuacje, w której wróciliście do jakiegoś zadania następnego dnia czy nawet po krótszym odstępie czasu by stwierdzić ‘przecież to takie proste’.

Efekty stosowania przerw były pozytywne, choć nie od razu. Wbrew pozorom proces ten wymaga samodyscypliny i dobrego zaplanowania. 5 minut sprawdzania ściany na fejsie to słaby pomysł na odpoczynek przy 10 minutach kodowania.

Czas

Jeżeli nigdy nie próbowałeś/aś zaplanować przerw, polecam przetestowanie aplikacji wspierającej ich kontrolowanie (u mnie jest to Mechaniczny pomidor). Mój przedział czasu to 30 min działania (na początku było to 20 minut), 5 min krótkiej przerwy i 15 min długiej. Najlepiej obserwować siebie, a następnie dopasowywać te czasy do własnych możliwości.

Działanie

Ale co podczas takiej przerwy robić? Dobrym pomysłem jest oderwanie się od komputera – wstanie od komputera, przejście się do okna, popatrzenie na choć trochę oddalone elementy krajobrazu. Kręgosłup oraz oczy będą nam wdzięczne.

Jeżeli macie bardziej manualne zainteresowanie nie wymagające ekranu – przeznaczcie ten czas właśnie na to. Gitara, lekkie rozciąganie, kostka rubika, cokolwiek co pozwoli wam zmienić perspektywę. Osobiście zwykle w tym czasie żongluję, co polecam wszystkim (o pozytywach takiej aktywności na pewno napiszę). W takiej sytuacji dodatkowym plusem przerw jest również rozwijanie swojej pasji – drobnymi kroczkami, ale cały czas do przodu 😉


Stan prac na obecną chwilę –> odsypianie kodzenia i nauki po nocach

Advertisements

Pierwsze kody

Hej

Dziś wrzuciłam pierwsze kody na repozytorium. Nic ciekawego tam jeszcze nie ma, są to pierwsze podrygi i raczej wydmuszki na których podstawie można dalej coś budować.

__init__.py

Co to właściwie jest? Odpowiada za informowanie Pythona by ten traktował katalog zawierający taki plik jako zawierający package (paczki zawierające kod Pythona). Dzięki temu możemy wykorzystywać klasy znajdujące się w innym folderze.
Sam w sobie plik może pozostać pusty, lub zawierać konkretne importy.

from Game.GameConstans import GameConstans
from Game.GameController import GameController

Samo __init__ ?

Jest to inicjalizacja klasy i jest wywoływana po utworzeniu instancji klasy (obiektu danej klasy). Metoda ta nie jest konstruktorem – obiekt jest stworzony przed wywołaniem metody __init__ i dostaje ona już gotowy obiekt (a raczej referencję do niego).


Stan prac na obecną chwilę –> nauka Pythona oraz Pygame, pierwsze próby pisania kodu

Założenia Patrolla

Zanim przejdę do tematu wpisu, krótki offtop. Wracam do prowadzenia bloga, oby na dłużej. Nawet jeżeli nie uda mi się utrzymać ilości postów wymaganej w Daj się poznać, mam nadzieje że uda mi się kontynuować projekt – w ramach kodowania po godzinach.

Założenia całego projektu Patroll?

Stworzenie pełnej gry, czyli:
– implementacja podstawowej mechaniki umożliwiającej przejście kilku plansz,
– przygotowanie kilku zróżnicowanych poziomów,
– nie posiadającej błędów uniemożliwiających rozgrywkę bo głupie bugi są akceptowalne,
– stworzenie mało skomplikowanej grafiki 2D,
– utworzenie i obrobienie efektów dźwiękowych oraz muzyki.

Jak się do tego zabiorę?

Do pisania kodu wykorzystam PyCharm od Jetbrains. Przyjazne narzędzie, z którym mam tylko jeden problem – nie podpowiada funkcji biblioteki Pygame. Jeżeli uda mi się to poprawić, dam znać.

Z przytoczonych elementów gry najbardziej obawiam się modeli postaci – moje zdolności graficzne ograniczają się do prostych obróbek obrazów czy zdjęć w gimpie.

Jeżeli chodzi o muzykę i efekty dźwiękowe, powstanie ona najprawdopodobniej za pomocą programu LMMS, którego obsługi chciałabym się nauczyć.

Pierwsze elementy mechaniki

Celem jest wydostanie się z danej planszy (sprowadza się to z przejścia z punktu startowego do celu, wiem bardzo odkrywcze)

Bohater domyślnie nie posiada specjalnych mocy, poza chodzeniem. Może zdobyć  nową specjalną moc dopiero gdy znajdzie odpowiedni przedmiot. Wstępnie myślałam by były to kapelusze. Pomysł jest taki, że postać może jednocześnie trzymać tylko jeden taki przedmiot.

Pierwsze pomysły już są, trzeba zacząć powoli je implementować.


Stan prac na obecną chwilę –> dalsza nauka pythona i biblioteki pygame

Ksz Ksz

Sprawdzam czy mnie słychać. Chwila to chyba nie tak się tu robi…


  print("Hello world!")

Od razu lepiej.

Witam i zachęcam do zaglądania tu co jakiś czas 😉

Blog będzie wykorzystywany do pokazywania prac nad projektem Patroll, który jest tworzony na potrzeby konkursu Daj się poznać.

Planowany projekt to prosta gra w stylu arcade. Do jej wykonania wybrałam język python – dużo znajomych go polecało i wygląda dość przyjaźnie. Chciałam poznać tą technologię przynajmniej w podstawowym stopniu, dlatego wykorzystanie jej do takiego projektu wydaje się ciekawym wyzwaniem. Dodatkowo użyję biblioteki pygame, którą zasugerował mi Damoch, polecam tego programistę.

Jeżeli kogoś zainteresuje ta biblioteka, to na wstęp mam dwie podpowiedzi z nim związane:

1. Pygame wymaga 32-bitowej wersji pythona (widziałam co prawda wersje 64-bitowe, ale nie wiem na ile są stabilne i czy chcą  współpracować)

2.Osobiście miałam problemy z instalacją biblioteki i wszystko poszło dobrze dopiero po skorzystaniu z drugiej odpowiedzi z tego pytania na stacku (chwała temu zacnemu portalowi i jego świetnym użytkownikom za wszystkie uratowane kody)

Jeżeli chodzi o sam koncept gry, nie jest on jeszcze w żaden sposób udokumentowany. Planuję przygotowanie prostego projektu (z czasem może wyjść z tego game document).


Stan prac na obecną chwilę –> nauka pythona i biblioteki pygame oraz przygotowywanie projektu gry