Saturday, April 16, 2016

Week Nine

Hello hello everyone~~


I finished up the game I was talking about last week, though in the simulations I ran, the results appeared to be paying low at some times, high at others, and even exactly what I wanted occasionally. Usually this means the game is off, but after hours of trying to find something wrong, we just concluded that the game and its features are too volatile and the RNG (random number generator) of the game is not actually truly “random,” so the results won’t actually appear as they are in reality.


So as we’re coming up to the end of the SRP these last few weeks, I’m finally actually gonna start making my own game! While the process is pretty similar to what I’ve been doing before, now I get to come up with my own features and implement everything into the game myself, rather than just looking off a sheet with all the data already on it. I gotta say, it's actually pretty cool that I got this opportunity, although it’s a bit harder than I expected to come up with all the features on your own.


So far, my game is going to have a feature that occurs during the free games where you collect different symbols whenever they show up on the screen, and if you collect enough of one symbol you are awarded a pretty nice jackpot (though it’s probably not going to be very likely to actually happen). Since this game is starting from scratch, I have to do a lot more than usual just to add this one feature. Since this feature is affected by certain symbols showing up on the reels, I have to actually go and edit the reels and put in the symbols, meaning I also have to balance between having the symbols showing up enough times to look like you can collect enough for the bonus, while not messing up the pays you get from just the spins alone. That is about as far as I got this week, mostly because I spent way too long just trying to actually come up with the idea of the feature itself~~


Also, I’m still looking for more features for my game, so if you guys have any ideas you should totally comment them because honestly I have no idea what to do. Keep in mind the goal is to make the game unique from other games so people would actually wanna play this game instead of others~

See ya guys later :D

Saturday, April 9, 2016

Week Eight

Another week of glorious coding over at Design Works Gaming!


For those of you following closely to my weekly posts, you probably remember me mentioning last week that I was starting to work on a game called Slingo. Well, there’s some news surrounding that, the main one being that I’m not going to be working on it, or at least not until later. We also learned that whenever we do work on the game, it would actually be implemented as a bonus feature of a standard game, rather than being it’s own unique slots type.


So, instead of working on Slingo, this week I spent most of the time working on yet another slots game. This game followed the same essential steps as the previous games, of course being even more complex than before. This game did have some interesting features though: The first new feature was this “buffer” that would basically go across the screen in a randomly chosen pattern, turning every slot that it passes into a wild symbol. The explanation for this is much much simpler than the actual coding of it though. There were very few games that have already been made that have a similar feature, and the ones that did have it had some weird niche components that changed how it worked, so I was basically left to create it without much help from previous games. It was definitely the part of the game that took up the most time, with a lot of frustrating, tiny details that created problems all over the place.


The second feature is a lot easier, as it was basically just giving you a second chance at getting free bonus spins if you got 2 out of 3 bonus symbols. However, even this simple respin feature has a few annoying interactions with the rest of the game: Since this feature, as well as most of the other ones in this game, changes what symbols on the reels, it is important to make sure to sequence these interactions in the code in the correct order so they don’t mess each other up. I’m actually working on figuring out exactly where to put everything, so that’s where I am now.

Sadly, still no more updates on the Facebook games; maybe we have done all there is to do on Facebook. Though I complained numerous times about this in the past, I’m still somewhat missing mindlessly spinning the slots, just not enough to do it on my own without being required to. On the bright side, now they have their own Facebook page that you can all actually check out right now: Diamond Sky Casino Community

Saturday, April 2, 2016

Week Seven

Back at it again with the weekly blog post!

This week was a trip down memory lane: Rather than starting on coding more games, we went back and made some final changes to all the prior games we had been coding in the previous weeks, using all the tips and tricks that we’ve learned since we initially wrote the code. One of the main addition I needed to make to my games was to add something called a ‘mathobject’ to certain parts of the games that had a feature which would need to be used by the programmers to indicate something special is happening. It’s a little hard for me to explain mostly because I’m not entirely sure how it works myself, but basically it just shows where something needs to happen for the next people who work on the game after us. Some math objects had different coding than others, but they were all pretty similar so my main struggle was figuring where they were actually needed.

In other news, if you guys remember the construction I was talking about earlier, they've made some significant progress, and parts of our office have been remodeled! I gotta say, the new rooms look pretty cool with all the slots machines all over the place (I should probably take a picture but I can never remember until I start writing these blogs).

We’re also starting to come up with some ideas of how to code a new type of slots game. The example we’re looking at is called Slingo, which is basically a combination of slots and bingo. The concept is pretty cool, but coding it is actually pretty unique compared to the regular slots games. Since we haven’t coded one ourselves yet, we actually have some free space here to figure what the best way to go about it is, so I’ll probably post some updates on that next week.

I also checked the fake email I created to make the Facebook account where I was playing the the online casinos, and it turns out they spam you ALOT when you play the games as much as I did, so I’m very glad I used a fake email instead of my own. After reading a few of them, I honestly didn’t really understand why they felt the need to send so many spam mails, as they really didn't entice me to play the game any more than I already do, but maybe the technique works better on those older ladies, who knows~~

Anyways, that about wraps up my week for you guys, see ya again next week! :D

Saturday, March 26, 2016

Week Six

Hello hello, week six was just lovely!

First off, I finally finished that horribly frustrating game from the previous weeks, only to move on to another even more challenging game, ha ha. This time, however, we are taking a slightly different approach. This game was actually assigned for me and max to work together on, since now we not only had to write the code to make the game function, but we actually are working on the math involved that will eventually make the game pay however much we want it to. To clarify, for the other games we’ve done, all the math and every detail about the game was already done by someone else, and we just had to write the code that accomplished whatever the game said to do. Now, most of the game has already been coded, and we actually have to find some way for the game to pay in a specific way that appears exciting to the player, even though on average they’re losing money. This involves a lot more math than coding, as we have several different points that we can tune to make slight changes in how the game works. At this point, there’s honestly more guess work at play than anything else, but it’s definitely really fun to take this approach. Sorry if what I just explained didn't completely make sense, feel free to ask questions in the comments so I can clarify wherever there's confusion.

As for the Facebook game data, there wasn't much to do this week, so I guess we got a break from it for a little while~~

With this latest game, I’m really starting to get a feel for how the games are really designed and how they accomplish the goal of appearing profitable to the player while sneakily taking all their money (essentially). The bonus feature of this game is designed to make the player feel like they’re progressing quickly by giving them higher chances to win big while they have  a low score, as well as they are almost out of spins, but as soon as the player begins to get close to the jackpot scores, the chances quickly drop to where it is almost impossible to actually achieve it, giving the player hope without granting them any reward. In the process of figuring out the math behind this process, I felt almost like an evil mastermind, trying to find the best way to give people hope without them ever having a real chance... and I kinda enjoyed it… ;)

Sunday, March 20, 2016

Week Five

Hello once again ladies and gentlemen, and welcome to the halfway week at Design Works Gaming with your host, me!


Another week of programming and Facebook gaming, another week I ponder my existence. New stuff this week on the Facebook front however: now we are taking note specifically on how many ways and how many credits someone can earn daily just by logging in to any given casino. This information is pretty unique, as it shows how much free stuff a game is willing to give to the players before they expect them to spend their own money. Many casinos rely on players running out of credits, that way they need to purchase more to continue playing, but if they run out too fast, they could very easily just lose interest in the game and never play again, so these daily rewards are key to having returning players.


As for the programming side, I’ve been working on the same game, and it has proven pretty challenging with all of the small mini games that are new to me. One particular problem I had was with figuring out why the last part of the mini game was paying wrong. Basically, the game has three possible stages, and you can move on from one to the next by randomly landing on the right symbol. In the code, there are three different sections to determine how much is paid for each of the three stages. When I examined each of the three sections separately to make sure they all work, everything seemed OK, but when i put them all together, there was a small issue that made it pay slightly low. This would indicate that something is wrong in the section of code that determines whether or not you move on to the next stage, yet no matter how hard I looked I could not figure out where that mistake was. Evidently, the problem did not lie in a flawed section of my logic, but rather in word choice. To note the part of code that determined whether or not the player advanced, I labeled it “Continue,” as that would make it self-explanatory what the code is doing. However, it turns out that “continue” already existed as a method in the code, and thus is made some odd errors when I implemented it. Needless to say, this was an incredibly frustrating error to solve, but at least it's behind us now!

That about sums up the week for me, tune in next week for more exciting news over here, behind the scenes of casino slots machines!

Saturday, March 5, 2016

Week Four

Hello again everyone! A lot went on this past week, including me finishing my second game, starting on the third, and also going back and fine tuning the first game as well as adding a few things. First off, the second game was, at least on the surface, much more complicated than the first. While the first game only had two features (free spins and a bonus wheel), this game had 4: free games, bonus credits, credits multiplier, and bonus wilds. The main difficulty of the two additional features was figuring out how to code the feature that actually changed what symbols appeared on the reels. The bonus wilds basically changed a random number of spots to a wild symbol to increase your chances of winning, but I haven't had experience with that before. After searching for examples of this in other games and numerous questions to my supervisor, I finally found a way to code this feature into the game. Hooray!

As for the third game that I also started, one of the features actually brings up a sort of mini game, so that will be fun to start figuring out next week. I mentioned going back to the first game and making some edits; this was mostly done by my supervisor, as he has much more experience and found many areas in my code that could be adjusted to make the whole process much more efficient, though we were expected to be able to do this ourselves in the future. Hopefully as I see him make these edits I can use the new code to help with future games with similar aspects. Another edit we had to make was actually fixing the comments found within the code. For those who don't have much experience with coding, when writing code the programmer will often make small comments that are indicated by double slashes “//” and help anyone else reading the code to decipher what is going on and what each line is trying to accomplish. We were basically tasked to make sure all the necessary comments were written in the code, so if anyone wanted to go back and change something later, it would be easy to figure out where the change should be made. The last of the edits we made was something called a “gaff list,” which basically creates a menu setting for developers to be able to test all of the features of the game. When you activate whatever feature you want from the gaff list, it sets the game so that the next spin will be guaranteed to land on the corresponding symbols that trigger the feature, so the features can be tested without having to spin countless times to get it to trigger naturally in the game.

As far as the studying Facebook games go, Max and I finished gathering the data from the most popular casino apps and put them all on a spreadsheet to compare them. Funny story with that: after we finished gathering the data, we were compiling them into one list so they could all easily be accessed at once. I figured it would be easier if I just put my excel file onto the server so Max could copy it onto his computer rather than having to retype everything. Sadly, I made the mistake of deleting the file on the server rather than copying it (sounds stupid I know, but this was after several hours of mindless spinning so I wasn't in the most aware state of mind). Normally, you would be able to access your recently deleted files in your recycling/trash bin on your computer, but since this file was saved on the server rather than on my desktop, it wasn't added to the bin and presumably was just lost forever, so we had to go back and do a few of the games again.

Anyways, that was my week for you, see ya next week ~~

Saturday, February 27, 2016

Week Three

This past week had a lot of coding in it. Like, a lot. While i enjoy coding much more than playing the slots games on facebook, staring at lines of code all day trying to find the one tiny error that's throwing off all your results and then repeating the process over and over slowly starts to tear at your brain cells. All jokes aside though,  I definitely am starting to get a feel of how these games should be looking like in general, which will help for the next few games we are gonna be coding. I actually finished for the most part my first game, meaning that when we run a simulator that spins 10,000,000 times it shows the game will pay the correct amounts and have the correct hit frequency, leading to the desired return to player (RTP). Needless to say, this was a pretty great accomplishment for me, although it was short-lived as I quickly had to move on to the next game, as well as attempt to help Max with his own game since he was a little behind after missing a day due to sickness. Max’s game was actually where most of the tiny little headache inducing problems sprung up. For example, there was just one simple problem in the paytable that neither of us picked up on for what felt like at least an hour.

As far as the facebook game data goes, this week we were told to take notes on the more social aspects of the games. This mainly consisted of noting how and where the game tried to incorporate a sort of competition by comparing your scores with either other players on your friends list, allowing you to send and receive gifts from them, or comparing to random players that play the same games, awarding bonus credits if you have one of the highest scores. As I examined many of the top casino apps, I noticed that most of them had a very very similar method of doing this, which many of you may have seen on other games as well. There was a bar at the bottom of the screen that would show all of your friends’ top scores, and if you clicked on one you could send them a gift.

Anyways, those were the highlights of the week, thanks for reading and see you next week!