Tank Busters

Gra online multiplayer dla 2-4 graczy jako przeróbka gry 2D asteroids, której celem jest wyeliminowanie pozostałych graczy w szybkiej, chaotycznej rozgrywce. Gracze mogą poruszać się po niewielkiej planszy, strzelać do siebie pociskami i unikać lub niszczyć nadlatujące asteroidy. Projekt podzielony jest na klienta i serwer, które to procesy komunikują się za sobą po TCP za pomocą POSIX sockets przekazując sobie wiadomości zakodowane w BSON. Cały projekt napisany jest w C++ i korzysta z CMake jako build systemu oraz bibliotek: raylib i nlohmann/json. Jednym z ciekawszych aspektów programu, poza samą rozgrywką, jest implementacja współbieżności obsługi klientów i pokoi na serwerze. Odbywa się ona poprzez linuxowy system epoll oraz dedykowane wątki dla klientów, które komunikują się ze sobą za pomocą synchronizowanych systemem eventfd kolejek zawierających wyrażenia funkcyjne (lambdy). ...

IPC Publish Subscribe

Projekt zaliczeniowy - Programowanie Systemowe i Współbieżne. Celem projektu jest implementacja systemu przekazywania (rozgłaszania) wiadomości do wszystkich procesów, które zasubskrybowały dany typ wiadomości (zarejestrowały się na ich odbiór). Aplikacja wykorzystuje mechanizm kolejek komunikatów (Message Queues). Projekt zawiera w sobie 2 podprogramy: klienta i serwera. Każdy klient może wysyłać i otrzymywać wiadomości do/od pozostałych użytkowników systemu. W wymianie wiadomości pomiędzy klientami zawsze pośredniczy serwer. Otrzymywane wiadomości wyświetlane są na ekranie. Programy są zaimplementowane zgodnie ze specyfikacją opisaną w protokole https://github.com/NiebieskiRekin/IPC-Publish-Subscribe/blob/main/PROTOCOL.md ...

Bash Word Histogram

A simple word counter written in Bash that can read text from multiple .txt, .pdf or .ps files, and export to .csv or plaintext. Final project for Operating Systems. Repository https://github.com/NiebieskiRekin/histogram.sh

28 maja 2023 · Tomasz Pawłowski · Bash, Linux