You are on page 1of 3

OpenLobby: A Non-Dedicated Game Server

Firstname A. Lastname1, Firstname B. Lastname2, and Firstname C. Lastname1


1
First affiliation, City and postcode, Country
2
Second affiliation, City and postcode, Country
Email: first.author@hostname1.org; second.author@hostname2.org; third.author@hostname3.org

Abstract— Online Multiplayer is one of the most desirable Our objective is to decrease the required skill and
feature in modern games. However, developing online resource to develop an online multiplayer games. While
multiplayer feature may require cost and skill which is not we are concern with the usability of our solution, our
common in small and early game developers. Our objective is to current observation does not focus on performance issue.
develop a server that openly available to be used by other
developers. Any games that follows the provided application
progrmaming interface may use the server for matchmaking and B. Related Works
basic user's data management. For testing purpose, we
developed two different games that uses the server as their
In his work, Cowlishaw [11] shows how decimal
multiplayer server. representation using binary floating point may cause a
correctness issue. One of the example given is the
Index Terms—Numerical Programming, Precision Error, Java problem of calculating a 5% sales tax on a $0.70
Programming, BigDecimal, Performance Computing,
telephone call. Using manual calculation, we can easily
figure out that total cost would be 0.735. However, a
double precision binary floating point calculation would
I. INTRODUCTION
give us 0.7349999999999999 (which could be rounded to
A. Background $0.74).
Modern video games industry is flooded with games Researches on binary floating point mostly fall into
with online multiplayer capability. It is one for the two categories: correctness and performance. Erle et. al.
commonly required feature by user since it is capable in offers a hardware specification that may increase the
lengthening the lifespan of a game. performance of floating point based calculation while
However, developing an online multiplayer feature in a maintaining its precision [2]. The paper proposed a
game is not a trivia task. It requires a specific skills and hardware that support decimal floating point calculation
tools to develop the feature. While large game developers natively which eliminate the need to convert the decimal
already have enough resources to develop this feature, into binary format. Beauchamp et. al. proposed three
(network programmer, game/database server), small architectural modifications on field programmable gate
game developers might not be able to have these arrays (FPGA) that may increase the efficiency of
privileges. Common game engines such as Unity and floating point operations.
Unreal has also provide a higher level API to decrease the Researches focusing on precision have also been done
complexity in developing a multiplayer feature. However, previously. Joldes et. al. introduces arithmetic algorithms
this feature still requires networking programming skill using floating points expansion that offers a better
and developed specifically to a certain game engine. precision. The work offers improvement in performing
In this paper, we propose a solution that able to help normalization, division, and square root [7]. Similar work
small developers to add an online multiplayer feature in has also been done by Muller et. al. that focus their
their product. Our solution consists of 3 part: game research in multiplication operation algorithm using
server, API documentation, and game samples. The game floating-point expansions [6]. Ruibo-Gonzalez et. al.
server provides a process to find a set of compatible offers Precimonious [4], a program that able to assists
players based on some certain criteria (usually called a developers to tune the precision of floating points
matchmaking) and basic user's data management. The program. It allows developers to define the desired
API documentation provides a thorough information precision and set floating point variables to satisfy the
regarding how to communicate properly to our server. constraints. It also allows developers to increase the
We also provide two game as samples that use our server performance of the program by allowing the use of less
that can be used as a reference for other game developers. precise floating point variables. Later on, Rubio-
Gonzalez proposed a method to automate precision
analysis of a floating point operand [5] called Blame
Manuscript received Month Day, 2016; revised Month Day, 2016.
This work was supported by the Foundation Name under Grant No. Analysis. This method, combined with his previous work
XXXXXX. Precimonious, allows programmer to have an automated
Corresponding author email: author@hostname.org. precision data and control on an applications code. Hull
doi:10.12720/jcm.v.n.p-p et al. proposed an architecture design for coprocessor that
able to perform variable precision floating point of players. Some games use additional player's properties
arithmetic. Ho et. al. created a similar program that such as region, latency, and preference.
allows developer to perform floating point precision To provide the different requirements of games, we
tuning efficiently [7]. A research from NASA by Goodloe have to develop a flexible concept to store player's
et. al. focus on verifying the correctness of numerical properties. We can not define one player's property as a
program [10]. Chiang et. al. developed a heuristic search single column since each game may require different
algorithm called Binary Guided Random Testing [11]. properties. We came up with a simple solution to store
The program evaluates floating point routines and find various properties; a text based values delimited with a
the input that maximize the error. By using the evaluation specific unusable character. Hence, we only need a single
results, programmer can allocate resources to a certain
column to store all properties defined by the game.
routine that requires more precision. MAKE MORE
The figure below shows the overall architecture of our
RELATED WORK, LIBS OF JAVA FOR SCIENTIFIC
database design.
FIGURE DATABASE
II. SERVER ARCHITECTURE
The database consists of 4 table: game, player, queue,
The overall architecture of our server is as follow and session. Table game contains information regarding
registered games. The properties field contains a
The server contains 3 important items; web server, delimited text that lists the properties of the game and its
database, and daemon. The web server is responsible to default value. Similar to properties, the
receive user's request and send the appropriate response. matchmaking_algo is also contains a delimited text that
The communication is done via HTTP request. The defines the algorithm to find a suitable player based on
database is responsible in keeping the data. The format of their properties. Figure XX below shows the structure of
the data kept in the database will be defined in the later the text in properties and matchmaking_algo fields.
section. To perform matchmaking, we create a daemon FIGURE PROPERTIES MATCHMAKING
program and scheduled the program to perform a The definition of the of these values will be defined in
matchmaking process every 10 seconds. The details of the later section when we discuss the matchmaking
the matchmaking algorithm will be detailed on the later process.
section. Table queue holds all players that queueing during the
matchmaking process. Table session is responsible in
A. Web Server keeping sessions' data. Due to our architecture that use
P2P multiplayer, each session has a player that act as a
The web server is responsible in receiving and
host.
processing request from client and sending the
appropriate response to client. Currently, our server is
able to process basic functions of a game server. C. Matchmaking Process
The first basic function of the server is to register a The matchmaking process is responsible in grouping
new player who would like to join a multiplayer game idle player in the queue. The main challenge in our
session. When a client is requesting to join a multiplayer matchmaking system is each game has its own properties
game, it send a request to join to the server. The server is to define an ideal group of players. The goal of the
then kept the basic information related to the request such algorithm is to assign players to different groups in a way
as request arrival time and client's IP address. that maximizes the player in each group and satisfies the
The second basic function is to inform the client property values based on the game definition.
whether the client has been joined to a multiplayer As previously stated, the properties are kept as text
session. Our system follows a pull-notification method to value. Additionally, we also kept the time the player start
perform this function; clients send a request to get the queueing and overall score. The overall design of the
update from the server. matchmaking process is shown in diagram below.
The third function is to update the player's information
related to the game such as score, win/lose, rank, etc. The matchmaking process starts by selecting player
This information is sent after a multiplayer session has with the longest waiting time. The system will then pick
completed. another set of players (based on the number required by
the game to start a session) prioritizing players with
B. Database Architecture longer waiting time.
In designing the database server, we have to consider
the various requirement of games that may connect to our III. IMPLEMENTATION
server. Different games have different requirements and
criteria to create an ideal session. Most games, if not all, In this section, we will go through the implementation
rely on player's rank and experience to define an ideal set of the architecture previously described.
A. Web Server REFERENCES
The web server is built using PHP. It uses HTTP (Periodical style)
protocol to communicate with the clients. [1] S. Chen, B. Mulgrew, and P. M. Grant, “A clustering
technique for digital communications channel equalization
using radial basis function networks,” IEEE Trans. on
B. Communication Protocol
Neural Networks, vol. 4, pp. 570-578, July 1993.
The current web servers allow 5 functions as listed [2] J. U. Duncombe, “Infrared navigation—Part I: An
below: assessment of feasibility,” IEEE Trans. Electron Devices,
1. enqueue: this function is called when a user wants vol. ED-11, pp. 34-39, Jan. 1959.
to be listed as queueing in a game queue. [3] C. Y. Lin, M. Wu, J. A. Bloom, I. J. Cox, and M. Miller,
2. get_status: this function is called by user to check “Rotation, scale, and translation resilient public
its queue status. The server is then return the user's watermarking for images,” IEEE Trans. Image Process.,
status whether its waiting, found, or canceled. vol. 10, no. 5, pp. 767-782, May 2001.
3. get_session_info: this function is called by user to (Book style)
find information regarding the session it is in. The [4] A. Cichocki and R. Unbehaven, Neural Networks for
information sent contains the host IP address, Optimization and Signal Processing, 1st ed. Chichester,
U.K.: Wiley, 1993, ch. 2, pp. 45-47.
session_id.
[5] W.-K. Chen, Linear Networks and Systems, Belmont, CA:
4. session_started: this function is called by the host
Wadsworth, 1993, pp. 123-135.
right after a session is started.
[6] H. Poor, An Introduction to Signal Detection and
5. update_result: this function is called by the host Estimation; New York: Springer-Verlag, 1985, ch. 4.
after a session is over. Its function is to update the (Book style with paper title and editor)
session data which is used to update the user's [7] R. A. Scholtz, “The Spread Spectrum Concept,” in
data. Multiple Access, N. Abramson, Ed. Piscataway, NJ: IEEE
6. remove_queue: this function is called when a user Press, 1993, ch. 3, pp. 121-123.
wants to be removed from a queue. [8] G. O. Young, “Synthetic structure of industrial plastics,” in
Plastics, 2nd ed. vol. 3, J. Peters, Ed. New York: McGraw-
Hill, 1964, pp. 15-64.
(Published Conference Proceedings style)
IV. TESTING [9] S. P. Bingulac, “On the compatibility of adaptive
controllers,” in Proc. 4th Annu. Allerton Conf. Circuits and
To test whether the server can successfully work, we Systems Theory, New York, 1994, pp. 8-16.
built two different games. The first game is a question- [10] W. D. Doyle, “Magnetization reversal in films with
and-answer math games that allows two players to biaxial anisotropy,” in Proc. 1987 INTERMAG Conf.,
compete with each other. The priority of the 1987, pp. 2.2-1-2.2-6.
matchmaking process for this game is to find 2 players (Presented Conference Paper style)
with similar experience and skill. These variables can be [11] G. W. Juette and L. E. Zeffanella, “Radio noise currents n
determined by using the amount of game has been played short sections on bundle conductors,” presented at the
and the win/lose ratio during those games. Since the IEEE Summer Power Meeting, Dallas, TX, June 22-27,
gameplay does not require a real time performance, we 1990.
do not use delay and player's location for consideration. (Thesis or Dissertation style)
The screenshot of the game [12] J. Williams, “Narrow-band analyzer,” Ph.D. dissertation,
The second game is a top down shooter that allows Dept. Elect. Eng., Harvard Univ., Cambridge, MA, 1993.
multiple players to play in a session. Players will be split [13] N. Kawasaki, “Parametric study of thermal and chemical
into two groups and each group will try to beat the other nonequilibrium nozzle flow,” M.S. thesis, Dept. Electron.
group by getting more points. Unlike the previous one, Eng., Osaka Univ., Osaka, Japan, 1993.
this game requires a more complex matchmaking system (Patent style)
since it allows eight players to play in a multiplayer [14] J. P. Wilkinson, “Nonlinear resonant circuit devices,”
session. The matchmaking requirement is similar to the U.S. Patent 3 624 12, July 16, 1990.
previous game. (Standards style)
[15] Letter Symbols for Quantities, ANSI Standard Y10.5-
APPENDIX A APPENDIX TITLE 1968.
Appendixes, if needed, is numbered by A, B, C... Use (Handbook style)
[16] Transmission Systems for Communications, 3rd ed.,
two spaces before APPENDIX TITLE.
Western Electric Co., Winston-Salem, NC, 1985, pp. 44-
60.
ACKNOWLEDGMENT [17] Motorola Semiconductor Data Manual, Motorola
The authors wish to thank A, B, C. This work was Semiconductor Products Inc., Phoenix, AZ, 1989.
supported in part by a grant from XYZ. (Journal Online Sources style)
[18] R. J. Vidmar. (August 1992). On the use of atmospheric
plasmas as electromagnetic reflectors. IEEE Trans.

You might also like