Tuesday, April 26, 2016

Last Week at DWG

Hey guys. Last week was my last week at my internship and I must say I was really sad to leave. Even though I probably need more free time to prepare for college and just relax after all the hard work of this year, I came to enjoy the time I spent at the office, meeting and working with other extremely intelligent people everyday.

I finished my last feature for that game that was so difficult, but being out due to illness, I did not have time to make the game that I designed. However, I was really happy to hear that my work for the company proved to be very beneficial in terms of productivity and creativity. 

Challenges: I will miss going to the office in the morning. I hope that later in life I will be able to find an environment that has good people and similar good vibes.

Victories: My supervisor took us to lunch and told us that he too also enjoyed working with us. We were very helpful in that we got more done than he could've by himself. 

Thank you so much for reading! There will be one more post about how my presentation in front of the Senior Research Project Committee goes, so I will see you all then! 

Saturday, April 16, 2016

Week 9

Hey readers! I'll be heading to the last week of my internship and my supervisor has given quite the awesome gift... To make my own game! Now that I am close to finishing the last game we were supposed to program during my time here, he said that I could come up with my own game idea and program it! Also, if I come up with a good name, the name might even be used! (probably not, but a boy can dream, right?).

Being me, of course I tried to come up with overly complicated and convoluted features, at which point my supervisor brought me back to reality. So now I have thought of a couple possibilities which is what I'll be working on next week. Even though computer programming seems really boring, and this SRP might not seem like the most exciting, I really am not looking forward to it coming to an end. I will cherish the time I spent here, and the lessons I learned, and the people I met.

Challenges: Trying to come up with a game idea that is feasible for the programmers and artists is proving to be more difficult than I thought. Everything I wanted to did not have a reward that would justify all the work.

Victories: I finished the feature I was stuck on last week! Only one more left!

Thanks for reading guys, see ya next week.

Saturday, April 9, 2016

Week 8

Hello readers! We are nearing the end of this fantastic experience getting to intern at Design Works Gaming. This week we spent our time very similar to the previous week: designing and programming games.. what a surprise! However, this week I started a game that my supervisor told me would be the most difficult game I have done.

In this game, there are four features: each one doing its own specific and complicated action. One feature is pretty easy; it just replaces a set of symbols with a random one from a weighted table. There is one difficult feature that is challenging me. In this feature, a specific symbol triggers the rearrangement of the symbols in order from lowest to highest value, bonus symbols being the lowest and aces being the highest. However, the starting index of the lowest valued symbol in randomly chosen from two different starting locations.

Also, this week, I feel like I have mastered the macros in Microsoft Excel (the macros pretty much export certain text documents to be referenced in the code). In order to save time, what I would do is copy the macros from one game to another, then just change a couple of the numbers that refer to certain columns and rows.

Challenges: The new game that has the challenging four features. I'm having difficulty setting up the framework in order to carry out the features.

Victories: I finished another game this week. We are getting close to our deadline for completing these games and all is going pretty well!

Also, by the way, if you are on Facebook, you should like the page Diamond Sky Community! Help the company out.

Until next week, happy gaming!

Sunday, April 3, 2016

Okay, So It Is Difficult

Hope you all had a great weekend! This week at my internship was pretty cool because in addition to programming, we also got to make some design decisions about games. My supervisor introduced us to two ideas for a game, and he gave us full disclosure to make different mathematical and design choices. Initially I thought that having this freedom would make the job easier, but I realized that having more to choose meant having less to work with. So, in reality, this turned out to be more difficult. It has given me a bigger appreciation for all the work that these folks have to do when they design a game. At first, my narrow access to the process made it seem as if anyone could do this job. But as I continue to work week by week, I see that there is a lot of advanced math and logic involved. My way of approaching any sort of problem has really changed through the work that I am doing here.

Also, if anyone is interested, my partner Armin and I finished the game tuning project we were on. It took some time, but hard work, determination, and creativity proved to be the necessary ingredients for success. The more and more we do, the better and innovative our approaches become. I feel like this internship will really prove helpful to me in the future.

Challenges: Having to make design decisions has shown me that making a game as a programmer is not at all as easy as I initially guessed it to be. But, I will continue to work at it.

Victories: We finished the tuning project we were working on. Also, we started a couple more games.

Thank you for reading! Please ask any questions you may have.

Monday, March 28, 2016

Game Tuning

Hello guys! This week at Design Works Gaming, I was introduced to the process of tuning. This is when we adjust certain probabilities to influence another facet of the game. If you thought what I did sounded boring before (which it really isn't, it's really quite fun), this tuning would not be the kind of work that you would want to do. For this specific game we are working on, there is a variable that keeps track of what jackpots one can win. The variable increments by a amount that depends on the spin of the reels and the number of times it has spun. If this variable reaches a certain number, a specific jackpot is awarded. In order to get the distribution of awards correct along with the total payout, we have to adjust a table of numbers. One change might fix the distribution issue, but mess up the total payout. Perhaps this adjustment corrects the payout, but now it is impossible to get the highest jackpot.

As one could guess, there is a lot more statistics in this part of my job. Determining if distributions can be considered normal or if there is something anomalous occurring becomes even more important. As we continue to finish and fine tune games, I see the attention to detail that is required in a this field, and I look forward to any challenges that I can learn from in the world of programming.

Challenges: I am stuck on free game section of this game. It's funny that now as I'm getting a handle on the programming part, the tuning and math part gets hard.

Victories: I learned how to increment a jackpot outside the context of a free game, which was originally a concept I did not understand.

Until next time then! Thank you for reading.

Monday, March 14, 2016

Week 5

Hey everyone! I completed the week and everything is going well. This week was more of the same: programming games and playing facebook games. This week however, the data we were collecting for the games was of a different variety. This week, my supervisor wanted us to accumulate data on the number of free credits we could get just by initially signing in on any given day. This includes any freebies the game may provide, like daily bonuses, free lotteries, bonus wheels, etc. Now that we have the data, the higher ups will analyze it and plan the next step to take.

Challenges: The new game I am programming has line pays, scatter pays, and some sort of weird stack pays. Usually, games will have a line pay. For example, if the game has a 3x3 grid, three in a row could be a win. There are also additional patterns; these are called line wins. A scatter win would look at how many times a certain symbol appears in a row. Based on the number of times it appears, the pay changes. Then, a stack pay is a pay that awards the player for a reel containing consecutive occurrences of a symbol. I'm having a hard time formatting all my text documents and programming in order to account for all three methods of pay.

Victories: Our floor in the building is getting a lot of new renovations! Our floor finally has a restroom, which is, needless to say, very convenient. I did not really have much of a hand in this, but still it's very nice to be part of this transformation.

Thank you all for reading! Some weeks it might be a little boring (especially with this post title), haha sorry! Hopefully you learn a little something about slot machines. Until next time!

Saturday, March 5, 2016

Out of the Kitty Pool

Hey guys, another week has gone by, and I am really starting to fit in at the office. I love the work that I am doing and the people I'm surrounded by. This week was mostly the same as last week--lots of programming--with a couple twists here and there. Overall, I'm starting to become more responsible for my actions and decisions as a worker. There's still a lot of hand holding, but I am starting to branch out on my own get things done individually.

I am almost done with my second game (Yeah I know, the first game took me 3 weeks and this one only like 1 week. I'm getting better!). This second game's feature or specialty was a little more difficult to put into code, but nevertheless I am almost there. Moreover, this week I learned how to program a Gaff List, which is like a separate program that helps game testers test specific parts of the game. For instance, in the Gaff List, one could predetermine which type of game is triggered for a certain spin (type of game meaning base, free, or bonus). This helps them determine if the game is working precisely how they intended it to be working in every single small detail.

I should be quickly finishing my second game on Monday and starting my third!

We finished collecting of our initial data for the other Facebook casinos, recording data relating to hit frequency, ads, number of levels, etc. This is a pretty big step for all of us, so I am hoping that the information we collected proves fruitful.

Challenges: Remembering all the minor details when it came to programming arrays and arraylists was a little frustrating, but in the end I eventually got the hang of it. I realize how helpful AP Computer Science was for the kind of work that I am doing here.

Victories: The second game is going a lot faster and I feel like pretty soon I'll be getting the hang of this! Also, I did not need as much help this time through with settings and, more importantly, Excel.

So, all in all. I am starting to work more and more on my own, becoming increasingly responsible for my own work. I am making my way out of the kitty pool and into the deep end as I learn how to get more work done correctly without the assistance of others. I look forward to updating you next week!

Friday, February 26, 2016

First Game Complete

Hey readers! This week was pretty awesome! As I'm sure you can tell from my first post title, I completed my first game today. It was not without its difficulties, but nevertheless, it is done. I'll be talking about the new things I learned this week about programming.

Well first off I learned about progressives. Progressives are basically jackpots that increase as time goes on. Go on a Facebook casino like Double Down and there are some games that have visible progressives, which actually shows the value of the jackpot at the top of the game. In the game that I helped to program, there is a sort of jackpot/progressive. When I programmed it, I made the game have a jackpot instead of a progressive that increments. Someone more skilled will go back and do that for me later, haha.

Additionally, I was shown some cool ways of thinking as far as programming goes. For example, I was reminded of how to change the inputs of a function in order to make a program more efficient. Instead of having to make multiple variable in multiple locations, you can make a function have one more input variable, and you won't have to constantly redefine it. I'm sorry if that made no sense, but to me, it was great!

For the data that me and Armin are collecting about the already existing Facebook casinos, now we are writing a document about the social aspect of each casino. By the social aspect, I am referring to the frequency a player will be shown the wins of another player in order to promote tournament play. We are supposed to finish analyzing all the games by Thursday of next week.

Challenges: On Thursday, I accidentally deleted all the work that I did on my game, so I had to finish the game all in one day. Being sick that week didn't help either. But now that I've done one, I think I will get faster at the next ones.

Victories: I now think I understand what I am doing! Honestly, in the weeks prior, a lot of time was spent staring at the computer screen pondering "What am I even supposed to be doing right now?" Now actually know a little!

Thanks for reading! Maybe one of these days I will post some pictures of what the office looks like. For now, just imagine the stereotypical office... Perfect. That's exactly what it looks like. Talk to you all next week!

Friday, February 19, 2016

A Little More Programming

Hello readers! Week two is complete and I am really enjoying the work that I am doing. I am still getting better at excel and the nuances of exporting text documents from it, but hopefully I will get better at it as I continue. This week my onsite supervisor introduced me to some more coding and programming, which I thought was really interesting. So, for this post, I will talk about the programming aspect of my internship, the actually-really-boring-at-the-present-moment data I've collected while playing games, and some of the challenges and victories from this week.

The programming is very much what I expected it to be. We take a game and we program the pay lines, the bonus games, and the reel strips so that what the game pays matches with what the mathematical design of the game intended. We are programming using C#, which is not that different from the Java that we used in AP Computer Science. Working with this made me realize that I love taking the time and finding the right code, kind of in the same way one might enjoy solving a math problem. As nerdy as it sounds, I just get a certain feeling of fulfillment after finding the correct answer. We are starting slow, so I should finish my first game on Monday. After I get the hang of it, my supervisor said he would just give me three of four games to finish on my own.

As far as the Facebook data goes, we collected a little more than half of it. And as I pondered how I was going to write my blog, I realized the data we collected really is not all that interesting. It's just how many spins I won out of the first 100, or how many credits did I start with, or how many ads popped up during time of play. Additionally, any sort of really interesting data or interpretations of data I can't actually publish since they are important for the company. What I can tell you is that you should never play as a guest, because it appears as if you win more when you sign in with Facebook. Hopefully when we retrieve all of the data, there will be something more intriguing to tell you.

Challenges: Reel vs. Real. For the first part of our programming lessons, my supervisor kept using the phrase "spin the reels," which was referring to pressing spin and watching the slots do their spinny thing. However, because of my time at BASIS, being exposed to such advanced math classes like Category Theory and Vector Calculus, I thought he meant "spin the reals." My mind was so blown! I thought it was one of those things like when Mrs. Bailey tells you to take infinity and bend it on itself, so negative and positive infinity are the same, and the linear reality of numbers becomes a circular one. Spin the reals?! What does that even mean?! Luckily, my confusion was quickly solved and I was on my merry way.

Victories:  I became acquainted with most of the staff during the lunch breaks this week. Usually I would go out to lunch, but lately I stayed in the lunch room and met everyone. They are all really nice people, and they are all quite funny! It's a wonderful environment to work in.

Thanks for reading guys! Here comes another week of fun and frivolity at the office.

Saturday, February 13, 2016

A Change in Plans

Hey guys! I finished my first week of my internship and it was pretty wild. I met the entire staff and they all welcomed me with open arms. Everyone there is extremely nice and respectful, and I can't wait to do more work there. However, the internship is taking a slightly different turn than me or my supervisor initially predicted. So in this post (which will have a similar structure to how future posts will look), I will describe a little bit of what we have been doing, discuss some challenges for the week, and express my joy about any victories that occurred. Let's get started.

So initially, we thought our contribution to the company would be from more of a mathematical standpoint, i.e. designing games and proving that the design is sound. However, the company's new focus has shifted more towards internet gambling and online casinos. For the first day, which was Tues 2/9, I mostly played some previously existing games online and gathered statistics such as frequency of hits, number of bonuses, and the recurrence of advertisements. I am so excited to be part of this process because it could ultimately provide crucial information on how the company should go about developing its games.But yes, if you're wondering, in simple terms, I just have to play lots of games online and basically just write how many times different stuff happens. Pretty chill. If you're interested in what trends I've discovered while playing and if they're helpful or not, there will be more of those in next week's post once I have accumulated more data. 

However, as I continued with the process, I was introduced to another important process: using excel. In hinds sight, I really wished I would have taken Mr. Mac's Excel term project (for those of you who attend my school, you'll get this). What we have to do, is read the game description of a new game, and copy code from other games that will make the new one run as designed. Now this may sound really simple, but it turned out to be really difficult and super detail-oriented. There were specific numbers I had to copy in specific places, and use a chart to turn specific letters into specific numbers, and then those specific numbers back into different specific letters, and specific orders that I had to do the specific steps in, and specific layouts the excel documents had to be in, or the programmers would have to specifically redo all the work and rewrite it in a specific way that suits their specific needs. And I had to learn it in a pretty short time frame, because everyone has work they got to do, so watching over my shoulder for every step was just impractical...

But it was alright. My supervisor has been very understanding and has told me repeatedly that during this transitional process, he will be happy to answer any questions I have. I am so lucky to be surrounded by so many patient and intelligent people. I do not want to let the team down, and I hope that my contributions will make a beneficial impact on the company. Now that I've talked about what I've been doing, I just want to take a few moments to discuss the challenges and victories--the highlights, so to speak. 

Challenges: I could not find the place on the first day! I knew this was a possibility so I arrived where my MapQuest told me to go 20 minutes early. But, as fate would have it, my MapQuest was incorrect. I parked in some free underground parking near the mall and wandered the area trying to find the office. Eventually, a yoga teacher in one of the suites noticed that I looked lost, and asked what I was trying to find. She had the directory on her iPad and pointed me in the right direction. Turns out I was at the wrong side of the intersection. 

Also, quite humorously I might add, when I finally got to the correct building and went up the elevator, the fifth floor was under construction. So when I was walking out of the elevator, I took a wrong step and had my right foot go partially through the floor up to my ankle. Luckily, my partner Armin was there to provide me emotional support after my embarrassing exhibition of clumsiness. 

Victories: My AP Statistics knowledge really came in handy when it came to testing games. Tests like z tests and binomial cdfs came up and I was so happy that I took the class in high school. I felt so accomplished being able to understand what my supervisor was talking about. I anticipate that other knowledge from my classes will also prove fruitful!

Thank you so much for reading my post! I look forward to letting you know more about my adventures. Hopefully next time I will have accumulated enough data to give some tips on how to win more while gambling!




Friday, January 22, 2016

The Journey Begins

Hello everyone!


Welcome to Statistics and Slot Machines. My name is Max Waaler and I am a senior at BASIS Scottsdale high school. Unlike most schools, we divide terms into trimesters rather than semesters, and as a senior, I have the opportunity to complete a Senior Research Project during the last trimester of the year, which, upon its completion, will earn me a graduation with high honors. But, before I get too into the project itself, let me briefly introduce myself.


I have been a student at BASIS Scottsdale since the fifth grade, and since then have seen the amazing things that this school does for its students. I am so thankful for the education that the teachers and faculty here provided me. What was particularly unique about my high school experience was that my class was only 87 people . Not only did this allow for close friendships with my peers, but it also allowed me to get the one on one attention from my teachers. One particular teacher, Mr. Peacher, who I’ve been in six classes with over the years, sparked my interest in mathematics and statistics starting in the sixth grade. I have taken AP Calc AB, AP Calc BC, AP Statistics, and some post calculus classes, and my love for math has not wavered a bit.


This is the primary reason why I was so excited when this project opportunity arose. My seventh grade Algebra 2 math teacher is the senior game mathematician at Design Works Gaming, where they design gambling games for casinos and other groups that will prove popular and profitable for the owner of the game (a link to the website is included at the bottom of the post). Around September, he reached out to the school wondering if any seniors were interested in interning at the office. A couple students expressed interest, but in order to qualify for the position there were a couple conditions. First and foremost, we had to be 18 years old, just because of the gambling aspect. Secondly, we had to take a math test and score well on it. Lastly, we had to do an interview with senior game mathematician. Me and a friend were both selected to continue with the project.


Overall, I am super excited to be working in a field that interests me so much with people that I know and work well with. During this project, I will be doing two things on site, which are analyzing statistics and numbers after a game is designed and creating mathematical proofs for a game before it is designed. As the weeks progress, I will continue to post about my experiences and I hope that all of you will enjoy reading about them. Thank you for showing an interest in my project, feel free to follow my blog!


Until next time,
Max Waaler

P.S. Here's the link to the website. It's pretty cool.
http://www.designworksgaming.com/