Archiwum dla daty Lipiec,2010

Generyczna klasa zbioru (2010-7-23)

W projekcie, nad którym pracuję potrzebowałem przyzwoicie działającej klasy reprezentującej zbiór. Zbiór nie do końca w sensie teoriomnogościowym (o właściwościach takiego można przeczytać np. tu), posiadający jedną bardzo ważną cechę: przechowywanie unikalnych elementów.

Wyzwanie dla level-designerów (2010-7-22)

Projektanci poziomów w grach często starają się przewidzieć lokalizacje trudno dostępne, czy wręcz”sekretne”. Takie elementy dają spore możliwości – pełne „po horyzont” pole apteczek w grach FPP, potężny artefakt w RPG czy po prostu dodatkowe punkty / skrót w wyścigu w ścigałkach. Taki secret jest też okazją do zaprezentowania poczucia humoru twórców, którzy mogą w […]

Short Tip #09: GetHashCode() dla wektora (2010-7-19)

Specyfika pewnej części projektu, nad którym obecnie pracuję wymagała zastosowania tablicy haszującej. Struktury danych, które są przechowywane w tablicach (jedna tablica na typ) wyglądają następująco: Okazało się, że metoda GetHashCode() domyślnie wygenerowana przez IDE dla klasy Vector3 jest niewystarczająca – błędy pojawiły się już przy próbie wczytania wierzchołków, krawędzi i trójkątów prostego sześcianu. Chwila zastanowienia […]

SRP – Single Responsibility Principle w praktyce (2010-7-15)

O Single Responsibility Principle, pierwszej zasadzie S.O.L.I.D.-nego oprogramowania napisano sporo, jednak prawie wszystkie artykuły, które czytałem odnosiły się do tematu od bardzo teoretycznej strony. Poniżej przedstawiam jak najbardziej „produkcyjne” zastosowanie SRP, które powstało przy pisaniu części aplikacji odpowiedzialnej za ładowanie prostych modeli z formatu OBJ.