UNREAL ENGINE 4 JAKO NARZĘDZIE DO TWORZENIA GIER

Podobne dokumenty
Unreal Engine w 24 godziny : nauka tworzenia gier / Aram Cookson, Ryan DowlingSoka, Clinton Crumpler. Gliwice, cop Spis treści.

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Instrukcja instalacji oprogramowania dla środowiska Windows

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Praca w środowisku Visual Studio 2008, Visual C

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

APLIKACJA SHAREPOINT

Projektowanie gier komputerowych. dr inż. Mariusz Szwoch

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Referat Pracy Dyplomowej

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

REFERAT O PRACY DYPLOMOWEJ

Programowanie gier komputerowych. Tomasz Martyn. Wykład 10. Różności: Cinamatics, Aktorzy kinematyczni, Prefabs, Archetypes

Programowanie Systemów Czasu Rzeczywistego

Dla klientów biznesowych Microsoft przygotował dwie wersje systemu Windows Vista, w zależności od wielkości i skali działalności organizacji:

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Wprowadzenie do QT OpenGL

GUI - projektowanie interfejsów

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Tomasz Grześ. Systemy zarządzania treścią, cz. II

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Zaawansowane aplikacje internetowe - laboratorium

Misja #1 Poznajemy Prophio.

Informatyka I : Tworzenie projektu

1. Od czego zacząć? - Instalacja środowiska pracy

Wykorzystanie programu nlite- instalacja nienadzorowana

SYSTEMY ZARZĄDZANIA TREŚCIĄ WORDPRESS

Jedno zdjęcie z wielu panorama w praktyce

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Laboratorium 1 - Programowanie proceduralne i obiektowe

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

16) Wprowadzenie do raportowania Rave

Problemy programowania gier. mgr Mateusz Rynk

Koło zainteresowań Teleinformatyk XXI wieku

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Instrukcja instalacji aplikacji Generator Wniosków Aplikacyjnych Edytor.

Symfonia Mała Księgowość

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

4. Podstawowa konfiguracja

Unity 3D - pierwsze skrypty

profili Twój aktualny profil i kliknij na przycisk Kopiuj, po czym wpisz nazwę dla nowego profilu (będzie ona widoczna przy uruchamianiu systemu).

1 TEMAT LEKCJI: 2 CELE LEKCJI: 3 METODY NAUCZANIA. Scenariusz lekcji. 2.1 Wiadomości: 2.2 Umiejętności: Scenariusz lekcji

Instrukcja instalacji aplikacji Generator Wniosków Aplikacyjnych Edytor.

Instrukcja użytkownika Platforma transakcyjna mforex Trader dla systemu Linux

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH

programowanie w oparciu o platformę netbeans w praktyce

Praca w sieci z serwerem

Spis treści MONITOR PRACY... 4

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

GRAFIKA CZASU RZECZYWISTEGO Wstęp do programowania grafiki czasu rzeczywistego.

Konspekt pracy inżynierskiej

Programowanie obiektowe

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Aplikacje w środowisku VBA. Visual Basic for Aplications

Laboratorium - Udostępnianie folderu, tworzenie grupy domowej i mapowanie dysku sieciowego w Windows 7

Instrukcja instalacji aplikacji Generator Wniosków Aplikacyjnych Edytor.

dziennik Instrukcja obsługi

weblsp Wybór przeglądarki i jej ustawienia Instrukcja ADH-Soft sp. z o.o., ul. 17 Stycznia 74, Warszawa

podstawowa obsługa panelu administracyjnego

5.4. Efekty specjalne

Sage Symfonia Start Mała Księgowość Zakładanie nowej firmy

Zmiana logo. Dziękujemy za wybór naszych rozwiązań. apjoo od Apláuz. Wspólnie przebrniemy przez proces konfiguracji strony www i wstawiania treści.

1.Wstęp. 2.Generowanie systemu w EDK

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

MagicInfo Express instrukcja obsługi

Instrukcja instalacji PS Bonus Pack do IBM SPSS Statistics 20 w systemie operacyjnym Windows

FAQ Systemu EKOS. 1. Jakie są wymagania techniczne dla stanowiska wprowadzania ocen?

Załącznik 1 instrukcje instalacji

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Wykład 5: Klasy cz. 3

Pytanie: Odpowiedź: Pytanie: Odpowiedź: . Pytanie: Odpowiedź: Pytanie: element multimedialny lub interaktywny Odpowiedź: Pytanie:

Podręcznik użytkownika Obieg dokumentów

Załącznik KARTA PRZEDMIOTU. KARTA PRZEDMIOTU Wydział Automatyki, Elektroniki i Informatyki, Rok akademicki: 2009/2010

Backend Administratora

Środowiska i platformy programistyczne

D O K U M E N T A C J A

Spis treści. Rozdział 1. Wprowadzenie, czyli kilka słów o komputerze / 11

Programowanie aplikacji na urządzenia mobilne

Memeo Instant Backup Podręcznik Szybkiego Startu

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Makropolecenia w PowerPoint Spis treści

ViLab- program służący do prowadzenia obliczeń charakterystyki energetycznej i sporządzania świadectw charakterystyki energetycznej

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

NIEZAWODNE ROZWIĄZANIA SYSTEMÓW AUTOMATYKI. asix. Aktualizacja pakietu asix 4 do wersji 5 lub 6. Pomoc techniczna

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Transkrypt:

, s. 35 43 Michał MAJ Wyższa Szkoła Ekonomii i Innowacji w Lublinie UNREAL ENGINE 4 JAKO NARZĘDZIE DO TWORZENIA GIER UNREAL ENGINE 4 AS A PRACTICAL TOOL FOR THE DEVELOPMENT GAMES Streszczenie W dobie coraz większej popularyzacji wirtualnej rozgrywki, twórcy gier komputerowych udostępniają autorskie silniki w formie open source. Dwa najczęściej stosowane darmowe silniki to Unity stworzony przez Unity Technologies oraz Unreal Engine 4 wydany przez Epic Games. Oba znajdują zastosowanie podczas tworzenia gier AAA oraz jako narzędzie do rozwijania umiejętności początkujących programistów. Unity opiera się na programowaniu w języku C#. Natomiast Unreal Engine, który zostanie opisany w niniejszym artykule, korzysta z możliwości jakie daje C++. Summary Video games developers, due to the still growing popularity of the video games are eager to share their game engines as open-sources. The two most common used and free of them are Unity, developed by Unity Technologies, and Unreal Engine 4 by Epic Games. Both of them are frequently used during the development of AAA games and also as a practicing tool for the beginning programmers. Unity is based on C# language, while Unreal Engine, which will be elaborated in the article, is coded in C++. S ł o w a k l u c z o w e : język C++, Unreal Engine, Unity Technologies K e y w o r d s : język C++, Unreal Engine, Unity Technologies

36 Zeszyty Naukowe WSEI seria: TRANSPORT I INFORMATYKA, 6(1/2016) Historia Pierwsza wersja silnika Unreal Engine została wydana w 1998 roku, a z jego możliwości korzystała gra Unreal. Ze względu na napisany w C++ kod silnika możliwe było pisanie gier na różne platformy. Było to przełomowe, ponieważ wówczas większość produkcji powstawała jedynie na komputery osobiste. Poza wspominanym wcześniej C++ silnik Unreal Engine został napisany w Assamblerze. Korzystał również z UnrealScript prostego języka wysokiego poziomu, służącego do wspierania UE przy tworzeniu gameplay u. Wraz z premierą Unreal Engine 4 został on zastąpiony przez Visual Scripting. Integralnymi częściami silnika są mechanizmy odpowiedzialne za renderowanie, system wykrywania kolizji, systemy AI, systemy widoczności, zarządzanie siecią i systemy plików. W ciągu 17 lat, wraz z kolejnymi wersjami, Unreal Engine zyskiwał coraz większe możliwości. Początkowo korzystał z zaawansowanej software owej rasteryzacji oraz dawał wsparcie dla akceleratorów grafiki firmy 3dfx dzięki zastosowaniu Glide API. Kolejne aktualizacje przyniosły wsparcie dla OpenGL i Direct3D. W wersji silnika o numerze 2 dodano edytor UnrealEd. Wsparcie zyskały również procesory 64-bitowe. Wraz z dużą łatką, nazwaną roboczo UE 2.5, umożliwiono deweloperom tworzenie gier na konsolę Xbox oraz PlayStation 2. Dodatkowo wsparcie zyskał EAX 3.0. Nadejście Unreal Engine 3 umożliwiło tworzenie gier na Xbox 360 i PlayStation 3. Dodano nowe funkcje: HDRR, per-pixel lightning, dynamiczne cienie. Kolejne aktualizacje przyniosły zmiany w oświetleniu (oświetlenie globalne) oraz poprawiły fizykę świata gry. UE3 doczekał się dużego dodatku w postaci Unreal Development Kit, dzięki któremu możliwe stało się tworzenie gier na platformy ios i Android. Wydany w 17 sierpnia 2015 roku Unreal Engie 4 rozwinął wszystkie wcześniejsze ulepszenia silnika. Obecna wersja silnika umożliwia tworzenie gier pod system Windows oraz na konsole Xbox One z wykorzystaniem DirectX w wersji 11 i 12. Ponadto, dzięki obsłudze OpenGL mogą powstawać produkcje pod Linuksa, OS X, Androida (jest również możliwość skorzystania z technologii Vulkan). Z kolei wsparcie dla GNM pozwala tworzyć gry na PlayStation 4. Konfiguracja środowiska Unreal Engine 4 do poprawnego działania wymaga systemu operacyjnego Windows od wersji Windows 7, Ubuntu z wersją Kernela 2.6.32 lub Mac OS X 10.10.5. Wszystkie systemu muszą być w wersji 64-bitowej. W niniejszym artykule zostanie przedstawiona konfiguracja jedynie dla systemu operacyjnego Windows. Minimalne wymagania sprzętowe dla UE4 to przynajmniej dwurdzeniowy procesor o częstotliwości co najmniej 2,5 GHz, 8 GB ramu oraz karta graficzna kompatybilna z DirectX 11. Natomiast do poprawnego działania środowiska pro-

37 gramistycznego wymagany jest Microsoft Visual Studio 2015 od wersji podstawowej Community. Zarówno Unreal Engine jaki i Visual Studio powinny posiadać najnowsze aktualizacje. Najnowsza wersja silnika gry posiada numer 4.14.3, natomiast Visual Studio 2015 Update 3 jest aktualną wersją. Rys. 1 Aktualna wersja UE4 Rys. 2 Aktualna wersja Visual Studio Źródło: Własne Podstawy obsługi i programowania w UE4 Pierwszym etapem jest stworzenie projektu zawierającego jedynie podstawowy kod, wybranie lokalizacji w której ma zostać zapisany projekt, ustalenie docelowej platformy, jakości grafiki oraz nazwy projektu (rysunek 3).

38 Zeszyty Naukowe WSEI seria: TRANSPORT I INFORMATYKA, 6(1/2016) Rys. 3 Pierwszy projekt Docelowo gra będzie oparta na szablonie First Person, zostanie stworzona na komputer osobisty/konsolę z opcjami graficznymi ustawionymi na maksimum oraz podstawową zawartością. Po uruchomieniu projektu programista otrzymuje, poprzez Visual Studio, dostęp do zarządzania elementami projektu i przeglądania kodu (Solution Explorer). Rys. 4 Solution Explorer

39 Znajduje się tam wygenerowany przez silnik gry podstawowy kod, na przykład pozwalający postaci widocznej na ekranie poruszać się, jak w przypadku MyProjectCharacter.cpp. Drugim oknem, który otwiera się po uruchomieniu projektu jest edytor Unreala. Rys. 5 Wygląd Edytora W oknie edytora, po wybraniu opcji Play, możliwe jest uruchomienie podstawowego, wygenerowanego poziomu. Umożliwia on poruszanie się postacią po niewielkim obszarze otoczonym ścianami, z rozmieszczonymi obiektami w kształcie sześcianów, możliwe jest też używanie broni upuszczenie jej, zmiana broni, strzelanie pociskami etc. Chcąc zaprogramować kolejne elementy musimy skorzystać z Source Panel. Z jego poziomu mamy dostęp do dwóch katalogów: Content oraz C++ Classes. Drugi z nich daje możliwość dodawania nowych klas. Klasy opisują i określają kolejne elementy rozgrywki. Programując najczęściej będziemy korzystać z klasy Actor, ponieważ jest ona odpowiedzialna za wszelkiego rodzaju przedmioty jakie pojawiają się w grze, przełączniki do aktywacji oświetlenia etc. Nową klasę można dodać z poziomu katalogu projektu, znajduje się on w katologu C++ Classes. Przykładem takiej klasy, może być klasa Podnies() stworzona na potrzeby niniejszego artykułu. Klasa korzysta z szablonu Actor i odpowiada za podnoszenie przedmiotów z podłoża przez postać. W Visual Studio w katalogu z projektem znajdują się dwa nowe pliki. Pierwszy z nich Podnies.cpp zawiera wygenerowany kod, między innymi funkcje BeginPlay() i Tick(), oraz konstruktor stworzonej klasy. Drugi jest plikiem nagłówkowym Podnies.h. Definiuje funkcje

40 Zeszyty Naukowe WSEI seria: TRANSPORT I INFORMATYKA, 6(1/2016) i zmienne, które używana są w klasie. Pierwszą zmienną zadeklarowaną w piku nagłówkowym jest zmienna typu Static Mesh (UStaticMeshComponent* MojaSiatka); oznacza element grafiki 3D składającej się z dwóch lub więcej wielokątów połączonych ze sobą krawędziami. Zmienną następnie zainicjalizowano w konstruktorze MojaSiatka = CreateAbstractDefaultSubobject <UStaticMeshComponent>(TEXT( MojaSiatka ));. Aby mieć możliwość edytowania MojaSiatka na każdym etapie obsługi silnika gry (na przykład podczas korzystania z BluePrints) należy w pliku nagłówkowym dodać przed deklaracją zmiennej następujący kod: UPROPERTY(EditAnywhere). Przygotowany w ten sposób obiekt 3D jest dostępny z poziomu edytora i możliwe jest jego przeciągnięcie i upuszczenie na obszar roboczy (Rysunek 6). Dzięki temu, że został zaprogramowany a nie dodany z poziomu predefiniowanych obiektów graficznych, istnieje możliwość manipulacji nim poprzez kod. Po przeciągnięciu jest dostępny jako element graficzny, ale jeszcze bez nadanego wyglądu. Istnieje możliwość dodania wyglądu z dostępnej w ramach Unreal Engine 4 biblioteki elementów graficznych (Rysunek 7), w menu Details w zakładce komponentów dostępna jest opcja Static Mesh w niej dostępne są poszczególne modele. Rys. 6 Zaprogramowany obiekt 3D

41 Rys. 7 Menu dodawania grafik 3D Tak, jak już wspomniano wcześniej, obiekt został zaprogramowany, dzięki temu, będzie można dodać do niego kolejne ulepszenia. Poprzez taki zabieg postać w grze będzie miała możliwość podniesienia przedmiotu. Na początku należy dodać komponenty umożliwiające zmianę zachowania i funkcjonalności. Do pliku Podnies.h dodano: USceneComponent* PodniesRoot; oraz UShapeComponent* PodniesBox;. Dodano funkcję, dzięki której w grze przedmiot zostanie podniesiony przez gracza: void OnPlayerEnterPodniesBox();. Następnie należy nadać odpowiednie argumenty odpowiedzialne za interakcję z dodanym elementem. Kolejnym krokiem jest stworzenie definicji OnPlayerEnterPodniesBox() w pliku Podnies.cpp. Trzeba również zainicjalizować zmienne PodniesRoot oraz PodniesBox.

42 PodniesRoot = CreateAbstractDefaultSubobject<USceneComponent>(TEXT ( PodniesRoot )); RootComponent = PodniesRoot; Oraz dodać zmienną MojaSiatka do komponentu: MojaSiatka->AttachToComponent(PodniesRoot, FAttachmentTransformRules::SnapToTargetNotIncludingSc ale); Ostatnim elementem będzie zakodowanie zachowania dodanego wcześniej obiektu w ten sposób, aby gracz mógł wchodzić z nim w interakcję: PodniesBox = CreateDefaultSubobject<UBoxComponent>(TEXT( PodniesB ox )); PodniesBox->SetWorldScale3D(FVector(1.0f, 1.0f, 1.0f)); PodniesBox->OnComponentBeginOverlap.AddDynamic(this, &APodnies::OnPlayerEnterPodniesBox); PodniesBox->AttachToComponent(PodniesRoot, FAttachmentTransformRules::SnapToTargetIncludingScale); Wykonując powyższe kroki, stworzony został obiekt 3D, który będzie wchodził w interakcje z graczem. Korzystając z programowania w C++ można także nadać mu inne właściwości. W funkcji wywołującej każdą klatkę void APodnies::Tick( float DeltaTime ) istnieje możliwość zaprogramowania przemieszczania się stworzonego wcześniej obiektu 3D. Przykładem może być nadanie elementowi takich właściwości, aby uniósł się z ziemi i odleciał do góry: FVector NewLocation = GetActorLocation(); NewLocation.Z += (DeltaTime *100,0f); SetActorLocation(NewLocation) ; Dalsze modyfikacje mogą na przykład dotyczyć czasu pomiędzy kolejnymi oddanymi przez gracza strzałami. Takich modyfikacji można dokonać edytując pliki Character w przypadku stworzonej aplikacji będą się one nazywały MyProject- Character.h oraz MyProjectCharacter.cpp. Dodając FTimerHandle Fire- DelayTimerHandle;, bool bcanfire; oraz void ResetFire(); sprawdzamy czy gracz ma możliwość oddania strzału, tworzymy zmienną, a następnie resetujemy strzał ustawiając odpowiednie warunki i czas po jaki to nastąpi. Powyższy kod znajdzie się w sekcji Protected: w pliku nagłówkowym. Natomiast w pliku MyProjectCHaracter.cpp należy zmiennej bcanfire i nadać wartość logiczną true. Następnie wstawiając:

43 GetWorld()->GetTimerManager().SetTimer(FireDelayTimerHandle, this, &AMyProjectCharacter::ResetFire, 3.0f, false); Ustawiono opóźnienie wystrzału kolejnego pocisku o 3 sekundy. Powyższe przykłady ukazują, że zaprogramowanie własnych elementów w Unreal Engine 4 daje praktycznie nieskończone możliwości modyfikacji i ulepszania gry. Zakończenie Unreal Engine oraz C++ dają nam niemal całkowitą kontrolę nad tworzoną produkcją. W łatwy sposób pozawala tworzyć tytułu na różne platformy. Jest to potężne narzędzie dzięki, któremu można zarówno stworzyć Indie jaki i tytuł AAA. Bibliografia [1] Lee J., Unreal Engine. Nauka pisania gier dla kreatywnych, Gliwice, Helion, 2016. [2] Unreal Engine, https://docs.unrealengine.com/latest/int/. [3] Wikipedia, wikipedia.org.