Development of a 3D mahjong video game in Godot Engine
Mäkelä, Henri (2021)
Mäkelä, Henri
2021
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021053112630
https://urn.fi/URN:NBN:fi:amk-2021053112630
Tiivistelmä
Yhä useampi peli näinä päivinä kehitetään kolmannen osapuolen pelimoottorien avulla, koska niiden käyttö edesauttaa yritysten resurssienhallintaa. Oikean pelimoottorin valinta projektia kohden voi kuitenkin osoittautua hankalaksi riippuen monista eri tekijöistä, kuten projektin laajuudesta ja grafiikoiden tavoitellusta laadusta. Yksi parhaillaan nousevista pelimoottoreista on yhä useamman pelikehittäjän suosima Godot Engine.
Moottoriin kohdistuvat tutkimukset sen asemasta ja kyvykkyydestä tuottaa 3D pelejä ovat kuitenkin jääneet vähemmälle, etenkin verrattuna muihin esillä oleviin moottoreihin kuten Unityyn. Näin ollen tutkimuksen tavoitteeksi valikoitui selvitys Godot Enginen 3D-pelituotannon kyvykkyydestä. Kyvykkyys määriteltiin toteuttamalla perusteellinen tapaustutkimus, jossa kehitettiin kolmiulotteinen Japanilainen riichi mahjong -peli moottoria käyttäen. Mahjong on pokeria muistuttava vuoropohjainen pöytäpeli mutta sitä monimutkaisempi sekä sopivampi 3D tapaustutkimukseen.
Pelikehityksen aikana käytetty ohjelmointikieli oli .NET Frameworkin C#. Godotin testattuihin toiminnallisuuksiin kuuluivat prosessit kuten pelimaailman luonti, käyttöliittymän implementointi, varjostimien kirjoitus ja pelin julkaisu. Pelille kehitettiin myös toimiva asiakas-palvelin -arkkitehtuurin mukainen moninpelitoiminnallisuus käyttäen hyödyksi moottorin verkkopeli ominaisuuksia. Kehitysprosessista tehtiin täysi dokumentaatio, jossa myös esitettiin ja käsiteltiin kehityksen aikana kohdattuja ongelmia.
Godot osoittautui varsin eteväksi pelimoottoriksi mahjongin kokoisten 3D-pelien kehitykseen. Toimiva prototyyppi pelistä saatiin kehitettyä ilman suurempia ongelmia. Tulokset korostivat vahvuuksia moottorin skene-systeemissä sekä moninpelin toteutuksen helppoudessa. Godotin solmu-pohjainen työnkulku vaatii kuitenkin totuttelua, kun kehitys tehdään C#-kielellä. Myöskään joitain tuloksia, kuten moottorin suorituskykyä, ei välttämättä voida soveltaa laajempiin peliprojekteihin. Godot on kuitenkin pienemmän mittakaavan peliprojekteissa hyvä vaihtoehto muille 3D moottoreille kuten Unreal Enginelle ja Unitylle. More and more games these days are developed using third-party game engines, as they help to save company resources. When it comes to choosing the right engine for the right project, the decision may be a difficult one, depending on many factors such as project scope and desired visual fidelity for the graphics. One of the currently emerging game engines is Godot Engine, the engine of choice for an increasing number of developers.
However, its status and capabilities especially in 3D development are still relatively unexplored compared to other prevalent engines like Unity. Therefore, the goal was to determine the viability of using Godot Engine for developing 3D games. In order to accomplish this, an in-depth case study was carried out by using the engine to develop a three-dimensional Japanese riichi mahjong game. Mahjong is an existing turn-based table game akin to poker, albeit more complex and suitable for a 3D case study.
The programming language used during development of the project was .NET Framework’s C#. Among Godot’s tested functionalities were processes such as game world creation, user interface implementation, shader writing, and game distribution. A multiplayer mode with a working server and client architecture was also implemented, making use of the engine’s networking features. The development process was fully documented, and problems were presented and discussed on the way.
Godot proved to be an able game engine for the purpose of developing 3D games the size of mahjong. A functional prototype of the game was developed without major problems. Highlights from the results showed strengths in the engine’s scene system and the ease of implementing multiplayer. However, its node-based workflow takes time getting used to when developing with C#, and some of the results such as engine performance might not be applicable to larger game projects. Based on the results, Godot is still a good alternative to other 3D engines such as Unreal Engine or Unity, when it comes to 3D games of smaller caliber.
Moottoriin kohdistuvat tutkimukset sen asemasta ja kyvykkyydestä tuottaa 3D pelejä ovat kuitenkin jääneet vähemmälle, etenkin verrattuna muihin esillä oleviin moottoreihin kuten Unityyn. Näin ollen tutkimuksen tavoitteeksi valikoitui selvitys Godot Enginen 3D-pelituotannon kyvykkyydestä. Kyvykkyys määriteltiin toteuttamalla perusteellinen tapaustutkimus, jossa kehitettiin kolmiulotteinen Japanilainen riichi mahjong -peli moottoria käyttäen. Mahjong on pokeria muistuttava vuoropohjainen pöytäpeli mutta sitä monimutkaisempi sekä sopivampi 3D tapaustutkimukseen.
Pelikehityksen aikana käytetty ohjelmointikieli oli .NET Frameworkin C#. Godotin testattuihin toiminnallisuuksiin kuuluivat prosessit kuten pelimaailman luonti, käyttöliittymän implementointi, varjostimien kirjoitus ja pelin julkaisu. Pelille kehitettiin myös toimiva asiakas-palvelin -arkkitehtuurin mukainen moninpelitoiminnallisuus käyttäen hyödyksi moottorin verkkopeli ominaisuuksia. Kehitysprosessista tehtiin täysi dokumentaatio, jossa myös esitettiin ja käsiteltiin kehityksen aikana kohdattuja ongelmia.
Godot osoittautui varsin eteväksi pelimoottoriksi mahjongin kokoisten 3D-pelien kehitykseen. Toimiva prototyyppi pelistä saatiin kehitettyä ilman suurempia ongelmia. Tulokset korostivat vahvuuksia moottorin skene-systeemissä sekä moninpelin toteutuksen helppoudessa. Godotin solmu-pohjainen työnkulku vaatii kuitenkin totuttelua, kun kehitys tehdään C#-kielellä. Myöskään joitain tuloksia, kuten moottorin suorituskykyä, ei välttämättä voida soveltaa laajempiin peliprojekteihin. Godot on kuitenkin pienemmän mittakaavan peliprojekteissa hyvä vaihtoehto muille 3D moottoreille kuten Unreal Enginelle ja Unitylle.
However, its status and capabilities especially in 3D development are still relatively unexplored compared to other prevalent engines like Unity. Therefore, the goal was to determine the viability of using Godot Engine for developing 3D games. In order to accomplish this, an in-depth case study was carried out by using the engine to develop a three-dimensional Japanese riichi mahjong game. Mahjong is an existing turn-based table game akin to poker, albeit more complex and suitable for a 3D case study.
The programming language used during development of the project was .NET Framework’s C#. Among Godot’s tested functionalities were processes such as game world creation, user interface implementation, shader writing, and game distribution. A multiplayer mode with a working server and client architecture was also implemented, making use of the engine’s networking features. The development process was fully documented, and problems were presented and discussed on the way.
Godot proved to be an able game engine for the purpose of developing 3D games the size of mahjong. A functional prototype of the game was developed without major problems. Highlights from the results showed strengths in the engine’s scene system and the ease of implementing multiplayer. However, its node-based workflow takes time getting used to when developing with C#, and some of the results such as engine performance might not be applicable to larger game projects. Based on the results, Godot is still a good alternative to other 3D engines such as Unreal Engine or Unity, when it comes to 3D games of smaller caliber.
Kokoelmat
Samankaltainen aineisto
Näytetään aineisto, joilla on samankaltaisia nimekkeitä, tekijöitä tai asiasanoja.
-
Game Development in Unity : Game Production, Game Mechanics and the Effects of Gaming
Dansie, Jason (Metropolia Ammattikorkeakoulu, 2013)The goal of this thesis is to examine how video games are designed and to see how differ-ent game mechanics work and how to use them in the development of a game, as well as examine what are both the positive and negative ... -
Location-based mobile games : creating a location-based game with the Unity game engine
Korhola, Samuli (2020)The subject of this thesis is location-based mobile games. Location-based mobile games are a way for mobile games to combine reality with virtual worlds and thus re-define the gaming experience. This thesis presents ... -
”WE WANT A 3D GAME” : Customer expectations for the games company when buying a serious game
Sorppanen, Mikko (Oulun seudun ammattikorkeakoulu, 2012)All digital games are not used for entertainment. Some of them can also be used for non-entertainment purposes and these games are called serious games. This thesis is carried out in co-operation with one Finnish games ...