Alex Aksenov
Zaproponuj Alex pracę nad swoim kolejnym zleceniem.
Ranking
Umiejętności i kwalifikacje
Tłumaczenia
Portfolio
-
Infrastruktura silnika gry, narzędzia D3D12 i systemy symulacji
C#Wybrane moduły źródłowe z prototypu infrastruktury niestandardowego silnika gier w C#.
Ta praca demonstruje architekturę na poziomie silnika, deterministyczny przepływ aktualizacji, narzędzia związane z renderowaniem, diagnostykę, abstrakcje sieciowe oraz kod podstawowy matematyczny używany w rozwoju gier/uruchamiania.
… #CSharp #GameEngine #D3D12 #DirectX12 #Symulacja #Sieci #Narzędzia #Architektura
Zawarte obszary:
— Pętla symulacji z ustaloną liczbą kroków z czasowaniem opartym na tickach i oddzieleniem klatek/aktualizacji;
— Stos ekranów i infrastruktura sekwencji uruchamiania do zarządzania ekranami uruchamiania i przejściami;
— Narzędzia podstawowe dla wyników/błędów do jawnego obsługiwania błędów i diagnostyki;
— Prymitywy matematyczne AABB i frustum dla logiki przestrzennej i systemów związanych z widocznością;
— Narzędzia ukierunkowane na D3D12, w tym pomocnicy kompilacji shaderów i integracja komunikatów debugowania;
— Enumeracja adapterów DXGI z logiką wyboru GPU opartą na priorytetach;
— Interfejsy podstawowe sieci oraz implementacja transportu loopback;
— Testy jednostkowe dla transportu loopback i lokalnego zachowania sieciowego.
Kod koncentruje się na czystym oddzieleniu systemów, przewidywalnym zachowaniu w czasie uruchamiania, testowalnych abstrakcjach, jawnym zarządzaniu czasem życia zasobów oraz utrzymywalnej architekturze silnika.
Nie jest to przedstawione jako ukończony komercyjny silnik, ale jako zbiór praktycznych modułów infrastruktury silnika i komponentów narzędziowych opracowanych dla większej niestandardowej bazy kodu gier/uruchamiania.
Praca jest istotna dla zadań związanych z C#, .NET, architekturą silnika gier, pętlami symulacyjnymi, narzędziami DirectX 12, narzędziami debugowania, systemami uruchamiania, prototypami sieciowymi oraz przeglądem architektury bazy kodu.
-
5079 PLN vhidkm — Wirtualny sterownik HID jądra systemu Windows
C i C++vhidkm to stos wirtualnych sterowników HID w trybie jądra Windows, napisany w C/KMDF. Projekt implementuje wirtualne urządzenie USB HID, które udostępnia wejście z klawiatury i myszy przez standardowy stos HID Windows, zamiast polegać na interfejsach API symulacji wejścia w trybie użytkownika.
Architektura jest podzielona na dwa sterowniki KMDF:
… — vusbbus.sys: sterownik wirtualnego magistrali USB, który tworzy zgodne z USB dziecko PDO na żądanie;
— vhidkm.sys: sterownik funkcji HID, który wiąże się z wirtualnym PDO, dostarcza opisy HID, obsługuje IOCTL klasy HID i przesyła raporty z klawiatury/myszy do hidclass.sys.
Stos zawiera wersjonowany protokół IOCTL METHOD_BUFFERED, oddzielne interfejsy urządzeń kontrolnych dla magistrali i sterownika funkcji HID, kontrolę dostępu tylko dla administratorów przez SDDL, walidację strukturalnych żądań, stan per-handle, wstrzykiwanie raportów HID, informację zwrotną o stanie LED, obsługę resetowania oraz logikę czyszczenia do zwalniania naciśniętych klawiszy/przycisków, gdy klient niespodziewanie kończy działanie.
Główne cechy:
#WindowsKernel #KMDF #HID #C #DriverDevelopment #WindowsDrivers
— Wirtualna klawiatura i mysz udostępnione przez stos HID Windows;
— Wstrzykiwanie surowych raportów z klawiatury i myszy;
— Pomocnicy klawiatury dla modyfikatorów, użyć HID i wejścia w stylu naciśnięcia klawisza;
— Wprowadzenie względne i absolutne z myszy;
— Ruch myszy w pikselach przy użyciu metryk ekranu per-handle;
— Informacja zwrotna LED dla NumLock, CapsLock, ScrollLock, Compose i Kana;
— Operacja oczekiwania, którą można anulować, dla zmian stanu LED;
— Automatyczne resetowanie wszystkich klawiszy i myszy przy czyszczeniu klienta;
— Obsługa wielu uchwytów z izolowanym kontekstem per-pliku;
— C SDK i opakowanie ctypes Pythona;
— Dokumentacja instalacyjna i debugowania;
— Śledzenie WPP, notatki debugowania zorientowane na WinDbg oraz struktura projektu zorientowana na Driver Verifier/PREfast/SDV.
Projekt zawiera SDK w trybie użytkownika, kod demonstracyjny, wspólne nagłówki protokołów, pliki INF, skrypty instalacyjne oraz szczegółową dokumentację obejmującą architekturę, wymagania dotyczące budowy, użytkowanie, instalację i przepływ pracy debugowania.
Przewidywane przypadki użycia obejmują automatyzację wejścia, narzędzia dostępności, testowanie wejścia na poziomie sterownika, oprogramowanie w stylu KVM, narzędzia do zdalnego sterowania oraz aplikacje testowe, które wymagają dostarczania wejścia przez normalny potok HID systemu operacyjnego.
Implementacja koncentruje się na czystych granicach jądra/użytkownika, wyraźnym wersjonowaniu ABI, defensywnej walidacji, przewidywalnym zachowaniu czyszczenia oraz utrzymywanym rozdziale między sterownikiem magistrali, sterownikiem funkcji HID, wspólnymi definicjami protokołów i SDK w trybie użytkownika.