![]() ![]() Certainly overkill where we’ll be working with numbers ranging from 1-20 but is a standard. Note my use of the term int32 is referencing a 32-bit integer value that can range from -2,147,483,648 to +2,147,483,647. Taking a look at the data in-game, it is presented as a series of text in a set format. ![]() In our case the destination environment is the Elasticsearch database that expects data in the JSON format. Where this blog is specific to analyzing these random numbers, the component of collecting data from the game client can be leveraged for future endeavors. So now the question becomes… How can we get the data from inside a MUD’s game client and make it presentable in a way that supports our goals? Before solving extracting the data out of Mudlet it’s a good step to determine where it needs to go. With this in place it’s time to piece together how we’re going to transition the data from above into the visualization below. When ran in-game the output is presented to the game administrator like so: Here’s a sample representing this function’s code: void do_random(CHAR_D *ch, char *argument, int cmd) To accomplish this we’ve set a command in-game that produces 100 rolls for each of the three functions. Do we need to evaluate other sources or methods for rolls?.Does an alternative random number generator provide better results?.Does the game’s current number generator have a balance distribution?.This article C/Randomization outlines the nature of this research well in covering that sometimes random isn’t as random as we would like or in some cases the results are too random.īy the end of this I intend to answer these three questions: While all functionally serve the same purpose they each are rooted to different origin means on creating the random output. The data in-scope is the output of three C functions from within BlackMUD: rand(1, 20), random(1, 20), and arc4random(1, 20). The tapped data will be transmitted back out to the internet to a SaaS product by Cribl and later passed downstream back into a lab environment and land into an ElasticSearch database.Įxplorer’s Map on how to Play with Random Numbers in the MUD Generating Data Our goal is to leverage the Mudlet game client as a means to tap into the data exchange between the BlackMUD Server and client. Visualizing the Data Flowīefore we dig into any of the bits and pieces that make this all possible lets take a look at the big picture. The end result is to be able to analyze just how random the current functions really are. In the more modern front we’ll be leveraging Mudlet as the game client, the cloud service LogStream Cloud as our data collection pipeline, and ElasticSearch/ Kibana as the database and analysis tools. In the old-school corner we’ve got the game itself with a C code base originating from the 90’s that is played through the Telnet protocol. To accomplish this we’ll be bridging some old school technologies with some more modern applications and services. We’ll be covering a specific game, BlackMUD, an online based Multi-User Dungeon/Dimension (MUD) and establishing the capability to analyze the outcome quality of the game’s random number generators. From the video game perspective the player puts their faith that the random element is intentional and fair. A key aspect to many games is the element of chance where the outcome, good or bad, is dependent upon a random fact outside the player’s control. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |