Halaman

Jumat, 06 April 2018

GAME ENGINE ARCHITECTURE


GAME ENGINE ARCHITECTURE


                                    Nama              : Aldo Sudibyo, Arman Maulana, Fajar Setiawan,
                                                              I Kadek Arya Yogimiyaantara,
                                                  I Made Shabda Krisna A

Structure of a Typical Game Team

Before we delve into the structure of a typical game engine, let’s first take a brief look at the structure of a typical game development team. Game stu-dios are usually composed of five basic disciplines: engineers, artists, game designers, producers, and other management and support staff (marketing, legal, information technology/technical support, administrative, etc.). Each discipline can be divided into various subdisciplines. We’ll take a brief look at each below.

Engineers

The engineers design and implement the software that makes the game, and the tools, work. Engineers are often categorized into two basic groups: runtime programmers (who work on the engine and the game itself) and tools program-mers (who work on the off-line tools that allow the rest of the development team to work effectively). On both sides of the runtime/tools line, engineers have various specialties. Some engineers focus their careers on a single engine system, such as rendering, artificial intelligence, audio, or collision and phys-ics. Some focus on gameplay programming and scripting, while others prefer to work at the systems level and not get too involved in how the game actu-ally plays. Some engineers are generalists—jacks of all trades who can jump around and tackle whatever problems might arise during development.

Artist

As we say in the game industry, “content is king.” The artists produce all of the visual and audio content in the game, and the quality of their work can literally make or break a game. Concept artists produce sketches and paintings that provide the team with a vision of what the final game will look like. They start their work early in the concept phase of development, but usually continue to provide visual direction throughout a project’s life cycle. It is common for screen shots taken from a shipping game to bear an uncanny resemblance to the concept art.

Game Designers

The game designers’ job is to design the interactive portion of the player’s experience, typically known as gameplay. Different kinds of designers work at different levels of detail. Some (usually senior) game designers work at the macro level, determining the story arc, the overall sequence of chapters or levels, and the high-level goals and objectives of the player.

Producers

The role of producer is defined differently by different studios. In some game companies, the producer’s job is to manage the schedule and serve as a human resources manager. In other companies, producers serve in a senior game design capacity. Still other studios ask their producers to serve as liaisons be-tween the development team and the business unit of the company (finance, legal, marketing, etc).

Other Staff

The team of people who directly construct the game is typically supported by a crucial team of support staff. This includes the studio’s executive management team, the marketing department (or a team that liaises with an external marketing group), administrative staff, and the IT department, whose job is to purchase, install, and configure hardware and software for the team and to provide technical support.

What Is a Game

The general term “game” encompasses board games like chess and Monopoly, card games like poker and blackjack, casino games like roulette and slot machines, military war games, computer games, various kinds of play among children, and the list goes on. In academia we sometimes speak of “game theory,” in which multiple agents select strategies and tactics in order to maximize their gains within the framework of a well defined set of game rules. When used in the context of console or computer-based entertainment, the word “game” usually conjures images of a three dimensional virtual world featuring a humanoid, animal, or vehicle as the main character under player control.

What Is a Game Engine

The term “game engine” arose in the mid-1990s in reference to first-person shooter (FPS) games like the insanely popular Doom by id Software. Doom was architected with a reasonably well defined separation between its core software components (such as the three-dimensional graphics rendering system, the collision detection system, or the audio system) and the art assets, game worlds, and rules of play that comprised the player’s gaming experience. The value of this separation became evident as developers began licensing games and re-tooling them into new products by creating new art, world layouts, weapons, characters, vehicles, and game rules with only minimal changes to the “engine” software. This marked the birth of the “mod community” a group of individual gamers and small independent studios that built new games by modifying existing games, using free toolkits provided by the original developers.

Engine Differences Across Genres

·       First-Person Shooters (FPS)
The first-person shooter (FPS) genre is typified by games like Quake, Unreal Tournament, Half-Life, Counter-Strike, and Call of Duty. These games have historically involved relatively slow on-foot roaming of a poten-tially large but primarily corridor-based world.



 Call of Duty 2


·       Platformers and Other Third-Person Games
“Platformer” is the term applied to third-person character-based action games where jumping from platform to platform is the primary gameplay mechanic. Typical games from the 2D era include Space Panic, Donkey Kong, Pitfall!, and Super Mario Brother.



jax & dexter : the precursor legacy



Gears of War


·       Fighting Games
Fighting games are typically two-player games involving humanoid characters pummeling each other in a ring of some sort. The genre is typified by games like Soul Calibur and Tekken.



Fight Night Round 3

Tekken 3

·       Racing Games
The racing genre encompasses all games whose primary task is driving a car or other vehicle on some kind of track. The genre has many subcategories. 



Grand Turismo 5


·       Real-Time Strategy (RTS)
The modern real-time strategy (RTS) genre was arguably defined by Dune II: The Building of a Dynasty (1992). Other games in this genre include Warcraft, Command & Conquer, Age of Empires, and Starcraft. In this genre, the player deploys the battle units in his or her arsenal strategically across a large play-ing field in an attempt to overwhelm his or her opponent.



Command and Conquer 3
Age of Empires


·       Massively Multiplayer Online Games (MMOG)
The massively multiplayer online game (MMOG) genre is typified by games like Neverwinter Nights, EverQuest, World of Warcraft, and Star Wars Galaxies, to name a few. An MMOG is defined as any game that supports huge numbers of simultaneous players (from thousands to hundreds of thousands), usually all playing in one very large, persistent virtual world (i.e., a world whose internal state persists for very long periods of time, far beyond that of any one player’s gameplay session).
World of Warcraft

The Unreal Family of Engines

Epic Games Inc. burst onto the FPS scene in 1998 with its legendary game Un-real. Since then, the Unreal Engine has become a major competitor to Quake technology in the FPS space. Unreal Engine 2 (UE2) is the basis for Unreal Tournament 2004 (UT2004) and has been used for countless “mods,” university projects, and commercial games. Unreal Engine 3 (UE3) is the next evolution-ary step, boasting some of the best tools and richest engine feature sets in the industry, including a convenient and powerful graphical user interface for creating shaders and a graphical user interface for game logic programming called Kismet. Many games are being developed with UE3 lately, including of course Epic’s popular Gears of War.

Open Source Engines

Open source 3D game engines are engines built by amateur and professional game developers and provided online for free. The term “open source” typi-cally implies that source code is freely available and that a somewhat open de-velopment model is employed, meaning almost anyone can contribute code. Li-censing, if it exists at all, is often provided under the Gnu Public License (GPL) or Lesser Gnu Public License (LGPL).

Runtime Engine Architecture

A game engine generally consists of a tool suite and a runtime component. We’ll explore the architecture of the runtime piece first and then get into tools architecture in the following section.
Likee all software systems, game engines are built in layers. Normally up-per layers depend on lower layers, but not vice versa. When a lower layer depends upon a higher layer, we call this a circular dependency. Dependency cycles are to be avoided in any software system, because they lead to un-desirable coupling between systems, make the software untestable, and in-hibit code reuse. This is especially true for a large-scale system like a game engine.








Target Hardware

The target hardware layer, shown in isolation in Figure represents the computer system or console on which the game will run. Typical platforms include Microsoft Windows- and Linux-based PCs, the Apple iPhone and Macintosh, Microsoft’s Xbox and Xbox 360, Sony’s PlayStation, PlayStation 2, PlayStation Portable (PSP), and PLAYSTATION 3, and Nintendo’s DS, Game-Cube, and Wii. Most of the topics in this book are platform-agnostic, but we’ll also touch on some of the design considerations peculiar to PC or console development, where the distinctions are relevant.

Device Drivers

As depicted in Figure, device drivers are low-level software components provided by the operating system or hardware vendor. Drivers manage hard-ware resources and shield the operating system and upper engine layers from the details of communicating with the myriad variants of hardware devices available.

Operating System

On a PC, the operating system (OS) is running all the time. It orchestrates the execution of multiple programs on a single computer, one of which is your game. The OS layer is shown in Figure. Operating systems like Microsoft Windows employ a time-sliced approach to sharing the hardware with mul-tiple running programs, known as pre-emptive multitasking. This means that a PC game can never assume it has full control of the hardware it must “play nice” with other programs in the system.

Third-Party SDKs and Middleware

Most game engines leverage a number of third-party software development kits (SDKs) and middleware, as shown in Figure. The functional or class-based interface provided by an SDK is often called an application program-ming interface (API). We will look at a few examples.

Data Structures and Algorithms

Like any software system, games depend heavily on collection data structures and algorithms to manipulate them. Here are a few examples of third-party libraries which provide these kinds of services
STL. The C++ standard template library provides a wealth of code and algorithms for managing data structures, strings, and stream-based I/O.
STLport. This is a portable, optimized implementation of STL.
Boost. Boost is a powerful data structures and algorithms library, designed in the style of STL. (The online documentation for Boost is also a great place to learn a great deal about computer science!)
Loki. Loki is a powerful generic programming template library which is exceedingly good at making your brain hurt.

Graphics

Most game rendering engines are built on top of a hardware interface library, such as the following :

·       Glide is the 3D graphics SDK for the old Voodoo graphics cards. This SDK was popular prior to the era of hardware transform and lighting (hardware T&L) which began with DirectX 8
·       OpenGL is a widely used portable 3D graphics SDK
·       DirectX is Microsoft’s 3D graphics SDK and primary rival to OpenGL
·       libgcm is a low-level direct interface to the PLAYSTATION 3’s RSX graph-ics hardware, which was provided by Sony as a more efficient alternative to OpenGL
·       Edge is a powerful and highly-efficient rendering and animation engine produced by Naughty Dog and Sony for the PLAYSTATION 3 and used by a number of first and third-party game studios

Collision and Physics

Collision detection and rigid body dynamics (known simply as “physics” in the game development community) are provided by the following well-known SDKs.
·       Havok is a popular industrial-strength physics and collision engine.
·       PhysX is another popular industrial-strength physics and collision en-gine, available for free download from NVIDIA.
·       Open Dynamics Engine (ODE) is a well-known open source physics/collisionp package.

Artificial Intelligence

Kynapse. Until recently, artificial intelligence (AI) was handled in a cus-tom manner for each game. However, a company called Kynogon has produced a middleware SDK called Kynapse. This SDK provides low-level AI building blocks such as path finding, static and dynamic object avoidance, identification of vulnerabilities within a space (e.g., an open window from which an ambush could come), and a reasonably good interface between AI and animation.

Platform Independence Layer

Most game engines are required to be capable of running on more than one hardware platform. Companies like Electronic Arts and Activision/Blizzard, for example, always target their games at a wide variety of platforms, because it exposes their games to the largest possible market. Typically, the only game studios that do not target at least two different platforms per game are first-party studios, like Sony’s Naughty Dog and Insomniac studios.

By wrapping or replacing the most commonly used standard C library functions, operating system calls, and other foundational application pro-gramming interfaces (APIs), the platform independence layer ensures consis-tent behavior across all hardware platforms. This is necessary because there is a good deal of variation across platforms, even among “standardized” librar-ies like the standard C library.

Video :

https://youtu.be/Du44rW3O20o
Resource 

Diakses Pada Tanggal 04 April 2018 13:44:42

Minggu, 11 Maret 2018

Teknologi Game


Teknologi Game

1.   Perkembangan Teknologi Game

I.                   Teknologi Game Generasi Pertama (1952-1975)
Teknologi Game pertama kali diciptakan oleh A.S. Dougles tahun 1952 di University of Cambridge yaitu OXO untuk mendemonstrasikan tesisnya mengenai interaksi antara computer dan manusia setelah itu Douglas menciptakan game Tic-Tac-Toe yang diprogram pada computer EDSAC.
Pada tahun 1961 , Steve Russel membuat gane yang bernama Spacewar dimana dalam pembuatannya menggunakan computer mainframe MIT PDP-1. Komputer tersebut biasanya ia gunakan untuk pekerjaannya yang biasanya dipakai untuk perhitungan statistic.
Pada tahun 1972 untuk pertama kalinya game dibuat untuk pasar rumahan. Produsen Magnavox membuat game Magnavox Odyssey yang dihubungkan ke televisi. Pada tahun 1975 game tersebut tidak dilanjutkan produksinya dan digantikan dengan Odyssey 100 , mesin khusu game Pong yang menggunakan mikroprosesor berbasis konsol.

II.                Teknologi Game Generasi Kedua (1976-1983)
Merupakan generasi dimana konsol game 4-8 bit muncul pertama kalinya. Pada generasi ini banyak produsen game konsol bermunculan yaitu Fairchild Channel F, Magnavox Odyssey versi 2, Attari 2600, dan Attari 5200. Sehingga perkembangan dunia gamemenjadi semakin pesat. Pada generasiini banyak game yang bermunculan seperti game Arcade 3D pertama keluaran Atari yaitu Battlezone, Pac-Man keluaran Namco, Game & Watch seri video game-handheld keluaran Nintendo, dan juga APF yang mengeluarkan Imagination Machine yang merupakan add-on komputer untuk video game rumahan APF MP-100.
Pada tahun 1983 ketenaran video game menurun disebabkan kurang kreatifnya para pembuat game dan banyak yang beralih ke Personal Computer (PC) yang semakin canggih.

III.             Teknologi Game Generasi Ketiga (1983-1986)
Pada generasi ini muncul sebuah gebrakan baru dari FAMICOM/Nintendo Entertainment System (NES) yang dirilis tahun 1983. Produsen asal Jepang tersebut mampu membuat game yang menampilkan gambar dan animasi resolusi tinggi salah satunya yaitu game legendaris yang masih banyak digemari pada zaman sekarang yaitu Super Mario.

IV.            Teknologi Game Generasi Keempat (1988-1993)
Merupakan generasi dengan konsol game 16 bit. Pada tahun 1988, SEGA merilis konsol terbaru yaitu Sega Mega Drive dan pada tahun 1990, Nintendo mengeluarkan konsol SNES (Super Nintendo Entertainment System) dan terdapat juga konsol seperti NEC dan SNK.
Pada tahun 1991 SEGA mengeluarkan game yang mampu menyaingi Super Mario buatan Nintendo yaitu Sonic the Hedgehognya karena kualitas yang jauh lebih baik.

V.               Teknologi Game Generasi Kelima (1994-1999)
Pada tahun 1994 ATARI mengeluarkan konsol game yang bernama Atari Jaguar yang ingin mengalahkan popularitas SNES yang dikeluarkan oleh Nintendo dan Mega Drive yang dikeluarkan oleh SEGA.
Pada generasi ini juga muncul sebuah konsol game 32 bit yang sangat laris di pasaran yang berbasis CD yaitu Playstation (PS) yang dirilis oleh SONY. Plyastation merupakan konsol game pertama yang dikeluarkan oleh SONY oleh sebab itu sering disebut juga dengan PS1. PS1 membuat Atari Jaguar, SNES dan Mega Drive tenggelam. Nintendo akhirnya mengeluarkan Nintendo 64 supaya mampu menyaingi PS1.

VI.            Teknologi Game Generasi Keenam (2000-sekarang)
Pada generasi ini SONY masih menguasi konsol game, mulai dari PS2 , PS3 sampai PS4 teta menjadi nomor 1 di hati para pencinta game konsol. Microsoft mencoba untuk membuat persaingan dengan SONY dimana Microsoft mengeluarkan konsol game yaitu XBOX.

2.   Implementasi Komputer Grafik Dalam Game

Banyak Teknik yang digunakan dalam pembuatan game supaya game tersebut terlihat bagus dan ketika dimainkan tidak terasa membosankan. Pada creator game pasti memikirkan bagaimana tampilan game yang akan dibuatnya menjadi lebih menarik lagi. Salah satu teknik yang digunakan adalah pencahayaan. Banyak sekali teknik pencahayaan yang ada , yaitu Ambient Light, Directional Light , Positional Light, Point Light, Spotlight dan Area Light. Teknik pencahayaan sangat penting sekali , karena berperan bagaimana tampilan objek terlihat terang / gelap atau samar-samar. Setiap scene dalam game pasti memiliki pencahayaan yang berbeda-beda.
Saya akan membahas salah satu dari teknik pencahayaan yaitu Ambient Light. Ambient Light merupakan teknik pencahayaan yang akan memancarkan cahaya secara keseluruhan (cahaya lingkungan) dengan intensitas yang diterima oleh semua permukaan benda adalah sama.
Saya akan memberikan contoh dari teknik ambient light pada game mobile yaitu Street Racing 3D , game ber genre racing yang dapat di download pada Playstore.

Pada gambar diatas tampak jelas sekali bahwa cahaya memancar kesemua arah dan setiap permukaan benda yang ada didalam gambar tersebut menerima intensitas cahaya yang sama pula. Oleh sebab itu teknik ambient light sangat cocok sekali untuk diterapkan pada game yang memiliki tampilan game yang luas tanpa membedakan intensitas cahaya yang diterima oleh setiap benda

3.   Bisnis Dalam Game Komputer

Saat ini , game mengalami perkembangan yang sangat pesat. Banyak hal yang menyebabkan hal itu terjadi. Salah satunya adalah platform yang digunakan untuk bermain game , dahulu bermain game hanya bisa dilakukan menggunakan game konsol saja , tentu bagi sebagian orang hal mudah untuk diwujudkan dan bagi sebagian orang sulit untuk diwujudkan karena harga konsol game yang tidak murah.
Namun pada saat ini bermain game tidak hanya dilakukan melalu konsol saja , melainkan bisa di Smartphone dan juga Personal Computer yang harganya bisa lebih murah dari konsol game seperti Playstation , Xbox dan Nintendo Switch. Melihat hal ini , banyak produsen game bermunculan yang ingin meramaikan perkembangan dunia game.
Tidak salah kalo bisnis ini bisa dibilang bisnis sangat menjanjikan , karena game bisa dimainkan oleh siapapun , kapanpun dan tidak harus menggunakan konsol. Game bisa dimainkan di smartphone yang mudah dibawa kemana saja.
Berikut ini merupakan produsen game dengan produk gamenya yang terkenal. Rockstargames dengan Grand Theft Auto V (GTA V) , Ubisoft Montreal dengan Far Cry Primal , Konami dengan Pro Evolution Soccer (PES) , Electronic Arts dengan banyak game nya yang terkenal dan masih banyak lagi produsen game yang terkenal , baik itu untuk PC , konsol game maupun smartphone.

4.   Software Pembuatan Game Komputer

Game yang sering kita mainkan saat ini membutuhkan proses yang rumit dalam pembuatannya , maka dibutuhkan sebuaf software yang memudahkan para creator dalam membuat game. Banyak software yang digunakan untuk membuat game , namun saya akan membahas salah satu dari software pembuatan game yang terkenal yaitu Unity 3D.
Unity adalah cross-platform game engine yang dikembangkan oleh Unity Technologies, yang mengutamakan untuk mengembangkan tiga-dimensi dan dua-dimensi dalam video game dan simulasi untuk komputer, konsol, dan perangkat mobile. Pertama kali diumumkan hanya untuk OS X di Apple's Worldwide Developers Conference pada tahun 2005, dan telah diperluas untuk 27 platform. Enam versi utama Unity telah dirilis.
Unity adalah game engine serbaguna yang mendukung grafis 2D dan 3D, fungsi yg menggunakan drag dan drop dan scripting menggunakan C#. Dua bahasa pemrograman lain didukung: Boo, yang dirilis dari Unity 5 dan JavaScript yang memulai proses pada 2017 Agustus setelah rilis Unity pada Januari 2017.
Target engine yang mendukung grafik API: Direct3D pada Windows dan Xbox One; OpenGL pada Linux, macOS dan Windows; OpenGL ES pada Android dan iOS; WebGL di web; dan API pada konsol game. Selain itu, Unity mendukung tingkat rendah API Metal pada iOS dan macOS dan Vulkan pada Android, Linux, dan Windows, serta Direct3D 12 pada Windows dan Xbox One.
Dalam game 2D, Unity memungkinkan impor sprite dan renderer canggih 2D. Untuk game 3D, Unity memungkinkan spesifikasi tekstur kompresi, mipmaps, dan resolusi pengaturan untuk setiap platform bahwa game engine mendukung dan menyediakan dukungan untuk pemetaan bump, pemetaan refleksi, pemetaan paralaks , screen space ambient occlusion (SSAO), bayang-bayang dinamis menggunakan maps bayangan, render tekstur dan efek pasca pemrosesan layar penuh. Unity juga menawarkan jasa untuk pengembang, yakni adalah: Unity Ads, Unity Analytics, Unity Certification, Unity Cloud Build, Unity Everyplay, Unity IAP, Unity Multiplayer, Unity Performance Reporting dan Unity Collaborate.
Unity mendukung penciptaan kustom vertex, fragmen (atau pixel), tesselation, menghitung shader dan Unity permukaan shaders menggunakan Cg, sebuah versi modifikasi dari Microsoft High-Level Shading Language.
Selain Unity 3D terdapat software lainnya untuk membuat game , yaitu :
I.                     OGRE (Object Oriented Graphics Rendering Engine)
II.                   Game Maker
III.                 RPG Maker

5.   Design Skenario , Script dan Storyboard pada Game

Design skenario merupakan tampilan dan tata letak button dan gambar pada game. Semakin bagus design suatu game maka semakin banyak pula orang yang tertarik dengan game yang kita buat, karena design lah yang pertama kali orang lihat.
Script merupakan pembuatan suatu game yang menggunakan suatu bahasa pemrograman , contohnya adalah java. Ketika creator game membuat game dan melakukan pengkodean (coding) maka ia sedang scripting
Storyboard adalah suatu sketsa gambar yang disusun secara berurutan sesuai naskah cerita. Dengan storyboard maka pembuat cerita dapat menyampaikan ide cerita secara lebih mudah kepada orang lain, karena dengan storyboard maka pembuat cerita dapat membuat seseorang membayangkan suatu cerita mengikuti gambar-gambar yang sudah tersaji, sehingga dapat menghasilkan persepsi yang sama dengan ide cerita yang di buat. Storyboard juga dapat di artikan sebagai naskah yang di sajikan dalam bentuk sketsa gambar yang berurutan, berguna untuk memudahkan pembuatan alur cerita maupun pengambilan gambar.

Penerapannya dalam aplikasi game impian saya : PETAK BENTENG
Design Skenario:

Script:
Menggunakan java
Storyboard:
              Pada game ini user akan memilih tampilan menu awal terlebih dahulu. Ada menu 5v5 , 10v10 , Cara Bermain dan juga Exit. Baik memilih menu 5v5 maupun 10v10 , ketika dipilih akan muncul tingkat kesulitannya , dari Mudah, Sedang dan Susah.
Terdapat beberapa aturan permainan:
1.      Setiap group memiliki tiang yang berfungsi sebagai markas mereka
2.      Setiap  pemain yang paling baru memegang tiang nya sendiri (biasa disebut dengan muda), maka ia lah yang menang ketika beradu (menyentuhkan tangannya ke badan musuh) dengan pemain lain yang memegang tiangnya lebih lama (biasa disebut dengan tua).
3.      Jika pemain yang lebih muda mengenai pemain yang lebih tua , maka pemain yang lebih tua kalah dan harus berada di tiang musuh.
4.      Jika ingin membebaskan teman yang berada di tiang musuh , maka harus menyentuh teman kita tersebut tanpa harus terkena pemain musuh yang lebih muda dari kita.
5.      Jika ingin menang , maka suatu group harus mengenai tiang musuh tanpa harus terkena oleh pemain musuh yang lebih muda dari kita.
6.      Setiap group harus berusaha untuk mengenai setiap musuhnya , lebih banyak musuh yang kena , maka akan lebih cepat juga group tersebut untuk menang. Dan memiliki kesempatan yang besar untuk menyentuh tiang mereka
Cara bermain :
1.      User cukup menggunakan tombol W,A,S,D,Shift,Spasi,Ctrl dan Klik kiri pada mouse
2.      W untuk berjalan kedepan
3.      A untuk berjalan ke kiri
4.      D untuk berjalan ke kanan
5.      S untuk berjalan mundur
6.      W/A/S/D + Shift maka akan berlari
7.      Ctrl untuk menunduk
8.      Spasi untuk loncar
9.      Klik kiri pada mouse untuk mengulurkan tangan kita sebagai reaksi untuk menyentuh musuh / teman / tiang musuh.




Referensi: