Programowanie gier

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Programowanie gier – specyficzna dziedzina pracy programistów. Łączy inżynierię oprogramowania, grafikę i multimedia, sztuczną inteligencję, fizykę, matematykę, optymalizację, algorytmikę i wiele innych dziedzin w jednym wspólnym celu. Wymaga współpracy z wieloma specjalistami z innych dziedzin, między innymi grafikami, muzykami, autorami tekstów.

Wirtualny system plików (ang. Virtual File System lub Virtual Filesystem Switch, VFS) – abstrakcyjna powłoka leżąca ponad rzeczywistym systemem plików, której zadaniem jest umożliwienie programom użytkownika korzystania z niego w jednakowy sposób, niezależnie od tego jaki system plików jest rzeczywiście wykorzystywany. VFS dostarcza jednolity interfejs wspólny dla wszystkich systemów plików obsługiwanych przez jądro systemu operacyjnego.Renderowanie (od ang. rendering) – przedstawienie informacji zawartych w dokumencie elektronicznym w formie najbardziej właściwej dla danego środowiska (np. wizualnie, w tym na ekranie i w druku, czy dźwiękowo). Mechanizm odpowiedzialny w programie komputerowym za renderowanie nazywa się mechanizmem renderującym (ang. rendering engine, czasem silnik renderujący) lub rendererem (z ang.).

Powstało wiele bibliotek, które wspomagają proces programowania gier, jedne z nich są przeznaczone dla początkujących programistów, jak na przykład Allegro czy SDL, inne przeznaczone są dla bardziej zaawansowanych (OpenGL). Istnieją biblioteki poświęcone tylko jednemu zagadnieniu, np. grafice (OpenGL) czy dźwiękowi (OpenAL, FMOD, BASS), inne natomiast są bardzo rozbudowane i zapewniają kompleksowe mechanizmy umożliwiające programiście skupienie się na samym pisaniu gier zamiast zmuszać go do spędzania czasu na rozwiązywaniu problemów technicznych (DirectX).

Diablo II – kontynuacja gry typu RPG-hack and slash Diablo, wyprodukowana przez Blizzard North i wydana przez Blizzard Entertainment 29 czerwca 2000 roku. Polskim dystrybutorem jest CD Projekt. W 2012 roku została uznana za jedną z najlepszych gier, jakie kiedykolwiek stworzono.Programowanie komputerów to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych (mikrokontrolery). Kod źródłowy jest napisany w języku programowania, z użyciem określonych reguł, może on być modyfikacją istniejącego programu lub czymś zupełnie nowym. Programowanie wymaga dużej wiedzy i doświadczenia w wielu różnych dziedzinach, jak projektowanie aplikacji, algorytmika, struktury danych, znajomość języków programowania i narzędzi programistycznych, wiedza nt. kompilatorów, czy sposób działania podzespołów komputera. W inżynierii oprogramowania, programowanie (implementacja) jest tylko jednym z etapów powstawania programu.

Grafika[ | edytuj kod]

W bardziej rozbudowanych grach komputerowych za przetwarzanie grafiki odpowiada tzw. silnik graficzny. Można go podzielić na dwa podstawowe rodzaje: silnik 2D i silnik 3D. W niektórych przypadkach silnik 2D może prezentować ładniejszą grafikę niż silnik 3D, jednak wraz ze wzrostem możliwości kart graficznych w dziedzinie przetwarzania grafiki silnik 2D wychodzi z użycia. Ponadto aktualne możliwości techniczne sprawiają, że pisanie dedykowanych silników 2D wychodzi z użycia, w wielu przypadkach dużo lepszym rozwiązaniem wydaje się zaangażowanie podsystemu grafiki 3D do generowania grafiki dwuwymiarowej – osiąga się to poprzez ustawienie specjalnego trybu rzutowania zwanego ortogonalnym, oraz renderowanie na ekranie prostokątów z nałożonymi teksturami.

MP3 ((ang.) MPEG-1/MPEG-2 Audio Layer 3) – algorytm kompresji stratnej dźwięku, przetworzonego uprzednio na sygnał cyfrowy. Popularnie zwany formatem MP3 lub standardem MP3. Jest zdefiniowany przez IETF w dokumencie RFC 5219.Strzelanka pierwszoosobowa, FPS (od ang. first-person shooter) – gatunek gier komputerowych skoncentrowanych na walce z przeważającym zastosowaniem broni palnej, których akcja obserwowana jest z perspektywy pierwszej osoby. Innymi słowy, gracz doświadcza akcji oczami głównego bohatera. Widzi ręce i broń postaci. Pozostałe części ciała tylko na filmach objaśniających fabułę. Strzelanka pierwszoosobowa jako gatunek dzieli cechy wspólne z innymi strzelankami, które stanowią zarazem część gatunku gier akcji. Innego rodzaju broń niż broń palna jest możliwa, ale jej znaczenie jest zwykle drugorzędne.

Silnik 2D[ | edytuj kod]

Silnik 2D tworzy scenę w grze zazwyczaj poprzez nakładanie gotowych dwuwymiarowych obrazów w odpowiedniej kolejności. Czasem są one jeszcze modyfikowane, np. poprzez zmianę jasności, kolor-keying (maskowanie barw) albo przeźroczystości. Elementy sceny mogły zostać stworzone przez twórców poprzez wyrenderowanie obiektów trójwymiarowych.

Karta graficzna – karta rozszerzeń komputera odpowiedzialna za renderowanie grafiki i jej konwersję na sygnał zrozumiały dla wyświetlacza.Rzut izometryczny – odwzorowanie przestrzeni trójwymiarowej na płaszczyznę, będące jednym z rodzajów rzutu równoległego. Charakteryzuje się tym, że kąt pomiędzy wszystkimi rzutowanymi osiami jest ten sam, co sprawia, że skrócenie perspektywiczne każdej z osi jest takie samo.

Silnik 2D to taki, który przetwarza jedynie grafikę dwuwymiarową, jednak zazwyczaj twórcom gier zależy, by utworzona w ten sposób scena sprawiała wrażenie trójwymiarowej. Większość silników 2D wykorzystuje rzut izometryczny. Świat w ten sposób przedstawiony prezentuje się ładnie, często bardziej szczegółowo niż w przypadku grafiki 3D. Podstawową wadą tego typu wyświetlania grafiki jest brak perspektywy (obiekty, które w świecie gry mają sprawiać wrażenie bardziej oddalonych, są tej samej wielkości co obiekty bliższe).

MIDI skrót od Musical Instrument Digital Interface – system (interfejs, oprogramowanie i zestaw komend) służący do przekazywania informacji pomiędzy elektronicznymi instrumentami muzycznymi.DirectX – zestaw funkcji API wspomagających generowanie grafiki (dwu- i trójwymiarowej), dźwięku oraz innych zadań związanych zwykle z grami i innymi aplikacjami multimedialnymi.

Silniki 2D są zazwyczaj proste w tworzeniu. Głównymi problemami podczas ich tworzenia jest określenie miejsca wyświetlania poszczególnych elementów sceny oraz kolejności ich wyświetlania. Łatwo jest również z góry określić, które elementy sceny nie są widoczne, bo np. znajdują się poza ekranem. Powoduje to, że optymalizacje silników 2D są proste. Podstawową wadą jest brak możliwości swobodnego obracania kamery w grze. Dotychczas silniki 2D były bardzo popularne w grach strategicznych, jednak wraz ze wzrostem jakości grafiki 3D zaprzestaje się tworzenia gier 2D.

OpenGL (ang. Open Graphics Library) – specyfikacja uniwersalnego API do generowania grafiki. Zestaw funkcji składa się z 250 podstawowych wywołań, umożliwiających budowanie złożonych trójwymiarowych scen z podstawowych figur geometrycznych.WAV (ang. wave form audio format) – format plików dźwiękowych stworzony przez Microsoft oraz IBM. WAVE bazuje na formacie RIFF, poszerzając go o informacje o strumieniu audio, takie jak użyty kodek, częstotliwość próbkowania czy ilość kanałów. WAV podobnie jak RIFF został przewidziany dla komputerów IBM PC, toteż wszystkie zmienne zapisywane są w formacie little endian. Odpowiednikiem WAV dla komputerów Macintosh jest AIFF.

Silnik 3D[ | edytuj kod]

Silnik 3D ma na celu przygotowanie oraz wyrenderowanie sceny 3D. Grafika oparta na silniku 3D jest bardzo atrakcyjna dla gracza, jednak stworzenie dobrego silnika 3D jest niezwykle trudnym i pracochłonnym zajęciem. Sam rendering jest procesem tak skomplikowanym, że wszystkie tworzone obecnie gry wykorzystują gotowe biblioteki, jak np. DirectX czy OpenGL. Dzięki temu programista nie musi tworzyć kodu odpowiedzialnego za sam rendering oraz nie musi zagłębiać się w szczegóły działania kart graficznych.

Cezary Andrzej Pazura (ur. 13 czerwca 1962 w Tomaszowie Mazowieckim) – polski aktor filmowy, kabaretowy i telewizyjny, komik, piosenkarz, reżyser. Starszy brat Radosława Pazury, który również jest aktorem.Ogg - format kontenera strumieni danych, opracowany przez fundację Xiph.org, stworzony by wspierać inicjatywy związane z rozwojem wolnego oprogramowania do kodowania i dekodowania multimediów.

Podstawowymi elementami, z których tworzony jest świat gry, są obiekty trójwymiarowe, zazwyczaj tworzone w programach takich jak 3D Studio, oraz tekstury nakładane na te obiekty. Oprócz tego we współczesnych grach występują różne efekty, jak np. światła, odblaski, cieniowanie, cząsteczki. Efekty te wpływają na realizm grafiki oraz na prędkość tworzenia poszczególnych klatek sceny. Z upływem lat w grach komputerowych efektów jest coraz więcej, co sprawia, że utworzenie silnika 3D staje się procesem coraz bardziej pracochłonnym. Tworzenie takich efektów jak kurz, falowanie wody, refleksy świetlne, pochłania sporo pracy. Wymaga również wprowadzania coraz bardziej zaawansowanych technologii do kart graficznych, jak np. Vertex Shader i Pixel Shader.

FMOD - biblioteka programistyczna służąca do ładowania, odtwarzania dźwięków, poddawaniu ich działaniu efektów DSP, obsługa dźwięku 3D itp. Jest dostępna dla większości popularnych systemów operacyjnych i urządzeń odtwarzających muzykę:3ds Max (wcześniej 3D Studio Max) – rozbudowany program do tworzenia trójwymiarowej grafiki i animacji stworzonej przez firmę Kinetix, zakupionej następnie przez firmę Discreet, która wydała trzy kolejne wersje programu, aby zostać ostatecznie wcieloną do firmy Autodesk Inc. Pierwsza wersja ukazała się w 1990 roku pod nazwą 3D Studio dla systemu MS-DOS, obecną wersję 3ds Maxa oznaczoną rokiem 2014 (w wersji 16 według dawnego sposobu numeracji) przeznaczono dla środowiska Microsoft Windows.

Ograniczona prędkość przetwarzania grafiki sprawia, że twórcy gier poświęcają dużo czasu na optymalizację silników 3D. Jest to zagadnienie bardzo obszerne, np. jednym z najistotniejszym elementów optymalizacji jest określenie z góry, które elementy świata gry nie będą widoczne. Trudno jest określić np. czy dom, na który patrzymy, na pewno zasłania w całości dom znajdujący się dalej. W przypadku gier, w których gracz porusza się po pomieszczeniach przechodząc z pokoi do pokoi, określa się je jako odseparowane elementy. Wszelkie miejsca, przez które jeden pokój może być widziany z innego pokoju, określa się mianem portali. Dzięki temu, jeśli gracz znajduje się w którymś z pokoi, można pominąć wyświetlanie innych pokoi, chyba że w zasięgu kamery znajduje się portal. Ten sposób optymalizacji ma ogromny wpływ na szybkość działania gry. Jednym z prostszych sposobów optymalizacji, dzięki któremu można zredukować ilość wyświetlanych elementów, jest mgła.

Efekt Dopplera – zjawisko obserwowane dla fal, polegające na powstawaniu różnicy częstotliwości wysyłanej przez źródło fali oraz zarejestrowanej przez obserwatora, który porusza się względem źródła fali. Dla fal rozprzestrzeniających się w ośrodku, takich jak na przykład fale dźwiękowe, efekt zależy od prędkości obserwatora oraz źródła względem ośrodka, w którym te fale się rozchodzą. W przypadku fal propagujących się bez udziału ośrodka materialnego, jak na przykład światło w próżni (w ogólności fale elektromagnetyczne), znaczenie ma jedynie różnica prędkości źródła oraz obserwatora.Level of detail (z ang. poziom szczegółów) – pojęcie w grafice komputerowej, określające poziom skomplikowania trójwymiarowego obiektu znajdującego się w odpowiedniej odległości od punktu widzenia. Technika LOD zwiększa wydajność renderingu poprzez spadek ilości wyświetlanych punktów, zazwyczaj za pomocą vertex transformations. Zredukowana jakość modelu jest często niezauważalna z powodu małych zabiegów upiększających na ogólnym wyglądzie obiektu, gdy ten jest daleko lub szybko się porusza.

Kolejną optymalizacją jest tworzenie tekstur o różnych wielkościach i nakładanie ich w zależności od odległości od kamery. Czasem stosuje się również obiekty o różnej liczbie wielokątów w zależności od odległości od kamery (Level of detail). O ile przeskalowanie tekstur jest proste, o tyle zmniejszenie ilości wielokątów w obiekcie 3D przy zachowaniu podobnego wyglądu z nałożoną teksturą jest bardzo trudne. W silnikach 3D stosuje się jeszcze cały szereg innych optymalizacji, jak np. renderowanie niektórych elementów sceny rzadziej niż przy każdej następnej klatce itp.

Shader – krótki program komputerowy, często napisany w specjalnym języku (shader language), który w grafice trójwymiarowej opisuje właściwości pikseli oraz wierzchołków. Technologia ta zastąpiła stosowaną wcześniej jednostkę T&L.Gra komputerowa (gra wideo, ang. video game) – rodzaj oprogramowania komputerowego przeznaczonego do celów rozrywkowych bądź edukacyjnych (rozrywka interaktywna) i wymagającego od użytkownika (gracza) rozwiązywania zadań logicznych lub zręcznościowych. Gry komputerowe mogą być uruchamiane na komputerach osobistych, specjalnych automatach, konsolach do gry, telewizorach, telefonach komórkowych oraz innych mobilnych urządzeniach, nazywanych łącznie platformami sprzętowymi. Zadania stawiane przed graczem w grach komputerowych różnią się w zależności od gatunku i mogą polegać na przykład na rozwiązaniu zadania logicznego, eliminacji wirtualnych przeciwników czy też rywalizacji ze sztuczną inteligencją bądź innymi graczami (gra wieloosobowa); interaktywna rozrywka w celach zawodowych nosi nazwę sportu elektronicznego.

Ciągły wzrost wydajności kart graficznych oraz nowe jednostki i funkcje sprawiają, że silnik 3D szybko staje się przestarzały. Jednocześnie nakłady pracy podczas tworzenia nowego silnika są ogromne. Powoduje to, że większość gier korzysta z silników 3D innych producentów, zwłaszcza że są one dosyć uniwersalne i można je stosować w różnych grach (w przeciwieństwie do systemu sztucznej inteligencji).

Przemysł gier komputerowych – sektor gospodarki dotyczący produkcji, marketingu i sprzedaży gier komputerowych. Zatrudnia tysiące ludzi o różnych specjalizacjach na całym świecie.Pojęcie gra strategiczna odnosi się do bardzo szerokiej grupy gier - przede wszystkim jednak chodzi tu o jedno- bądź wielo-osobowe gry, w których wygrana zależy nie tylko od losu, ale przede wszystkim od strategii, wiedzy i planowania.

Rozwiązania nietypowe[ | edytuj kod]

Czasem stosuje się rozwiązania na pograniczu silnika 3D, próbując osiągnąć zadowalającą grafikę niskim kosztem i jednocześnie szybko działającą. Takie rozwiązania można znaleźć np. w grach GTA 2 oraz Diablo 2. W Diablo 2 umożliwiło to wykorzystanie tych samych grafik co w trybie 2D, jednak dzięki zastosowaniu renderingu możliwe było uzyskanie perspektywy. Rozwiązanie wykorzystane w grze polegało na tym, że w scenie 3D zamiast pełnych, trójwymiarowych obiektów w odpowiednich miejscach wyświetlane były dwuwymiarowe grafiki 2D zwrócone w stronę kamery. Jednak takie rozwiązanie sprawiało, że nie było możliwości obracania kamery. Gdyby była taka możliwość, całe „oszustwo” wyszłoby na jaw i gracz zauważyłby, że wszystkie obiekty w grze są tak naprawdę płaskie.

Grand Theft Auto II (GTA 2) – druga część serii Grand Theft Auto, wydana dnia 22 października 1999 roku. Producentem gry jest DMA Design. Gra została wydana na PC, PlayStation, Dreamcasta i na Game Boya Color.Silnik gry komputerowej (ang. game engine) – główna część kodu gry komputerowej dostępna wraz ze zintegrowanym środowiskiem programistycznym zaprojektowanym dla osób i zespołów tworzących gry komputerowe.


Podstrony: 1 [2] [3] [4]




Warto wiedzieć że... beta

Sztuczna inteligencja (ang. Artificial Intelligence – AI) – nauka obejmująca zagadnienia logiki rozmytej, obliczeń ewolucyjnych, sieci neuronowych, sztucznego życia i robotyki. Sztuczna inteligencja to dział informatyki, którego przedmiotem jest badanie reguł rządzących inteligentnymi zachowaniami człowieka, tworzenie modeli formalnych tych zachowań i – w rezultacie – programów komputerowych symulujących te zachowania. Można ją też zdefiniować jako dział informatyki zajmujący się rozwiązywaniem problemów, które nie są efektywnie algorytmizowalne. Termin wymyślił John McCarthy.
SDL (ang. Simple DirectMedia Layer) – biblioteka programistyczna ułatwiająca tworzenie gier oraz programów multimedialnych.
Allegro − otwarta i wieloplatformowa biblioteka do tworzenia gier 2D oraz 3D. Projekt został założony w 1996 przez Shawna Hargreavesa, który po pewnym czasie udostępnił źródła biblioteki wszystkim zainteresowanym. Początkowo biblioteka była rozpowszechniana na licencji gift-ware, jednak od wersji 5.0 jest udostępniana na licencji zlib.
Stereofonia, stereo – elektroakustyczna metoda odbierania, zapisywania, transmitowania i odtwarzania dźwięku, tak aby u słuchającego wywołać wrażenie przestrzennego rozmieszczenia jego źródeł. Zapis dźwięku odbywa się za pomocą co najmniej dwóch niezależnych mikrofonów, osobno dla kanału lewego i prawego, transmisja zaś poprzez dwa oddzielne kanały do dwóch oddzielnych głośników.
Algorytm A* – algorytm heurystyczny znajdowania najkrótszej ścieżki w grafie ważonym z dowolnego wierzchołka do wierzchołka spełniającego określony warunek zwany testem celu. Algorytm jest zupełny i optymalny, w tym sensie, że znajduje ścieżkę, jeśli tylko taka istnieje, i przy tym jest to ścieżka najkrótsza. Stosowany głównie w dziedzinie sztucznej inteligencji do rozwiązywania problemów i w grach komputerowych do imitowania inteligentnego zachowania.
Perspektywa — określenie stosowane w architekturze, malarstwie, fotografii i innych sztukach wizualnych oznaczające sposób oddania trójwymiarowych obiektów i przestrzeni na płaszczyźnie. Istnieje kilka rodzajów perspektywy: linearna (zbieżna, geometryczna), barwna (malarska), kulisowa, powietrzna, odwrócona, perspektywa krzywoliniowa (poprawna).

Reklama