Publications

Immediate Mode GUI - Theory and Example

Slides presented on Warsaw GameDev Meetup.

"Problem of implementing GUI (HUD) in games and applications. Possible solutions. Idea of immediate mode GUI. Introduction to Dear ImGui library. Demo of example application. It will be on intermediate level so participants should know some programming and basics of graphics."

Date: 2017-10-24

Download:
Immediate Mode GUI.pptx (view online)
Immediate Mode GUI.pdf

Unofficial manual for VK_KHR_dedicated_allocation - a Vulkan extension related to memory management.

Date: 2017-10-16

Blog post on GPUOpen.com explaining all types of objects that exist in Vulkan API and showing their relationships on a diagram.

Date: 2017-08-07

(Polish) Artykuł porusza temat pracy zdalnej - jej zalety i wady oraz opinię autora na temat tego typu pracy. Wymienia powszechnie panujące przekonania na temat pracy z domu i wskazuje, które z nich są prawdziwe, a które nie.

Date: 2017-05-01

Pułapki liczb zmiennoprzecinkowych

(Polish) Niezależnie od używanego języka programowania, korzystając z liczb zmiennoprzecinkowych można natknąć się na wiele pułapek. Dlatego warto posiąść podstawową wiedzę związaną z tymi typami danych oraz trzymać się reguł, które pozwolą uniknąć niemiłych niespodzianek podczas programowania obliczeń.

Prezentacja pokazana podczas targów Kariera IT 24 września 2016 w Sopocie.

Zobacz online na slideshare

Date: 2016-09-24

Download:
Adam Sawicki - Pulapki liczb zmiennoprzecinkowych.pptx (view online)
Adam Sawicki - Pulapki liczb zmiennoprzecinkowych.pdf

Programowanie grafiki dziś

(Polish) Artykuł opublikowany w magazynie Bajtek Czerwiec 2016 (135) Wydanie specjalne. Opisuje krótko historię kart graficznych (od pierwszych gier 3D, przez 3Dfx Voodoo i S3 ViRGE, karty NVIDIA i ATI/AMD, pojawienie się OpenGL i DirectX, do wynalezienia shaderów), pokazuje potok graficzny współczesnych GPU oraz wspomina o nowej generacji API graficznych (Direct3D 12 i Vulkan).

Osobom, które interesowały się programowanie grafiki, gier czy demosceną w czasach świetności Bajtka pozwoli uaktualnić swoją wiedzę na temat rozwoju tej dziedziny informatyki.

Date: 2016-06-03

Architektura współczesnych gier video

(Polish) Prezentacja pokazana podczas targów Kariera IT 13 grudnia 2014 w Gdańsku.

Zobacz online na slideshare

Date: 2014-12-13

Download:
Adam Sawicki - Architektura gier video.pptx (view online)
Adam Sawicki - Architektura gier video.pdf

Pisząc kod natywny C/C++, czyli nie taki diabeł straszny

(Polish) Prezentacja pokazana podczas targów Kariera Programisty 14 grudnia 2013 w Gdańsku.

"Na podstawie swojego doświadczenia zawodowego autor opowie, jaki charakter ma praca programisty piszącego kod natywny w C/C++, w jakich zastosowaniach używa się takich języków oraz z jakimi problemami trzeba się tam zmierzyć. Postara się pokazać, że warto wybrać tę ścieżkę kariery oraz że nie jest ona taka trudna, jak mogłoby się wydawać."

Zobacz online na slideshare

Date: 2013-12-14

Download:
Adam Sawicki - Piszac kod natywny C++.pptx (view online)
Adam Sawicki - Piszac kod natywny C++.pdf

(Polish) Artykuł opublikowany na łamach magazynu "Programista". Wydanie 9/2013 (16)

W grach i niektórych innych programach zachodzi potrzeba mierzenia upływu czasu, a ten podlega ograniczeniom (np. zakresu, precyzji) zależnie od metody, jaką go mierzymy, i formatu, w jakim go zapisujemy. Dlatego ważne jest, by zdawać sobie sprawę z tych ograniczeń i odpowiednio do danego zastosowania wybrać funkcję odczytującą aktualny czas, typ zmiennej do jej przechowywania, jednostkę oraz punkt zerowy, a także w świadomy sposób posługiwać się nim, wykonując tylko operacje logicznie prawidłowe i nie powodujące zbyt dużej utraty precyzji.

(Polish) Artykuł opublikowany na łamach magazynu "Programista". Wydanie 7/2013 (14)

Język C++ nie posiada wprawdzie garbage collectora, który automatycznie zwalniałby pamięć, ale to nie znaczy, że nie dostarcza niczego, co mogłoby w zarządzaniu pamięcią pomóc. Nowy standard języka C++11 oferuje klasy inteligentnych wskaźników - unique_ptr i shared_ptr - których warto używać, aby uczynić programowanie bardziej wygodnym i bezpiecznym.

(Polish) Artykuł opublikowany na łamach magazynu "Programista". Wydanie 6/2013 (13)

Świat komputerów szybko się rozwija. Dziś korzystamy z Internetu na smartfonach i tabletach oraz przechowujemy nasze dane w chmurze, a producenci sprzętu i oprogramowania dbają, aby wszystko było dla nas proste i przyjemne. Kilkadziesiąt lat temu, kiedy pierwsze komputery trafiały pod strzechy, użytkowników witał wiersz poleceń konsoli, w magazynach komputerowych ukazywały się kursy programowania, a niektórzy nawet z lutownicą majsterkowali przy swoim sprzęcie. Właśnie w tamtych czasach narodziła się demoscena.

(Polish) Artykuł opublikowany na łamach magazynu "Programista". Wydanie 4/2013 (11)

Choć języki wysokiego poziomu - skryptowe, interpretowane czy wykonywane w wirtualnej maszynie - mają wiele zalet i są najlepszym wyborem w licznych zastosowaniach, to niekiedy potrzebujemy napisać kod jak najbardziej wydajny. Do tego nie wystarczy zastosować język natywny taki jak C++. Dopiero pewna dawka wiedzy i znajomość dobrych praktyk pozwoli wycisnąć ze sprzętu maksimum mocy obliczeniowej.

(Polish) Relacja ze Zjazdu Twórców Gier, który odbył się 27-28 października 2012 w Poznaniu.

Date: 2012-11-12

C++/CLI Tutorial

The article describes C++/CLI programming language. From it you can discover features and advantages of this language and learn its syntax. C++/CLI is an extension to C++ made by Microsoft and available in Visual Studio / Visual C++ IDE. At the same time it is one of the languages of .NET platform, next to C# or VB.NET. With it you can freely mix native and managed code, which gives extraordinary power in some applications.

Date: 2011-12-01

Download:
CPP_CLI_tutorial.pdf
CPP_CLI_tutorial_samples.zip

Tworzenie wydajnego kodu c++ w podejściu zorientowanym na dane

(Polish) Prezentacja do prelekcji wygłoszonej podczas VIII Ogólnopolskiej Konferencji Inżynierii Gier Komputerowych IGK'8-2011 w Siedlcach.

Autorzy: Adam Sawicki i Tomasz Dąbrowski.

Streszczenie referatu: Artykuł opisuje wady programowania obiektowego - zarówno od strony projektowej, jak i ze względu na wydajność kodu. Porusza problem opóźnienia w dostępie do pamięci RAM we współczesnych architekturach komputerowych. Przedstawia programowanie zorientowane na dane (ang. DOD - Data-Oriented Design) jako alternatywne podejście do projektowania i implementowania silnika gry kładące nacisk na optymalizację struktur danych pod kątem szybkości. Porusza także problem wydajności poszczególnych konstrukcji języka C++.

Zobacz online na slideshare

Date: 2011-03-26

Download:
IGK2011_Dabrowski_Sawicki_slides.pdf

Pułapki programowania obiektowego

"Pitfalls of Object-Oriented Programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" na Politechnice Warszawskiej, a w drugiej wersji wygłoszonego także na AGH w Krakowie.

Opracowana na podstawie tekstu "Fanatyzm obiektowy", przedstawia krytyczne podejście do projektowania i programowania obiektowego (m.in. pisania wrapperów na używane biblioteki, nadmiernej generalizacji, nadużywania dziedziczenia, enkapsulacji, wzorców projektowych) oraz jego negatywny wpływ na prostotę i czytelność kodu. Jako alternatywę prezentuje podejście DOD (Data-Oriented Design).

Zobacz online na slideshare

Date: 2011-03-30

Download:
Pulapki_programowania_obiektowego_v2.pdf
Pulapki_programowania_obiektowego_v2.pptx (view online)

C++ w programowaniu gier

"C++ in game programming" [Polish] Prezentacja do wykładu przygotowanego na Koło Naukowe Twórców Gier "Polygon" przy Politechnice Warszawskiej. Opisuje: dlaczego do programowania gier używa się właśnie języka C++, co stosować, a czego unikać, aby pisany kod był dobry i przede wszystkim wydajny w działaniu.

Zobacz online na slideshare

Date: 2010-10-30

Download:
C++ w programowaniu gier.pdf
C++ w programowaniu gier.pptx (view online)

Architecture and Implementation of 3D Graphics Engine

My master thesis. It describes my graphics engine "The Final Quest". It includes literature overview, description of my engine architecture (layers, modules, classes and fields) and implementation details (rendering process organization, shader code explanation, skeletal animation computations, particle effects implementation, model file format and more).

Date: 2008-06-16

Download:
Adam Sawicki - Praca mgr.pdf

Pisanie wtyczki do Total Commandera do obsługi własnego formatu archiwum VFS.

Date: 2009-02-24

Artykuł jest bardzo długi i opisuje kilka zagadnień programistyczno-matematycznych dotyczących grafiki 3D: koncepcję kamery i jej implementację jako zestaw klas, rysowanie prostokątów zwróconych przodem do kamery (Billboard), w tym efektów cząsteczkowych, testowanie kolizji obiektów z polem widzenia kamery w celu nierysowania tego co niewidoczne (Frustum Culling) oraz testowanie kolizji promienia celem sprawdzania, który obiekt 3D gracz wskazał myszką (Picking). Dołączony kod zawiera spory kawałek mojej biblioteki matematycznej.

Date: 2008-06-05

Implementacja C++ klasy do własnego zarządzania pamięcią, która zarządza listą wolnych bloków i przydziela bloki duży szybciej, niż standardowy operator new.

Date: 2008-05-28

Dla wszystkich zających C++, Direct3D i HLSL. Artykuł opisuje metodę na poradzenie sobie z kompilowaniem shaderów z różnymi kombinacjami ustawień za pomocą makr preprocesora.

Date: 2008-05-22

(Polish) Artykuł wprowadza do tematu używania Unicode w programach pisanych w C++ dla systemu Windows, z użyciem środowiska Visual C++. Stanowi zwięzły przegląd funkcji i innych elementów, których należy używać, żeby program działał z Unicode. Od czytelnika wymaga jedynie znajomości podstaw programowania w języku C++.

Date: 2008-05-21

Dla tych którzy już znają wektory i macierze, artykuł wprowadza kwaterniony jako sposób reprezentowania obrotów i orientacji.

Date: 2008-05-20

Opis darmowej biblioteki FastDelegate dostarczającej wskaźników na metody dla C++.

Date: 2008-05-19

Wyniki eksperymentu mierzącego czas wczytywania tekstur w Direct3D 9 dla różnych formatów plików graficznych i różnych ustawień.

Date: 2008-02-03

Direct3D 9 - Wykład

Prezentacja do wykładu na temat Direct3D 9. Przegląd biblioteki od inicjalizacji, poprzez renderowanie trójkątów, bufory wierzchołków i indeksów, teksturowanie, oświetlenie aż do shaderów. Ma 96 slajdów.

Zobacz online na slideshare

Date: 2008-02-28

Download:
Direct3D9_Wyklad.pdf
Direct3D9_Wyklad.ppt (view online)
Direct3D9_Wyklad.pptx (view online)

Programowanie na komórki

Prezentacja do wykładu na temat J2ME, czyli programowania w języku Java midletów na komórki. Omawia bardziej lub mniej dokładnie wszystkie moduły wchodzące w skład standardu MIDP 2.0. Ma 98 slajdów.

Zobacz online na slideshare

Date: 2007-12-30

Download:
J2ME-Wyklad.pdf
J2ME-Wyklad.odp

IV Ogólnopolska Konferencja Inżynierii Gier Komputerowych - relacja z tego ważnego dla mnie wydarzenia, które odbyło się w dniach 23-25 marca 2007 w Akademii Podlaskiej w Siedlcach.

Date: 2007-03-28

Przystępny i praktyczny opis, jak użyć mechanizmu Precompiled Headers w Visual C++, żeby wielokrotnie przyspieszyć kompilację swoich programów.

Date: 2007-05-25

Cykl artykułów obejmujący kurs programowania w Direct3D z użyciem C++, powoli i od podstaw. Uczy jak napisać szkielet aplikacji DirectX itd. Nastawiony jest na programowanie gier 2D. Ukazał się na łamach magazynu WARP.

Implementacja konsoli z użyciem mechanizmu systemowego Windows działającej w sposób asynchroniczny.

Date: 2006-08-08

Artykuł przedstawia badanie zachowania się w praktyce różnych metod rzutowania wartości między różnymi prostymi typami danych w języku C++.

Date: 2006-06-17

FMOD, czyli programowanie dźwięku do gry

Kurs obsługi biblioteki FMOD do implementacji dźwięku i muzyki (także 3D) w grach komputerowych.

Artykuł ukazał się na łamach magazynu elektronicznego WARP w numerze WARP 2.0 Digital 10 (09/2006). Od drugiej połowy grudnia 2006 numer ten jest dostępny za darmo do pobrania. Jak pobrać? 1. Wejść na stronę WARP. 2. Dział Download. 3. Kliknąć na obrazek pod "Magazyn WARP 2.0 Digital (format PDF)". 4. Pobrać numer "WARP 2.0 Digital nr 10 (wrzesień 2006)". 5. Znaleźć mój artykuł w spisie treści.

Date: 2006-06-04

Artykuł prezentuje algorytm, który przeszukując katalogi dysku twardego użytkownika pozwala odnaleźć potrzebny plik w czasie wielokrotnie krótszym, niż podczas tradycyjnego, rekurencyjnego przeszukiwania dysków dzięki zastosowaniu prostej heurystyki i wiedzy o konkretnym problemie.

Date: 2007-02-28

Artykuł opisuje podstawowe struktury danych (jak wektor, lista, drzewo i inne) oraz operacje na plikach i tworzenie własnych formatów plików.

Date: 2004-05-14

Artykuł obejmuje zagadnienia związane z podstawami informatyki. Opisuje sposób, w jaki komputer reprezentuje informacje na najniższym poziomie - za pomocą pojedynczych zer i jedynek. Dostępny jest w wersji HTML, PDF i DOC. Licencja: GNU FDL.

Date: 2004-01-03

Download:
D_B.pdf
D_B.doc

Pięcioczęściowy kurs pisania botów IRC.

Date: 2003-12-12

Download:
eggdrop_tcl.zip

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror]
Copyright © 2004-2017