sobota, 7 czerwca 2014

O strzelankach, które są jak Android

Współczesne “strzelanki” są jak Android. Super system operacyjny pozwalający na wiele, tylko jednego dobrze nie potrafi – dzwonić. Ostatnio przeszedłem grę BioShock Infinite. Wciągający świat, wspaniała grafika, niszcząca mózg końcówka. Tylko zabrakło dobrego systemu do strzelania.

Dodam jeszcze, że w chwili pisania tekstu nie przeszedłem jeszcze BioShock 1 i 2.

Nieskończony BioShock mógłby być moją grą roku lub nawet dekady, a poległ na rzeczy najbardziej podstawowej - gameplay.

Moim zdaniem nowy BioShock poległ na:
  1. Możliwość noszenia dwóch sztuk broni jednocześnie. Jedni powiedzą, że to, dlatego aby było realistycznie, bo nikt nie będzie targał jak Gordon Freeman 8+ sztuk broni w tym wyrzutnię rakiet. Drudzy powiedzą a ja do nich należę, jak chcesz realizmu to wyjdź na zewnątrz, a nie w gierki się bawisz.
  2. Brak szerokiego wachlarza broni kończy się nudną rozgrywką. Praktycznie przez całą grę wykorzystywałem tylko i wyłącznie pistolet maszynowy i karabin.
  3. Brak trybu Game+. Na miłość boską, jeżeli tworzy się grę pełną przedmiotów do zbierania, oglądania i niszczenia, to, dlaczego nie ułatwić graczom życia i ukryć przedmiotu już zebrane, oglądnięte i zniszczone?

Problem „świetna gra, ale strzelanie jest nudne jak podróż polską koleją” dotyczy też innych produkcji. Najlepszym przykładem jest Spec Ops: The Line. Nie wiem czy jest coś gorszego od cover-shooterów, szczerze wole nadepnąć z cała siłą w klocek LEGO, a potem przywalić małym palcem w róg szafki, a na koniec zaciąć się papierem między palcami u nogi niż grać w cover-shootey. Ból jest podobny, ale w grach spędza się przy tym 8 godzin. 8 Godzin męki.

Mimo mojej niechęci do takich gier polecam Spec Ops: The Line. Gra opowiedziała lepiej o wojnie niż jakikolwiek dziennikarz w telewizji. Każdy, kto chce wypowiedzieć wojnę powinien, zagrać w tą grę i się zastanowić. Czy wojna coś zmienia? Czy wynika z niej coś dobrego?

Zastanawia mnie fakt, że gatunek gier, które na początku były bezmózgie i tworzone w stylu:
Zabij wszystko, co się rusza, a co się nie rusza to ściana. Nie strzelaj do ściany. Strzelaj do wszystkiego, co nie jest ścianą. Strzelaj!

Przerodził się w gatunek, w którym strzelanie do przeciwnika stanowi najgorszy element, a treści przekazywane obok, przy okazji stanowią największą wartość.

Myślę, że na dobrego shootera przyjdzie nam jeszcze poczekać.

In Half-Life 3 I trust!

poniedziałek, 26 maja 2014

Bastion - Gra roku 2011

Jestem PC-owym graczem, wolnych chwilach włączam Steama, przeglądam newsy dotyczące gier, a także poluje na obniżki cenowe.

Nigdy nie kupuje gier za pełną cenę, zawsze czekam, aż Steam wprowadzi obniżkę minimum -50% i wtedy dopiero dokonuje zakupu. Nie powinno nikogo dziwić, że ogłaszam grę roku 2011 (data wydania Bastion) w roku 2014.

Bastion, hę?

Bastion do gra akcji typu hack&slash w rzucie izometrycznym
W grze wcielamy się w bezimiennego, chłopca - "The Kid", którego cały świat uległ zagładzie. O magicznym świecie opowiada Narrator towarzyszący graczowi od samego początku do samego końca. Podczas podróży po świecie stworzonym przez Supergiant Games, napotykamy wielu wrogów, który planują zrobić nam ku-ku. Do przedzierania się przez hordy wrogich nam stworów bohater wyposażony jest w dwie bronie, aby atakować z bliska np. młot i z daleka np. broń strzelająca strzałkami. Szeroki wachlarz broni można ulepszać w czasie gry w celu dopasowania ich swojego stylu gry.

Dlaczego gra roku?

Gra zręcznościowa + Hack&Slash po prostu uwielbiam ten gatunek. Bastion jest w 100% grywalny na klawiaturze+mysz, ale samemu preferuje gamepada od Xbox 360. Wprowadzenie stałego Narratora daje coś nowego czego nie można spotkać w wysokobudżetowych produkcjach. Muzyka w grze jest najlepszą muzyką do gry jaką spotkałem do tej pory. Naprawdę. Poziom trudności gry jest w pełni konfigurowalny. Podczas rozgrywki można wybrać, że przeciwnicy będą silniejsi, szybcy lub okresowo nieśmiertelni. Gra może być łatwa dla każdego gracza lub niesamowicie trudna dla tych co lubią wyzwanie.
Gra nie jest za długa, ale też nie za krótka. Osobiście, nie miałem poczucia że można było coś dodać lub odjąć.
Inżynier wie, że osiągnął doskonałość nie wtedy, kiedy nie można nic już dodać, ale kiedy nie można nic już zabrać. --- Antoine de Saint-Exupéry

Zakończenie

Gra do zakupienia na Steam. Twórcy Bastion wydali, też nową grę o nazwie Transistor, a recenzja planowana jest na 2017r. :D

niedziela, 4 sierpnia 2013

O Interniecie [Odpowiedź na artykuł] cześć 1

Dostałem email o następującej treści:
Koniecznie odwiedź - http://www.deon.pl/inteligentne-zycie/lifestyle/art,437,czy-internet-zrujnuje-nasze-dusze.html
I co Ty na to?
Artykuł posiada tytuł: Czy internet zrujnuje nasze dusze?, a wcale nie zajmuje się tym pytaniem. Moim zdaniem lepszym tytułem byłoby Czy internet rujnuje nasz mózg?

Tekst opiera się na książce "Płytki umysł" Nicholasa Carra. Wspomnianej książki nie czytałem, będę opowiadać do fragmentów wyciągniętych bezpośrednio z tekstu, którego zachęcam przeczytać mimo że się z nim nie zgadzam.

Wcześniej w 2008 roku Carr podgrzał atmosferę, publikując w miesięczniku "Atlantic" głośny tekst "Czy Google robi z nas głupców"?, gdzie wykazywał, że nadmierne korzystanie z internetu niszczy naszą zdolność do koncentracji i kontemplacji, przeładowując nas natłokiem informacji i "nieprzetrawionej" treści.
Moim zdaniem trochę jest inaczej. Google, Facebook, Microsoft, Twitter i spółka tworzą "filter bubble", gdzie informacje są przygotowane dla Ciebie i tylko Ciebie.

Strona wyników w Google jest skrojona dla konkretnego użytkownika, nawet dla osoby nie posiadającej konta w usługach Google.

Moim zdaniem w internecie jest coraz mniej chaosu informacyjnego, a coraz więcej selekcji informacji (narzucamy na siebie cenzurę, bo wygodnie jest, gdy każdy się z nami zgadza)

Internet poszerza dostęp do wiedzy i informacji, ale równocześnie z wolna pozbawia internautów zdolności do kontemplacji, introspekcji, spokojnego zagłębiania się w temat.
Nieprawda. Moim zdaniem internet jest doskonałym miejscem w którym można zagłębiać się w szczegółowo w temat. Przykład, StackOverflow (serwis w którym programiści mogą zadawać pytania i oczekiwać na odpowiedzi). Odpowiedzi na niektóre pytania są bardzo szczegółowe. Takie odpowiedzi z świecą szukać w innych bardziej tradycyjnych formach takich jak książki, ponieważ:
  1. Piszący ksiażkę nie stałego kontaktu z czytelnikiem
  2. Wydawcy książki mogą stwierdzić że to się nie sprzeda, poruszany temat jest za trudny dla ogólnej grupy osób kupujących.
"Spokojne zagłębianie tematu" jest kolejną zaletą Internetu, która nie występuje w tradycyjnych metodach nauczania. W tradycyjnej szkole jak nie zdążasz za tempem narzuconym przez nauczyciela, to możesz spotkać się kłopotami na kolejnej klasówce, ponieważ nie ma czasu na powtórki dla pojedynczego ucznia. Dzięki internetowym zajęciom lekcyjnym takimi jak Khan Academy uczeń jest w stanie powtórzyć materiał wykładowy tyle razy ile chce i w własnym tempie.

poniedziałek, 29 kwietnia 2013

Komunikacja z betonowym blokiem

(myślowy ciąg dalszy: Programista bez doświadczenia to betonowy blok w projekcie.)

Rozmawianie z betonowym blokiem jest trudne, ponieważ w końcu to beton.

Młodzi programiści, który są nazywani przez mnie betonowym blokiem posiada wiele wad, a jedną z nich jest problem w komunikacji międzyludzkiej. Mimo tego inni członkowie zespołu muszą koegzystować z taką osobą.

Jeżeli taki programista spędził ostatnie 5 lat na nauce programowania (co jest formą komunikacji tyle. że człowiek-komputer) wynikiem tego są pewne uszkodzenia kory mózgowej. Otóż mózg takiej osoby zaczyna zapominać, jak porozumiewało się z drugim człowiekiem. Nie trudno się domyślić, że to może spowodować problemy.

Istnieje kilka charakterystycznych skrzywień, jakie można zaobserwować. Kilka z nich wymieniłem poniżej.

Disconnected (człowiek odizolowany od inny ludzi)

Z taką osobą nie da się porozumieć, ponieważ nie odpowiada lub mówi coś w swoim języku - składającej się z pomruków oraz chrząknięć. Taka osoba nie nawiązuje znajomości, nikt nie ma dobrego zdania o tej obobie, ponieważ jej nie zna. Taki pracownik najchętniej zamknąłby się w swojej przestrzeni, w swoim cubicle, gdzie mógłby umrzeć i co nie zostałoby zauważone. A po 3 dniach smród rozkładającego ciała spowodowałby - wyczyszczenie firmowej lodówki z 'zielonych' produktów.

Helpless (człowiek bezradny, ciapa)

Wszystko jest trudne, nic mu nie wychodzi. Taka osoba wymaga zatrudnienia drugiego pracownika, aby pomagał temu pierwszemu. Prosi o pomoc, a inni odpowiadają "nie wiem", "nie mam pojęcia". "zajęty jestem". Czuje się odizolowany i niepotrzebny

Sam się wpędza w problemy, inni ludzie mają go po prostu dosyć.

Writer (człowiek pisarz, twórca bełkotu oraz ścian tekstu)

Osoba co duża gada a mało robi. Potrafi się wypowiedzieć na każdy temat, ale rzadko z sensem. Niektóre osobniki są zarozumiałe i uważają, że tylko one mają racje. Jak mają odpisać na e-mail to piszą 2 strony tekstu w celu odpowiedzi na jedno pytanie. Teoretyk.

(osobiście, najbliżej mi jest do tej kategorii)

Coder (człowiek komunikującym kodem)

Osoba, która przy komunikacji się wykorzystuje tylko 100 najpopularniejszych słów. Najchętniej używaliby języka programowania w normalnej rozmowie! Informacje pisane przez taką osobę są trudne do przeczytania i zrozumienia. Wymagają powołania specjalnej komisji która potrafiłaby rozszyfrować 'co autor miał na myśli'.

wtorek, 16 kwietnia 2013

Programista bez doświadczenia to betonowy blok w projekcie.

(Post pisze programista, który nabywa doświadczenie, uważa się jako młodszy programista)


Jest piękny słoneczny dzień, pierwszy dzień roku w którym termometr przekroczył poziom 22 stopni Celsjusza. Szef firmy tworzącej oprogramowanie wstał z łóżka przeciągnał się, przetarł oczy, przeszedł 5 metrów do swojego biura, aby wykonać dzienną porcję ćwiczeń (czyt. włączyć swój komputer).

Pod wpływem wysokich słupków, które zobaczył w Excelu, oraz ogólnie dobrego samopoczucia zaczyna patrzeć pozytywnie w przyszłość.
- Czas wprowadzić nowy produkt! - myśli szef - Do nowego produktu potrzebuje nowych energicznych osób, które nie tylko wprowadzą powiew świeżości do firmy, a ponadto okażą się tanią siłą roboczą.
Zadowolony ze swojego pomysłu, odwraca się od komputera, aby wyruszyć do kuchni, aby wypić pierwszą kawę tego dnia.


Jeżeli zostałeś zatrudniony jako osoba bez doświadczenia, to możesz przestać grać w Lotto, bo wyczerpałeś limit szczęścia na pewien okres czasu. Jeżeli to nie było szczęście to pewnie twój szef jest szalony, aby podejmować takie ryzyko.

Jeżeli Młody programista dołącza do już istniejącego projektu, to musi poznać już istniejący kod, a to wymaga czasu (a czas == pieniądze) . Taka osoba jest użyteczna jak betonowy blok, który nic nie robi.

Niestety, przychodzi taki moment kiedy Młody programista zaczyna pisać kod, wtedy z betonowego bloku może się stać drewnianym blokiem [1], albo okazać się, że jest betonowym blokiem dodatkowo zbrojonym który zaczyna się uwiązywać na szyi. To może być szyja szefa lub jak to najczęściej bywa  innych programistów, których marzeniem nie jest utonięcie na dnie rzeki.

[1] Drewniany blok jest lżejszy niż betonowy ponadto pachnie świerkowym lasem i pięknie wygląda w surowym otoczenia biura. Przy odrobinie szczęścia  może okazać się że na korze drewna znajduje się kokon z którego wyjdzie piękny motyl. Inaczej mówiąc jest pozytywnie.

Każdy młodszy programista ma tendencje do pisania w sposób bardzo minimalistyczny. AKA zrobić tak, aby działało to dziś, ponieważ jutro może być apokalipsa, a więc Who cares, right? Program zawsze oczekuje że zostaną wprowadzone prawidłowe dane, wyjątki są po to aby je łapać i nic z nimi nie robić,  oszczędzanie pamięci (?) fuck that.

Jeżeli jesteś starszym programistą, to teraz możesz sobie myśleć:
  • No... masz rację, mamy tutaj firmie takiego kolesia co nie robi tego lub tamtego
  • No... jakby to powiedzieć mimo X lat doświadczenia nadal robię podobne błędy
Jeżeli jesteś młodszym programistą, to teraz myślisz sobie:
  • Haha... jak dobrze że tego sam nie robię, bo jestem najlepszy na świecie, ale moi koledzy to gówniany kod piszą.
Młodzi programiści, nie posiadają poczucia perspektywy, nie wyobrażają sobie tego że ich program będzie działał więcej niż 1 rok. Nie przeczuwają, że ktoś będzie się użerał z ich kodem, nawet po ich odejściu.

Temat nie został wyczerpany, ale mój limit znakowy tak.

piątek, 10 lutego 2012

Nazywanie argumentów funkcji w C#

Ostatnio rozpocząłem poznawanie możliwości C# 4.0. Dzisiaj zachwyciłem się możliwością nazywania argumentów.

Ta cecha pozwala na zwiększenie czytelności kodu, a polega na poprzedzeniu argumentów funkcji ich nazwą. Na przykład dla funkcji obliczającej BMI (waga w kilogramach, wzrost w metrach)
static double CalculateBMI(double weight, double height)
{
    return ( weight / ( height * height ));
}

Można wywołać ją w następujący sposób:
double myBMI = CalculateBMI(weight: 85, height: 1.90);
Co więcej, możemy także zamienić kolejność parametrów!
double myBMI = CalculateBMI(height: 1.90 ,weight: 85);
Taki kod sam się dokumentuje, ponieważ od razu widać co robi dany literał w kodzie.

niedziela, 29 stycznia 2012

Szkolenie: "XNA - Szybki start" / Wrażenia / Relacja

Microsoft XNA
Image via Wikipedia
Tydzień temu dostałem e-mail z zapytaniem czy nie chciałbym uczestniczyć w Akademii Kontentu Microsoft. Moja decyzja (jak na mnie) była błyskawiczna - jadę.

Akademia Kontentu Microsoft zbiera chętne osoby do pisania artykułów np. do bazy wiedzy MSDN.

Jako środek transportu Szczecin<->Warszawa wybrałem nocny pociąg z miejscem leżącym inaczej bałbym się zabrać laptopa w taką podróż.

Przybyłem do Warszawy głodny, a zlezienie czegoś otwartego od 6:05 jest trudne, ale od czego jest McDonald?  Pierwszy raz jadłem ofertę śniadaniową, moim zdaniem to jest bez sensu. No ale mają WiFi i nie wyrzucają Ciebie za drzwi jak już skończysz jeść.


Image representing Microsoft as depicted in Cr...
Image via CrunchBase
Aby poznać Warszawę choć troszeczkę, postanowiłem chodzić niż wybierać komunikację miejską. Od Warszawy Centralnej do siedziby Microsoft Poland jest 1 godzina 15 minut pieszo i więc wiedz na co się decydujesz.

Jestem przyzwyczajony do chodzenia, a więc osoby które myślały, że zmarłem na zawał są w błędzie!

Spotkanie rozpoczęło się od wykładu/warsztatu dr Jacka Matulewskiego z Uniwersytetu Mikołaja Kopernika w Toruniu, na temat XNA 3D. Mówił o grafice 3D od zera w przeciągu pierwszej godziny omówił wiele aspektów grafiki 3D OpenGL'a jako bazy, ponieważ jest uczony także na uczelniach innych niż moja.

Szczerze mogę powiedzieć, że po tej godzinie mój poziom wiedzy z OpenGL oraz XNA 3D się wyrównał.

Następnie nastąpiła przerwa na pizzę aby mieć siły ruszyć do kolejnych zmagań z grafiką 3D. Skoro poruszyłem temat przerw, Microsoft posiada genialny ekspres do kawy... ah.

English: The wordmark of Microsoft's DirectX-A...
Image via Wikipedia
Wciągu następnej godziny warsztatów z grafiką 3D zmagaliśmy się shaderami (przypominam, że XNA na Windows Phone 7 NIE POSIADA programowalnych shaderów, używa się klas typu Basic Effect).

Muszę przyznać, że można było się sporo nauczyć z tego względu, że shadery były pisane od zera, a więc dowiedziałem się po co piszę każdą linijkę shadera. Bardzo pouczające. HLSL nie gryzie!

Prowadzący czasem używał FX Composer programu do programowania od NVIDII, muszę się temu narzędziu bliżej przyjrzeć kiedy w przyszłości będę się zajmował programowaniem gier.

Między czasie odbyła się wideokonferencja z leaderem Akademii Kontentu Microsoft, co sprowadziło się do podania terminów następnych spotkań.

Potem przyszła pora na człowieka z People Can Fly (firmy, która stworzyła Bulletstorm), opowiedział on o etapach produkcji gry. Od pomysłu, przez pierwszy pokaz gry, do finiszu i wydania gry. A po wykładzie nastąpił długo trwający Q&A, czyli pytania i odpowiedzi. Pojawiły się różne pytania np. jaka platforma jest najlepsza do pisania gier (PC, X360,PS3 czy może urządzenia mobilne lub gry sieciowe).
Bulletstorm
Image via Wikipedia

Najdłuższa dyskusja dotyczyła pytania: Dlaczego People Can Fly nie może znaleźć pracowników?

Chodzi o to, że PCF posiada test (słowo test pojawiało się często) jest to test wiedzy z C++. Czy on jest ciężki? Zależy czy masz odpowiednią wiedzę. Generalnie prowadzący Q&A dał mi do zrozumienia, że warto, ale to naprawdę warto przeczytać specyfikację C++, czyli taki dokument wg. którego później pisze się kompilatory.

Jeżeli czyta tego posta ktoś kto chce się ubiegać o posadę w PCF, to rzucam kolejną poradom sprawdzaj skrajne przypadki, zawsze.

Wymagania są wysokie, a uczelnie nie uczą C++ na tak wysokim poziomie. Na 30 CV zgłoszonych w przeciągu roku test przechodzi 0-1 osób.

A jeżeli ktoś nie przejdzie testu, to nie ma możliwości, że zatrudnią Cię. Programiści muszą przejść test.
Enhanced by Zemanta