Kolejną ze struktur danych, jakie przydadzą się podczas tworzenia gry, jest graf sceny. Graf sceny będzie grafem dość specyficznym (acyklicznym i spójnym), co w teorii sprowadzi go do drzewa. Zielonym do.. dołu. Drzewa w informatyce rosną w dół. Korzeń znajduje się u szczytu, kolejne gałęzie, węzły (wierzchołki posiadające dzieci) i liście (wierzchołki, nie posiadające dzieci) są umieszczane niżej. Przykładowe drzewo binarne (takie, w którym każdy wierzchołek może mieć co najwyżej dwoje dziec...
O ile naturalnie potrafię zrozumieć powody, dla których niektórzy wybierają Linuxa, to w ogóle nie potrafię zrozumieć programistów, którzy świadomie wybierają Windowsa jako swoją platformę. Znam kilku, którzy ciągle tkwią w rutynie z różnych powodów — żaden z nich tego nie pragnie. Miałbym trudność w wyobrażeniu sobie, iż zatrudniam do 37signals kogoś, kto...
Microsoft Azure stało się ostatnio dość popularne na blogach a sam MS bardzo promuje swoją wersję chmury. IMHO jest to technologia, której nawet jeśli nie jest jeszcze w pełni dojrzała – pierwsze wersje narzędzi, część (np. CDN) jeszcze w wersji Beta – warto się przyglądać. Aby poznać nową technologię IMHO najlepiej spróbować wykorzystać ją w projekcie (tu zgadzam się z opinią Procenta). Tak więc zaczynamy. Na początek jak zwykle Hello World.
MTS to z pewnością wydarzenie, w którym warto uczestniczyć. Spiszę dziś na świeżo po powrocie wrażenia, jakie wyniosłem z 2 ostatnich dni. Zacznę od … stoiska ATE Windows Phone, które współdzieliłem z Danielem Dudkiem. Komunikacja z różnymi ludźmi daje nieraz cenne doświadczenie, jak dane zagadnienie, produkt, technologia jest postrzegana przez innych. Ze swojej strony starałem się udzielać jak najbardziej dokładnych informacji, sprzedając zainteresowanym szczegóły z zakresu samych technologii czy możli...
Postawione w tytule posta pytanie jest jak najbardziej na miejscu. Już teraz mogę zdradzić tajemnicę, że nigdy tablicy nie udostępniamy w postaci właściwości. Na początek chciałbym krótko zarysować problem. W czasie tworzenia kodu okazało się, że bardzo ułatwi mi zachowanie go czytelnym utworzenie klasy przechowującej tablice stworzonych przeze mnie obiektów. Wygląda to następująco: public part...
Tak, jak wspominałem w ostatnim wpisie, kontynuujemy dzisiaj zmagania z interakcją Gracza z modelami znajdującymi się na scenie. Najpierw zamkniemy każdy z nich w „bańce”, którą następnie będziemy nękać promieniami (ang. rays) i domagać się odpowiedzi na najważniejsze z pytań: „Było przecięcie, czy nie?” (co najlepsze, odpowiedzią może być 42 ). Zaznaczanie, czyli kolizja Zaznaczanie można zrealizować na kilka sposobów. Można np. rysować każdy z obiektów sceny obie...
W poprzednim poście przedstawiłem krótko narzędzia do tworzenia interpreterów w F#. Dzisiaj chciałbym przedstawić bliżej jedno z nich, czyli fslex.exe. Dobrym źródłem wiedzy na temat fslex jest książka twórcy F#, Dona Syme pt. „Expert F#”, w której poświęcono cały rozdział technikom parsowania i tworzenia interpreterów w F# oraz dokumentacja do ocamllex. Wygenerowany kod analizatora wykorzystuje typy z dllki FSharp.PowerPack.dll, więc jeżeli chcesz używać analizatora w swoim projekcie powinieneś również ...
Zafascynowany pierwszą książką Joela Spolsky'ego postanowiłem sięgnąć po kolejną pozycję z jego nazwiskiem na okładce. Jedyna papierowa wersja, jaką udało mi się pożyczyć, to The Best Software Writing I.
Debugowanie jest procesem niezwykle złożonym. Istnieją publikacje opisujące techniczne aspekty wyszukiwania błędów w kodzie w ten właśnie sposób. Czasami warto jednak zapoznać się z jakimś zagadnieniem w oderwaniu się od konkretnej technologii. Taką właśnie pozycją jest Debugowanie. Jak wyszukiwać i naprawiać błędy w kodzie oraz im zapobiegać (oryg. Debug It!: Find, Repair, and Prevent Bugs in Your Code). Książka nie jest opisem jakiegoś narzędzia wspomagającego debugowanie, platformy uruchomieniowej cz...
Zdarza się, że programując czy to w Silverlightcie czy w WPF-ie, otwierając plik .XAML nie chcemy widzieć edytora. A to być może z powodów wydajnościowych, a może “ideologicznych” bo jesteśmy “hardcorowymi developerami” i designery są “dla małych dziewczynek” . Jak w Visual Studio (na pewno 2010, 2008 nie sprawdzałem) osiągnąć taki efekt? Bardzo prosto. Należy otworzyć taką ścieżkę menu: Tools -> Options -> Texteditor -> XAML -> Mis...
Wszyscy już chyba wiedzą, że Microsoft udostępnił wersję RTM dla Windows Phone. Wszystko wygląda pięknie. Zasób materiałów, tutoriali, blogów, pod-castów i czego tam sobie jeszcze nie wymyślimy jest porażający. To co się nie zmieściło w standardowych kontrolkach udostępniono jako Toolkit dla Windows Phone. Wciąż mało? N...
Autor: Ponieważ nie wszyscy zdają sobie sprawę z możliwości oraz wymagań jakie stawia przed nami firma Microsoft odnośnie korzystania z produktów w wersji Express Edition, postanowiłem zamieścić fragment listu jaki otrzymałem z Centrum Obsługi Klienta Microsoft.
Na początek przytoczę źródło o może niezbyt wysokiej renomie w ostatnim czasie, charakteryzujące się jednak dużą liczbą opisywanych nowinek - http://www.chip.pl/news/wydarzenia/umowy-i-fuzje/2010/09/sojusz-microsoftu-i-wordpressa-oznacza-koniec-dla-windows-live-spaces Jako, że sam posiadam bloga w serwisie Windows Live jest to dla mnie smutna wiadomość, tym bardziej, że gorąco kibicuje całej platformie jaką jest Windows Liv...
Za czasów .NETa 2.0, dość uciążliwym mógł być brak prostej możliwości rozszerzania już istniejących klas. Zespół MS postanowił ten sposób rozwiązać, tworząc właśnie “Extension methods”. I tak, .NET 3.5 oferuje nam całkiem przystępny mechanizm pozwalający dodawać nowe funkcjonalności do już istniejących typów. Zasada działania Działa to wszystko zadziwiająco łatwo. Najpierw odrobina kodu, zamienimy stringa na tabli...
Jako że omówiliśmy już jakie rodzaje dokumentacji należy tworzyć, możemy przejść do odpowiedzi na pytanie jak należy rozwinąć styl, dzięki której taką dokumentację będzie dało się czytać. Naucz się pisać Niestety, nie ma tutaj dróg na skróty. Najlepszym sposobem na nauczenie się jak pisać dobrą dokumentację jest najpierw nauczyć się pisać (cokolwiek). Istnieją pewne istotne różnice między dokumentacją techniczną i Twoją przeciętną prozą, ale solidne podstawy w komunikacji pisemnej są wymaganiem nie do za...
Wiedza, wiedza, wiedza… Tworzenie systemów operacyjnych to niszowa dziedzina informatyki. Zajmują się nią nieliczni. Osobiście uważam jednak, że posiadanie wiadomości z zakresu systemów operacyjnych, to absolutny obowiązek każdego szanującego się informatyka. Nie myślę tu oczywiście o umiejętności obsługi Linuksa, czy też administracji Windowsem, tylko o zagadnieniach typu wieloprocesowość i wielowątkowość, synchronizacja procesów i wątków, szeregowanie, zarządzanie pamięcią, czy choćby znajomość zarysu ...
Silników fizycznych mamy całą masę: Box2D, Bullet, Havok, PhysX, Newton Game Dynamics. Część jest OpenSource, część darmowa tylko do zastosowań niekomercyjnych, niektóre tylko komercyjne. Część 2D, cześć 3D. Część stosunkowo mało rozbudowana(np. pierwsze dwa z mojej listy), część to ogromne biblioteki(te komercyjne). Niestet...
Logika biznesowa projektu jest w znaczącej większości pokryta testami jednostkowymi. Od pewnego momentu do każdej nowej funkcjonalności staram się stosować podejście Test-Driven Development, pisząc najpierw testy ją definiujące. Nie robiłem tego od samego początku, bo wahał...
Autor: Podczas zmagań ze stworzeniem rejestracji użytkowników (która jest już dla BlogMaker'a w 90% skończona i wkrótce pojawi się o tym szerszy post) przyszło stworzyć kod aktywujący, który zostanie mailem wysłany do użytkownika, aby potwierdzić adres, na który rejestruje się dane konto. Ów kod nie jest niczym innym jak przypadkowym łańcuchem znaków. początkowo użyłem po prostu obiektu klasy Random, który przy odpowied...
Podczas stosowania Agile niezbędnym jest podział kolejnych funkcjonalności klienta na zadania (tasks), które przydzielane są następnie kolejnym członkom zespołu programistycznego. Funkcjonalności dzielimy na zadania na początku każdej iteracji - dzielimy tylko te funkcjonalności które mają być w danym okresie czasu zaimplementowane...