Bin Laden Liquors: Game Maker Edition

First off let me say Yes! I’m back to update this blog occasionally. I realize I left it high and dry a while back when I launched Gamerations.com. Now that Gamerations has more people working on it than just me and I’m just about done with school I figured now would be a good time to get back into the Rosenblog. Basically I plan to post random thoughts and posts, unrelated to gaming as well as information about projects I start.

This time up is Bin Laden Liquors: Game Maker Edition, a game I made as a small way for myself to learn the basics of Game Maker Studio. This isn’t a tutorial but is rather some background information as to why I chose to do the project.

I purchased Game Maker: Studio not too long ago in the Game Maker Humble Bundle. As someone who loves games, and loves game development I’m always tinkering with different engines.I always strayed away from GM:S for a few reasons but primarily it’s reputation for being unable to make anything decent as well as it’s decently high costs. However I’m glad I did give the engine a try because after having played with it a bit I realized it’s actually a pretty great engine for small projects. It’s not without it’s own flaws and some aspects of the engine are pretty horrific but overall I was much more impressed with it than I expected to be.

I love learning. Especially when in regards to designing and building games. Games are so complex and difficult there is always something new to learn, and each engine brings new challenges. With GM:S not supporting any serious programming language and instead opting for their own scripting language mixed with a visual building block style of scripting it was a big change for me to go from languages like C#, Java and C++ for game development to this odd scripting languages. I’m not a great learner from tutorials though so I wanted a small project that I could easily break apart and teach myself how to build. For whatever reason the old flash game Bin Laden Liquors, and it clicked in my head that it was actually a great learning project. For reference the original game can be found at: http://www.flashrolls.com/shooting-games/Bin-Laden-Liquors-Flash-Game.htm

So first thing first, was to break the game down. There is a few basic rules the game follows which are outlined below.

Menu:
– Needs to render a background image
– Needs to render text on top of the image
– Needs to have functioning buttons, one to enable/disable gore and one to begin the game
– Needs to render those buttons
– Needs to have text flashing on top of the
– Create high score file if none already exists
Game:
– Needs to render the background
– Needs to have random point generation for spawning enemies and hostages
– Needs to have events for if enemy or hostage is shot
– Needs to have timer so enemy or hostage retreat if not killed within certain time frame
– Needs to have events for if they are not shot in time
– Needs to have the player hand
– Needs ability to fire gun
– Needs events for firing
– Needs to handle amount of ammo
– Needs to store number of kills and misses
– Needs to have player follow cursor
– Needs to spawn blood splats on kill
– Should have slurpie effects
– Needs a HUD which gives up to date information
Game Over:
– Needs to render background
– Needs to render score on top
All:
– Sound Effects need to handled at the proper times

So now with the list of things to handle it was off to google. Now I know how all of this would work and be handled within a standard language based engine but this was different. The main menu was first since, it’s simple and should provide some basic information. So I created my room for the main menu and got to work. Rendering the background and placing objects on it was as simple as selecting the background and it’s render mode followed by selecting the object to spawn and clicking where I wanted it. Of course settings had to be messed with to generate them in the correct scale but it was still next to no work. Text rendering cannot be done visually for some reason so I created an empty object which generated text during it’s draw event. This worked but created a hassle when trying to get text in the correct location. It was just an annoying series of trial and error. It was doubly so when I would render it with a shadow effect for readability, which ended up being accomplished by rendering black text behind the primary text a few pixels off the edge. It works but was an annoying period of time.

Once the menu text was properly created I simply needed buttons. My original plan was to create a simple button object which would then be broken up into how it acted later on. Unfortunately I didn’t know this exact thing was possible with the use Parent / child objects, something I learned post completion. My first system for having buttons working was to create the exact some object duplicated with a different action on its click. I later switched the system to a single button object which just acted alternatively depending on a button id, a variable I assigned the object. It was my own little Parent/Child system. Once the button object was fully functional, it was super simple adding the text and hover color change to the button objects themselves. As far as the functions themselves work, it too was incredibly simple. The Gore mode is a simple global variable which is changed between True or False depending on what it is when the button is clicked. The begin game button simply changes the room from the menu to the game room.

The game itself was the fun part to make and Game Maker: Studio made it fairly easy to get it functioning and testable in a very short amount of time. I began by creating a new room, and filling the background with the background image and then creating an object for the Player. The player object is simply the hand, and it also stores the majority of the important variables like hits, misses, ammo as well as the variables which control spawn rates. Spawn rates are being handled in a randomized manner so we have a number attached to the player object which then has a + or – amount of time built in ensuring that though the spawn rate is randomized it also stays fairly close. This makes it simpler for us to make a scaling difficulty as the player does well, our initial spawn rate value decreases making enemies and hostages spawn much more frequently.

Once the variables were set up it was time to get the player object moving. The object has the sprite for the hand centered which made it simple using GM:S’s built in mouse_x and mouse_y values to have the player object location set to the same location as the mouse on each frame. I gave it a quick test and sure enough the player object follows the cursor perfectly.

The rest of this post is coming soon!

Find the full project binaries and all code at https://github.com/miker525/Bin-Laden-Liquors–GameMaker-Studio-Edition

I’ll be updating this blog a bit more frequently now. More projects coming soon!

HackMIT 2013, The spawn of the Hollerverse

I am officially back from HackMIT 2013, which occurred this past weekend. I spent the weekend working with Michael Moskie and Shashank Sanjay, and what was created was HollerVerse. Hollerverse is a one stop shot to blast message your friends (or enemies) in all ways with one button press. One button press will send your message to your friends Twitter, Facebook(unfinished), Email address, and their cell phone via SMS and phone call. We want you to holler at the universe. The application was created entirely at HackMIT 2013 in Python, using the Tweepy, SendGrid, Facebook and Twilio API’s.

The work in progress REPO can be found here
The final more well put together build can be found Here

The submitted ChallengePost URL can be found Here

RandGur JS 1.0

Since I’m home, and bored I decided to take the C# application I wrote, and start porting it to the internet. RandGur JS is a random Imgur image viewer that now runs in a webbrowser! It will also be Open Source!!! (shortly) . The base of the software is in javascript with an HTML frontend. I’ve seen software like this programmed in PHP before but have yet to see it in Javascript so here is my version 1. I still have some changes and edits planned but for now it is how it is. I’ll update the post with the source once it’s completed. Anyway check it out!

RandGur JS
RandGur JS Source

Sn4k3

Sn4k3 was an awesome project back in our younger high schools days. My friend, Josh Haimson and I developed this game from the ground up, using Java. Essentially it’s a simple snake clone. Unfortunately we never got around to finishing it (although I may go back if I have free time to do some work on it), but it has all it’s core features. You start as the one circle green snake. Your food is the yellow circles that spawn. The point of the game…eat as much as you can before you die…how do you die? You’ll die by running into one of the boundaries, or by colliding into yourself. The game features four difficulties: Easy, Medium, Hard and Very Hard. My high score….182 on Hard and…. 47 on very hard… Very fun game. Unfortunately one of the things we never got around to adding was a restart menu but like I said I may go back and rebuild it for funsies.

Anyways heres the downloads:

JAR
Source

Burger King Coupon Generator

NOTE: This coupon generator may no longer work. It’s been ages since I’ve actually been to a Burger King.

On the back of every Burger King receipt is a blank line, and a phone number for a survey. Once you call the number and complete the survey the representative will then give you a coupon code which you could then write on the line. Upon bringing the receipt back to Burger King they would reward you with a free sandwich or fries or whatever the free food was. Like I said I don’t really remember anymore. I’m not even sure if the survey is still there and if it is if it’s for the same reward and using the same algorithm. Basically the algorithm was simply two letters followed by six random numbers. The two letters however were determined by whatever month it was that the survey was taken in. The program simply, runs and auto detects the month. It then just generates 6 random numbers for that months code. Simple and effective and I remember at the time of development it worked beautifully.

Anyway since I’m sharing all my old code and programs I figured this would be a fine one to share as well.

Downloads:

JAR
Source

C++ ID3v1 Editor

For my CS240 (Data Structures) class, we were set up to make a program. Any program we wanted. There were no restrictions and guidelines. What did myself and my group do? A simple yet effective C++ ID3v1 Editor. What’s this? The program works by having the user drag an mp3 file to the exe. Then the program spits out the files ID3 tags (Artist, Album, Title, Year, Comments) and allows the user to edit the info. Relatively simple yet something that I needed, and I’m sure will be useful to others as well. I was the sole programmer of the programmer (as well as main author of the technical paper) while my partners worked on the presentation and also the technical paper. Anyway the source code and technical paper may be useful to anyone interested in how this works so please enjoy!

Downloads:
Binary
Source
Technical Paper

RandGur DotNet

Today I’m releasing something I’m Calling RandGur DotNet. What is it? It is a program which randomly pulls images from imgur and displays them to you. Hence RandGur. Why DotNet? Because it was developed in C# which is a .net language of course! I’m not going to go too into detail on how it works because if you’re curious the source code is also available for download. Features A Full screen mode, saving of the images, copying of image url’s and more. This is the first version of RandGur DotNet. I’m considering also writing RandGur in html/php as well as c++ but who knows. Other projects are also in the works so we’ll see how it goes.

Note I am not responsible for the images shown as they are all coming straight from the Imgur service. If you have any issues copy the link and discuss it with Imgur.

If you like the program and would like to support my broke ass please feel free to donate :)

Download Binary
Download Source