Jest taka gra, której prawie nikt nie zna, a ci którzy o niej słyszeli dostają dreszczy na samo wspomnienie. Niektórzy z ekscytacji, a niektórzy z zupełnie innych powodów. Corewars.
Pierwszy raz zetknąłem się z nią chyba z 15 lat temu. Miałem sporo wolnego czasu, który chętnie spędzałem prowadząc pojedynki z moimi znajomymi. Oni ścisłe umysły. Ja urodzony humanista. Oni miażdżyli logiką, a ja zaskakiwałem rozwiązaniami. Finalnie poległem ale doświadczenia zostały i do dzisiaj procentują w moim zawodowym życiu.
Czego nauczyłem się grając w Corewars?
Cliché zwiększa ryzyko porażki, a kreatywność i poszukiwanie nowych rozwiązań zwiększa przewagę.
Projektowanie to jeden z najważniejszych etapów, bez którego marnujemy zasoby.
Optymalizacja to najlepszy sposób na naukę.
Każde środowisko jest inne, a mała różnica wymusza duże zmiany.
Wszystko jest algorytmem. Jeżeli go gdzieś nie dostrzegasz, to wynika to tylko z braku wiedzy.
Diabeł tkwi w szczegółach, a „prawie” robi wielką różnicę.
Sprawdzone taktyki są ok, ale prawdziwa siła tkwi w ich modyfikowaniu i mieszaniu.
Obserwacja projektu w działaniu jest źródłem najlepszych doświadczeń.
Błędy są stopniami w drodze na szczyt.
Gdy brakuje wiedzy, nie wahaj się użyć wyobraźni.
Wszystkiego można się nauczyć (nawet assemblera gdy jest się humanistą)
Nie ma mocniejszej motywacji niż radość z tego co się robi.
Czym nie jest Corewars?
„Kolego, to nie Angry Birds! To trudne!” Tak zareagował mój znajomy, doświadczony developer, którego chciałem zarazić tematem Corewars. Zgadza się. To trudne. To nie Angry Birds.
Czym jest Corewars?
Przede wszystkim to masa zabawy :).
Krótko: piszesz swój program, mówisz jak się ma zachowywać, co robić kiedy, jaką ma przyjąć strategię. Wszystko to zapisujesz w pliku, a następnie wgrywasz do systemu wraz z przeciwnikiem czyli innym programem. Potem to już tylko patrzysz i obserwujesz. Wygra Twój umysł, czy umysł przeciwnika?
Generanie Corewars to protoplaści wirusów komputerowych.
Jak zagrać?
Ściągasz, odzipowujesz i uruchamiasz ten program: http://corewar.co.uk/wendell/CoreWin.zip
Następnie ściagasz przykładowych wojowników: http://corewar.co.uk/wendell/Basic_Warriors.zip
Uruchamiasz CoreWin, klikasz na Setup, dodajesz 2-3 wojownków, klikasz OK, a potem to już tylko patrzysz jak walczą.
W jakim języku pisze się program?
W najpiękniejszym. Assembleropodbnym o nazwie RedCode. Żartuję z tym najpiękniejszym. Raczej jednym z trudniejszych. Na szczęśćie można wziąć pierwszy lepszy program i go modyfikować. To najprostszy sposób, żeby zrozumieć jak co działa, i stworzyć własnego „niezwyciężonego” robota.
Przykładowy program wygląda tak:
mov 0, 1
Szok i niedowierzanie? Tak, tylko jedna linijka; 8 znaków ze spacjami. Pomimo prostoty, ten program potrafi czasami zwyciężyć.
A taki „normalny” program jak wygląda? Oto program który zajął 3 miejsce w mistrzostwach świata z 1984:
Bomb dat #0, #-980
Spacer equ 28
Start mov Bomb, @Bomb
sub #Spacer,Bomb
jmp Start, #0
end Start
Istnieją programy znacznie dłuższe, bardziej skomplikowane, samo-replikujące się, komunikujące się między sobą. Granicą jest tylko wyobraźnia no i CORESIZE.
Podsumowanie
Corewars to naprawdę świetna zabawa i bardzo pouczająca – odzwierciedla sporo mechanizmów z prawdziwego życia, a tym samym z marketingu. Uczy algorytmicznego myślenia, kreatywności, projektowania i testowania, a na sam koniec dostarcza sporej dawki satysfakcji.
To co mnie niezmiennie zastanawia, to odpowiedź na pytanie: ilu marketerów kiedykolwiek grało w Corewars.
Graliście? Może urządzimy zawody? 🙂