Launch MFDStale rozwijany wyświetlacz wielofunkcyjny Orbiter'a, który oblicza azymut startu i lotu twojego statku kosmicznego, wymagany aby osiągnąć orbitę o podanych parametrach. Dodatkowe funkcje Launch MFD:
Launch MFD znajduje się na liście dwudziestu najczęściej pobieranych dodatków do Orbitera wszechczasów. Jako projekt będący Wolnym Oprogramowaniem, swój wkład w Launch MFD wniosło kilka osób, i trzech głównych autorów, w tym ja.
Do uruchomienia wymagany jest Orbiter. |
![]() Kliknij na obrazek, aby go powiększyć. |
TransXTransX is a flexible planning and navigation tool for interplanetary transfers and orbital operations. I've temporarly taken over the legacy OSS project to implement exciting new features and fix some timeless bugs. The new features include:
The solution finder has been implemented as an abstract algorithm, ready for reuse in other projects. For the solution finder to work fast, many original bottlenecks had to be removed. The bottlenecks were discovered during the process of profiling the code. Requires Orbiter to run. |
![]() Click on the image to see the solver in action.
|
HUD Drawer SDKBiblioteka Orbitera, umożliwiająca rysowanie na HUDzie każdej klasie, która imlementuje prosty interfejs dostarczany przez bibliotekę. Rejestracja i derejestracja w wewnętrznym systemie rysowania na HUDzie jest wykonywana automatycznie poprzez wykorzystanie unikalnych cech C++ - konstruktora i destruktora interfejsu. System rysowania używa hack'u zwanego Virtual Table Hijacking, lecz implementacja ta jest w pełni zenkapsulowana. Do uruchomienia wymagany jest Orbiter. |
![]() |
ModuleMessaging SDKA library for Orbiter, which offers inter-module communication capabilities. Requires Orbiter to run. |
![]() Click on the image to enlarge it. |
MDDClone-SDLPort SDL sagi gier Mercenary (jednej z pierwszych gier 3D). Port SDL oznacza, że ten sam kod może być kompilowany na wszystkich platformach wspierających SDL (dotychczas powstały porty na Windows, Mac OS X, GNU/Linux i FreeBSD). Projekt bazowany jest na kodzie MDDClone, lecz zawiera moje własne udoskonalenia, z których najważniejszym jest wersja OpenGL gry. Z powodów historycznych oraz kompatybilnościowych, zachowana jest wersja renderująca grafikę software'owo, za pomocą kompilacji warunkowej.
|
![]() Kliknij na obrazek, aby go powiększyć. |
Killers Behind YouPlatformowa gra 2D napisana w języku C++, z wykorzystaniem bibliotek SDL i OpenGL. Gra wyróżnia się kreskówkową grafiką, dynamiczną i płynną kamerą oraz realistyczną (w granicach rozsądku) fizyką. Wspólnie z grafikiem, Pawłem Zięcikiem, połączyliśmy najlepsze pomysły, znane nam z innych gier platformowych oraz nasze własne w jedną grę. Gra działa na systemach Windows i Linux.
|
![]() Kliknij na obrazek, aby go powiększyć. |
Killers Behind You level editorEdytor poziomów dla Killers Behind You, napisany w języku C++, z wykorzystaniem biblioteki wxWidgets. Edytor ten importuje i eskportuje dane poziomów w formacie XML, które są następnie używane w samej grze Killers Behind You. |
![]() Kliknij na obrazek, aby go powiększyć. |
Testowe programy bazodanoweZestaw programów bazodanowych, pisanych w celu przećwiczenia pisania programów komercyjnych. Zakres stworzonych programów obejmuje programy konsolowe klient-serwer oraz okienkowe w WinAPI i w wieloplatformowej bibliotece wxWidgets. Użyte silniki baz danych: MySQL oraz SQLite. Projekt rozwijany wspólnie z Szymonem Cichym dzięki systemowi kontroli wersji Subversion. Kliknij na obrazek, aby przejść do galerii projektu, w której przedstawiam jedynie moje własne programy. |
![]() Kliknij na obrazek, aby przejść do galerii. |
Baza danych biura nieruchomościProgram, który pozwala na wprowadzanie do bazy danych oczekiwań klientów, dotyczących kupna przez nich nieruchomości, a następnie, w wygodnej wyszukiwarce, pozwala na wyszukiwanie tych klientów poprzez wprowadzenie informacji o konkretnej ofercie sprzedaży. Typowe wyszukiwanie może być przeprowadzone poprzez wyszukiwanie wpisów, które cechują się wybranym typem, miejscem, parametrami, oraz które posiadają konkretną cechę, lub nie posiadają cech, które nie odpowiadają danemu klientowi. |
![]() Kliknij na obrazek, aby go powiększyć. |
Energy MFD mk2Energy MFD mk2 jest narzędziem, które próbkuje twoją energię kinetyczną i potencjalną (KE i PE) oraz ich sumę - energię mechaniczną (ME). Zapisane dane są wyświetlane na wykresach, dając ci dobry podgląd stanu twoich energii. MFD ten jest głównie narzędziem edukacyjnym, które pozwala na przeprowadzenie ciekawych eksperymentów fizycznych, opisanych w dokumentacji. Kod w C++ i binaria dla Windows. |
![]() Kliknij na obrazek, aby go powiększyć. |
Orbitrader MFDMultiplayerowy moduł handlowy Orbiter'a, w trakcie rozwoju. Pozwala na handel towarem pomiędzy bazami i stacjami kosmicznymi w Układzie Słonecznym, za wirtualne pieniądze. Wszystkie transakcje i zdarzenia są przechowywane na serwerze Orbitrader'a, rozwijanym przez Pawła "She'da'Lier" Stiasnego, gdzie transakcje są przeliczane ponownie, oraz skąd pobierane jest ostatnie zapisane zdarzenie, tak że modół może odtworzyć stan symulacji po ponownym uruchomieniu. Projekt używa bibliotek libxml2 do grupowania danych, libcurl do transferu tych danych, oraz pthread aby zapewnić nieblokujący symulacji charakter przesyłu danych. |
![]() |
Sceneria orbitalnaModul ten tworzy asteroidy na orbicie. Asteroidy te posiadaja losowo wygenerowane prędkości oraz rotacje. Do uruchomienia wymagany jest Orbiter. |
![]() Kliknij na obrazek, aby go powiększyć. |
Kalkulator wejścia bezpośredniegoAplikacja ta służy jako wizualizacja mojego algorytmu bezpośredniego wejścia na orbitę, zastosowanego w Launch MFD. Trajektoria statku będąca wynikiem obliczeń jest wyświetlana jako piksele na części graficznej programu, natomiast parametry lotu w wymiarze czasu wyświetlane są w prawej części programu. Algorytm używa logiki rozmytej (libFuzzyEngine++) aby przyspieszyć obliczenia numeryczne i, w tej postaci, jest tematem mojej pracy magisterskiej. Dokładny opis programu znajduje się w dokumentacji Launch MFD. |
![]() Kliknij na obrazek, aby go powiększyć. |
libFuzzyEngine++Mój port C++ silnika logiki rozmytej Fuzzy Engine for Java pana prof. Edward'a Sazonov'a. Portowanie silnika z Javy na C++ wymagało odpowiednich przemyśleń nt. sposobów ominięcia zależności od garbage collector'a, typowej w programowaniu w Javie i C#. Sama biblioteka używa przyjaznego dla programisty interfejsu, w którym definiujemy funkcje przynależności i reguły lingwistyczne. Używałem tego portu w Launch MFD w algorytmie wejścia bezpośredniego i w autopilocie rozmytym.
|
![]() Kliknij na obrazek, aby go powiększyć. Obrazki koncepcyjne © prof. Edvard Sazonov. |
Port Windowsowy Brain PartyPomogłem Paul'owi Hudson'owi z magazynu Linux Format w stworzeniu portu Windowsowego jego gry logicznej - Brain Party. Przeniesienie gry wymagało dokonania nie tak oczywistych zmian w kodzie, oraz oczywiście przygotowania samego pliku wykonywalnego za pomocą MinGW i MSYS. |
![]() Kliknij na obrazek, aby go powiększyć. |