IntelliPaper
Abstract
This research develops augmented reality games by applying multiplayer features. Some previous research on augmented reality games has suggestions for features similar to multiplayer. And the weaknesses of some previous studies also exist in augmented reality which still requires technology based tracking markers. The markers used must match the Markers available in the database game. For this reason, an augmented reality game needs to be made by adding multiplayer features and also applying markerless technology. This study succeeded in making a Multiplayer Action Game by utilizing Augmented Reality technology without using the luther silk method. Based on the tests that have been carried out, alpha test results that contain functional tests are obtained and the results of beta testing with a questionnaire obtained 74% value which is declared "Good" then this game is feasible to use and support.
Explore Digital Article Text
I. INTRODUCTION
Action Games Are a type of game with the main features in the form of many actions where players must have fast reaction skills to avoid enemies or avoid obstacles . Players usually control characters in the form of protagonists. Action games based on shootings, for example, give players a lot of weapons that can be improved, while other games based on a fantasy world will provide swords and magical powers.
When the game starts, he must still pay attention to the health and life of his character. Characters can usually receive several attacks, but if they receive too many attacks the character will lose his life. If the character's life is lost, the game ends.
Client server network is a computer network architecture where the client requests data and a server that provides data responses to the request. The application of this network can support game development with the Real-time Multiplayer feature. Multiplayer is a type of game that can be played by more than one player in the same game arena and at the same time. In multiplayer games it allows each player to interact with other players, work together on the same team, become a rival, to be able to provide a form of social communication that is hardly found in games with a single-player orientation .
Augmented Reality (AR) is an environment that inserts 3D virtual objects into real environments [3]. There are several types of Augmented Reality, one of which is Markerless Based Tracking. In implementation because markers are not prepared beforehand, while algorithms running in AR applications must recognize patterns, colors or other features that can be displayed on the camera frame. After the pattern is read, virtual objects can appear on the smartphone screen [4]. Although using a virtual environment created by computer graphics, the main arena of Augmented Reality is the real environment. Therefore the projected object can be seen from various angles in the real environment.
After reading some of the literature on augmented reality, similarities were found in several literatures, where there were similar suggestions, namely on the suggestion to add multiplayer features to augmented reality games. And also this game will use Markerless Based Tracking instead of the Based Tracking Marker, so there is no need to use markers that must match the database in the game.
The limitations in this study are as follows:
The game is only for Android devices.
Type of game is an action game where each player controls a character.
The player has a life on the character, if the life runs out then the game is finished.
Game features are players against players.
The maximum number of players in the game is 2 players.
The markers used must have at least a pattern or color.
To play the game a Google Play account is required.
The objectives of this study are as follows:
Design and build an Action Multiplayer game by applying Augmented Reality technology.
Applying Markerless Based Tracking technology to Augmented Reality.
II. METHODOLOGY
The research method used in this study uses the following research:

2.1 Data Collecting
Data collection aims to collect data and materials that support and are used in the research and manufacture of this game. In the process of collecting data using two stages. The first step is to collect related literature data. Collect literature using literature studies and observations. Then the next data collection is the collection of material in the form of multimedia elements that will be used in making this game.
2.2 Analysis of Requirements
Analysis of requirements in making this application includes all the data needed for making an application, both input, and output needs.
2.3 System Development
The method used is Luther Sutopo's version, where there are six stages to making a multimedia product, namely: concept, design, collecting, assembly, testing and distribution materials. Sutopo adopted Luther's methodology with the scheme must begin with the concept and end with the distribution phase, while the collecting material can be done in parallel with the assembly stage .
Concept, is the determination of the initial goal, the user's target, the type of product, the limitation of the function and the final target. In this concept stage the determination of goals and final targets influences the nuances of multimedia as a reflection of organizational identity.
Design, is the stage of making specifications about product architecture, interface, design and supporting products. Specifications are made as detailed and detailed as possible because they will affect the next stage.
Material Collecting, where the material or material needed for this game is collected such as text, images, audio and animation.
Assembly. is the stage of installation of all elements of the game based on the design using the storyboard and navigation structure that has been made before.
Testing, this stage is done after the manufacturing stage by running the game then seeing if there are errors or deficiencies in this game.
Distribution, In this last stage, all stages have been completed in a structured manner according to the development method studied so the game is ready to be published through the Google Play Store.
2.4 Evaluation
The stages are carried out after all the process of making the application has been successfully carried out including the drawing of conclusions and the idea of development.
III. RESULT AND DISCUSSION
3.1 CONCEPT
The stages that will be developed and will be built based on existing ideas, to determine the title, objectives, users, types, basic rules and boundaries.
| Titel | : Tawuran Onlen – One on One AR |
| Theme | : Action |
| Audience | : General |
| Duration | : Unlimited |
| Animation | : 3D Character (*.FBX) |
| Image | : Picture, Button, Icon (*.JPG dan *.PNG) |
| User | : 2 User |
| Interaktivity | : Button, Virtual Joystick |
| Description Game | : This game features battles between 2 players. Each player uses each character, where each character has a life and weapon. If the weapon is about the player's character then the life will be reduced, and if the life runs out then the game is finished. |
3.2 Design
This stage uses storyboards to describe events and storylines from the construction of products that are built. As well as the navigation structure as a navigation or direction of information, making it easy for users to use.
| Scene 1 | Display Login |
| Scene 2 | Display Main Menu |
| Scene 3 | Display Lobby |
| Scene 4 | Display Game |

Use case diagrams illustrate the sequence of activities carried out by actors, opponents and systems.

3.3 Material Collecting
1. 3D Animation Character
Using 3D animated characters available on the internet to be used as the main characters of each player and also as enemies in the game.

2 Interaktivity Button
Collecting several images as an Interaktivity button between the player and the system, each button has different functions such as a button to exit, a button to enter the game and an action button. The following picture for the button that has been collected.

3. Program Code Creation
The making of program code is made using the C # programming language, the process of writing program code is done on visual studio in this application also added code from the library of vuforia packages and asset programs from unity asset store.
3.4 Assembly
At this stage, the first thing to do in making this Multiplayer Action Game is to create a game scene. In its implementation, making this game uses Unity using C # language.




3.5 Testing
1. Algorithm Connection
This algorithm is used to enter a Google Play account. If the player has entered, the game will start creating a lobby.
{"code_caption":[],"code_content":[{"type":"text","content":"void Authenticate()\n{\n PlayGamesClientConfiguration config = new\n PlayGamesClientConfiguration.Builder()\n.Build();\n PlayGamesPlatform.InitializeInstance(config);\n PlayGamesPlatform.DebugLogEnabled = true;\n PlayGamesPlatform.Activate();\n PlayGamesPlatform.Instance.Authenticate((bool success) =>\n {\n if (success)\n {\n Debug.Log("Berhasil");\n CreateQuickGame();\n}\n else\n {\n Debug.Log("Tidak Berhasil");\n}\n});\n}"}],"code_language":"cs"}
2. Algorithm Create Lobby
After the connection is successful, the player will enter the lobby. the maximum enemy is 1 and if the number has been reached then the game will start. The player will be placed at position (0,0,0). and the position data will be sent to another player.
{"code_caption":[],"code_content":[{"type":"text","content":"void CreateQuickGame()\n{\n const int MinOpponents = 1, MaxOpponents = 1;\n const int GameVariant = 0;\n PlayGamesPlatform.Instance.RealTime.CreateQuickGame(MinOpponents, MaxOpponents, GameVariant, this);\n}\n\nprivate bool isRoomSetup = false;\npublic void OnRoomSetupProgress(float percent)\n{\n if (percent >= 20f)\n {\n isRoomSetup = true;\n Debug.Log("Mencari Permainan");\n PlayGamesPlatform.Instance.RealTime.ShowWaitingRoomU I();\n}\n}\n\nprivate bool connect = false;\npublic void OnRoomConnected(bool success)\n{\n if (success)\n {"}],"code_language":"cpp"} {"code_caption":[],"code_content":[{"type":"text","content":"connect = true;\nplayer = Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity);\nplayer.transform.parent = imagetarget.transform;\nplayer.GetChild(2).gameObject.SetActive(false);\nplayer.GetChild(7).gameObject.SetActive(false);\nplayer.name =\nPlayGamesPlatform.Instance.RealTime.GetSelf().ParticipantId;\nbool reliability = true;\nstring data = "Instantiate:0:1:2";\nbyte[] bytedata =\nSystem.Text.ASCIIEncoding.Default.GetBytes(data);\nPlayGamesPlatform.Instance.RealTime.SendMessageToAll (reliability, bytedata);\n}\nelse\n{\nconnect = false;\nCreateQuickGame();\n}\n}"}],"code_language":"cs"}
3. Algorithm Send Data Position and Rotation
Send position and data rotation to other players. And if the player dies, the lost data will be sent to another player.
{"code_caption":[],"code_content":[{"type":"text","content":"string data = "Position:" + player.position.x + ":" + player.position.y + ":" + player.position.z;\nbyte[] bytedata =\n System.Text.ASCIIEncoding.Default.GetBytes(data);\nPlayGamesPlatform.Instance.RealTime.SendMessageToAll (reliability, bytedata);\nstring datarot = "Rotation:" + player eulerAngles.x + ":" + player eulerAngles.y + ":" +\n player eulerAngles.z;\nbyte[] bytedatarot =\n System.Text.ASCIIEncoding.Default.GetBytes(datarot);\nPlayGamesPlatform.Instance.RealTime.SendMessageToAll (reliability, bytedatarot);\n}\nif (!player.gameObject.activeSelf)\n{\nmenang.SetActive(false);\nkalah.SetActive(true);\nstring lost = "Lost";\nbyte[] bytelost =\n System.Text.ASCIIEncoding.Default.GetBytes(lost);\nPlayGamesPlatform.Instance.RealTime.SendMessageToAll (true, bytelost);\n}"}],"code_language":"cs"}
4. Algorithm Receive Data
receive data position, rotation and lost from other players. If data lost is received, the winning panel will appear.
A. DISTRIBUTION
At this stage the game has been completed in the form of.apk, the game then distributed through the Google Play Store.
{"code_caption":[],"code_content":[{"type":"text","content":"public void OnRealTimeMessageReceived(bool\n isReliable, string senderId, byte[] data)\n{\n if\n (!PlayGamesPlatform.Instance.RealTime.GetSelf().ParticipantId.Equals(senderId))\n {\n string rawdata =\n System.Text.ASCIIEncoding.Default.GetString(data);\n string[] sliced = rawdata.Split(new string[] {":"}, System.StringSplitOptions.RemoveEmptyEntries);\n if (sliced[0].Contains("Instantiate"))\n {\n Transform naming = Instantiate(prefab, new Vector3(0, 0, 0), Quaternion.identity);\n naming.transform.parent = imagetarget.transform;\n naming.name = senderId;\n naming -.GetChild(0).gameObject.SetActive(false);\n naming -.GetChild(1).gameObject.SetActive(false);\n naming -.GetChild(2).gameObject.SetActive(true);\n naming -.GetChild(7).gameObject.SetActive(true);\n naming -.GetChild(8).gameObject.SetActive(false);\n}\n else if (sliced[0].Contains("Position"))\n {\n Transform target =\n GameObject.Find(senderId).transform;\n if (target == null)\n {\n return;\n}\n Vector3 newpos = new Vector3\n (\n System.Convert.ToSingle(sliced[1]),\n System.Convert.ToSingle(sliced[2]),\n System.Convert.ToSingle(sliced[3])\n);\n target.position = newpos;\n GameObject.Find(senderId).GetComponent().P lay("Walk");\n}\n else if (sliced[0].Contains("Rotation"))\n {\n Transform target =\n GameObject.Find(senderId).transform;\n if (target == null)\n {\n return;\n}\n target.transform.eulerAngles = new Vector3(\n System.Convert.ToSingle(sliced[1]),\n System.Convert.ToSingle(sliced[2]),\n System.Convert.ToSingle(sliced[3])\n);\n}"}],"code_language":"txt"}

IV. CONCLUSIONS
Based on the results of the research that has been done, conclusions can be taken as follows:
A Multiplayer Action Game has been built using Augmented Reality Technology in response to previous research suggestions.
Successfully implemented Markerless Based Tracking on Multiplayer Augmented Reality Games.
Based on the research that has been done, suggestions can be given as follows:
Improved multiplayer system so the game can run more smoothly.
Add restrictions on the number of players in the game.
Improved markerless implementation so that operation during tracking for markers is more stable.
Can be played on IOS devices.
Conflict of Interest
The authors declare no conflict of interest.
Ethical Approval
Not applicable
Data Availability
The datasets used in this study are openly available at [repository link] and the source code is available on GitHub at [GitHub link].
Funding
This work did not receive any external funding.