Co to jest silnik gry OpenGL®?
Silnik gry Open Graphics Library® (OpenGL®) to biblioteka programowa lub inna kolekcja oprogramowania, która ma na celu ułatwienie tworzenia gier wideo, zapewniając w pełni zaimplementowaną platformę, na której można zbudować niestandardową aplikację. Podstawą dowolnego silnika gry OpenGL® jest interfejs między logiką programowania wyższego poziomu a bibliotekami OpenGL®, które z kolei uzyskują dostęp do sprzętu graficznego niskiego poziomu. Niektóre silniki koncentrują się przede wszystkim na łatwym dostępie do specjalnych funkcji graficznych i algorytmów poprzez włączenie zoptymalizowanych funkcji do efektów takich jak rozmycie, lekkie mapy lub niestandardowe shadery. Częściej silnik gier OpenGL® dodaje różne poziomy funkcjonalności poprzez biblioteki wyższego poziomu, języki skryptowe, a nawet niestandardowe środowiska programistyczne. Niektóre funkcje różnych silników gier OpenGL® obejmują procedury wprowadzania danych przez użytkownika, renderowanie cieni, strukturę graficznego interfejsu użytkownika (GUI), obsługę sieci, fizykę i zaawansowane mechanizmy synchronizacji dla płynnych animacji.
Podczas tworzenia gier korzystających z OpenGL®, bez względu na to, czy są one dwuwymiarowe (2D) czy trójwymiarowe (3D), należy napisać sporo kodu programistycznego, aby zintegrować głównie statyczne biblioteki kodów OpenGL® w dynamicznym środowisku gry, w którym obiekty zmieniają się i przenoszą, a użytkownicy mogą wchodzić w interakcje ze światem wirtualnym. Podstawowym celem silnika gry OpenGL® jest wyeliminowanie potrzeby przepisywania tego typu kodu z podstawowymi kodami, a zamiast tego dostarczenie spójnej i ustrukturyzowanej struktury do zbudowania gry. OpenGL® zawiera tylko funkcje wyświetlania lub renderowania grafiki na urządzeniu, więc cała logika gry musi być owinięta wokół tego rdzenia, w tym opracować sposób integracji obiektów, które poruszają się w obrębie sceny lub które można dodawać lub usuwać ze sceny. Struktura wykorzystująca OpenGL® do dynamicznych obiektów graficznych jest ogólnie znana jako wykres scen i jest podstawą wielu implementacji silnika gry OpenGL®.
Innym powodem, dla którego programiści mogą korzystać z silnika gier OpenGL®, jest wyeliminowanie konieczności integracji kilku różnych elementów gry w jednym frameworku, co może zająć dużo czasu. Wkład użytkownika z klawiatury, elementy GUI, takie jak okno do wyboru opcji tak lub nie, a nawet optymalizacje dla niektórych popularnych kart graficznych mogą być dołączone do silnika gry OpenGL®, dzięki czemu programiści nie muszą sortować specyfikacji sprzętu do pisania sam kod. Jako kompromis, silniki o tak złożonych możliwościach są na ogół bardzo drogie lub posiadają bardzo restrykcyjne licencje do użytku komercyjnego, chociaż istnieją pewne silniki gier typu open source.
Termin „silnik gry OpenGL®” może także odnosić się do ukończonej gry komputerowej, w której usunięto większość lub wszystkie niestandardowe pliki danych, pozostawiając jedynie skompilowany kod programowania. Pozwala to użytkownikowi tworzyć niestandardowe grafiki, mapy i czasami zdarzenia skryptowe ładowane przez silnik gry. Rozgrywka zwykle nie jest w dużym stopniu modyfikowalna w tego rodzaju silniku gry, a zamiast tego służy jako platforma dla użytkowników do tworzenia własnych poziomów i treści, w przeciwieństwie do wolnostojącej oryginalnej gry.