JAN

07

I remember maybe 5 years ago I emailed a M.I.T. professor after seeing her on a PBS special talking about AI. I poured my brain into an email to her about my theories on AI development, how machines can be programmed to recognize environments, how emotions can be learned through experience,etc. I spent a good 4 hours writing the email because I felt a connection to this professor’s work. It was an exciting email to write because it was something I was very interested in and I wanted to reach out and talk to someone about it. There was so much hope while I was writing it that maybe I would get a response back and I would have someone to talk to about this kind of stuff, maybe get me started on the path to creating advanced machine AI. Sadly, I never heard back from her…I don’t even know if she read the email.

Lately, because of Indie Game: The Movie and Super Meat Boy, I get several emails/twitter mentions/formspring questions a day from people wanting advice. Most of the emails are from younger fans and are requesting advice ranging from “What language do I use” to “How do I get my game on Xbox”. I read every email but I don’t always respond because it would take a good part of my day, not to mention there is little variation between emails.

I legitimately feel bad when I don’t respond because these are people that are just reaching out and want someone to shed some light game development. They are doing the same thing I did with that M.I.T. professor so many years ago. They are interested in what I do and want to know how to do it, they want to be a part of game development in some way. Well, I want to help but don’t have the time, knowledge, or desire to be a teacher …so here we are. This is an FAQ for anyone who wants some advice in some way from me about making games.

Where do I start on my dream game idea?

Where do I start is the most common type of question I get. I feel like starting is the biggest hurdle for a lot of people because they don’t realize that everything, even the crazy AAA game you see out there,started out as nothing and built upon itself until it became what it was destined to be. When your dream game is sitting in your head and you take that first step towards creating it, it can be very overwhelming to go from a state of imagination to implementation. For someone who has never made a game, something as simple as making a character move can be something that just seem like a huge impossible hurtle and can quickly become a huge discouraging defeat. It doesn’t have to be like this, the key is to start small.

Super Meat Boy started off as a quad with the image of Meat Boy on it. Mew-Genics started out as a black square that moved back and forth on the screen. Goo! started out as circles with smiley faces on them. “Game 2” started out as a vectorized image of the character in “Game 2”. Everything starts out at the very most basic level and builds up from there.

It’s very important to take things one step at a time. If you approach your dream game all at once, chances are you will get frustrated and overwhelmed. If you approach the same dream game one little step at a time, your chances of realizing your vision are exponentially higher.

Breaking your game down into small pieces forces you to analyze and evaluate your ideas on a deeper level. This is essential because you always want to be open to changes, you never want to set yourself into a path that you feel you can in no way deviate from. Deviation from the plan can yield the most interesting parts of a game. It’s a more organic way of developing because you are thinking within the game system and are applying new ideas to ideas that have already formed.

So, try your best to break down your ideas in to small chunks that can be accomplished easily within your current skillset. It’s easier to see progress that way, you don’t get frustrated as easily, and you can come back to your work later and easily pick up where you left off. Remember that there is no time limit on when you have to get your game out (if you are starting out like that, you are in for a rough time). Learn at your own pace and build your projects like you build Legos…one piece at a time.

For a more detailed example, let me go through how SMB started. Once I had that quad with the MeatBoy image on it, I hooked up input so I could move it back and forth. After I played with that a little bit I made it so that when I pressed a button my Meat Boy quad would jump, then I worked on stopping him when he landed on a platform, then I worked on stopping him when it he a wall, then I made him stick to walls, then when he stuck to a wall and I hit a button he would wall jump, then if he hit a greensquare he died and so on and so on until the last line of gameplay code was written and Super Meat Boy was complete.

No task is too small, no amount of progress is too little. What is important is that you do not get frustrated and you continue to work on your game.

What programming language do you recommend?

This is the second most common question I get and to be honest I don’t like this question because it is a question I cannot answer. I always try to answer the question with “whatever language you feel the most comfortable with”. I don’t think this answers people’s questions effectively because I feel people are looking for a definite answer or they are just starting out and do not feel comfortable with any language. I’m going to try to elaborate on my answer to maybe help people understand how to choose a language that is best for them or help them understand that using what they are comfortable with is the best way to start out.

If you are looking for advice on what programming language to start with you don’t need to concern yourself with “Will Flash run on iOS” or “Does Xbox run Java” or “Does XNA run on Mac”. Your foreseeable end game at the starting point is realizing a game, not releasing it or selling it. These questions are important when worrying about shipping a game, but shipping a game is way easier than realizing a game. You can worry about shipping your game later.

Find a language that clicks with you and start coding. In the beginning it is important to have as much instant gratification as possible. You want to be able to get something on the screen quick and build from there. You want to be able to edit what you create and add on to it easily. Instant gratification is key to staying motivated when starting out, you probably don’t want to be learning a new language while making your game. If you try to learn a new language while creating your game, chances are you will spend weeks reading and have nothing to show for it except knowledge that you have not yet been able to apply to your game. That can be pretty discouraging.

Stick to what you know, or go the easiest most comfortable route possible to acquiring skills to start work on your game. So if you know a little Flash, use Flash, if you use C++, use C++, if you only use Java, then use Java. There is no such thing as “the official game development language”. ALWAYS remember that. Minecraft is written in Java, Super Meat Boy is written in C++, Farmville is written in Flash, some other game people play is written in HTML 5, some other game people play was made on Index cards. The point is: It doesn’t matter. Find a way you can make your game comfortably, and make it with that.

Don’t take that as me discouraging you from learning new languages and working outside of your comfort zone. Once you get the ball rolling, you will want to reach out of your comfort zone and learn new things if you want to grow as a game developer. Worry about growing later, in the meantime get your base established and start coding.

If you don't know any languge and are looking for a place to start, I would recommend Flash, Game Maker, Unity or something similar. All those programs make it very easy to get something on the screen quickly and with a very small learning curve. You don't want to start out with something like C++ if you have no experience with any other programming language and are anxious to start creating your game.

What books or tutorials do you recommend?

There are two books I recommend but they are only for C++ development and they are not beginner books at all. They are Effective C++ and More Effective C++. These are more advanced C++ books so if you don’t know C++, do not be like “Oh I need those to make games”. You don’t.

Other than those two, I haven’t read any other books. The way I learn is by reading SDK documentation. It’s not very typical, but it’s how I learn.

I do recommend going on line and looking up tutorials for things. The internet is full of example programs, tutorials like NeHe, etc. There are no tutorials that I recommend, mainly because I haven’t gone through any but I do know the resources online are abundant and varying. I’m sure with a little help from Google you can find exactly what you need.

I DO NOT recommend copying and pasting from tutorials to make your game. You aren’t learning anything that way, you are just copying. That goes double for open source programs. They are fine to look at, study, and reference, but they are not a means of making the game for you. You will not become a good and effective programmer by copying and pasting source code into your game unless you fully understand it. Do not cheat yourself this way, take the extra time and understand something before you use it.

What software did you use to create the game?

I feel when this question is asked, its being asked by people that assume there is a magical tool that makes games for you. Fact of the matter is there are tools that do a bunch of the engine stuff for you. If you aren’t interested in learning a programming language for the purposes of building a game engine look at something like Unity or UDK. They take the heavy lifting away from you and allow you to just create a game. There is a cost to this though. You are limited by the system presented to you with those tools. These tools are full of features that are well built, stable, and amazing, but sometimes they will not do what you want.

Personally I don’t like limitations and I really enjoy having my hands deep in the development so I avoid these tools and build my games from code I’ve written over the years. That’s not to say Super Meat Boy couldn’t exist in something like Unity. It could to an extent. Due to the limitations though it would not be the same game, it would not control the same, and it would not look the same. The essence would be there, but the game as we know it would not be. It’s up to you though. Again, it’s what you are comfortable with. Amazing games are made with UDK, Unity and the like...and amazing games are made without them.

I use Visual Studio for development, but I could just as easily use Eclipse, Code Warrior, XCode, or Notepad and a compiler. Just like selecting a programming language, it doesn’t matter what you use. Visual Studio is what I am used to. I don’t use any of the crazy functions built into it, I use it as a way to organize my source code files, compile, and debug. Tons of editors do this.

For art and animation, Ed uses Flash. I wrote an exporter for the animations in Flash because it was easier than writing tools for Edmund, and…again…Edmund is the most comfortable in Flash…so why fight it! Writing that tool meant learning JSFL and working in Flash, but it was what worked best for Ed and me for Super Meat Boy. You don’t need my animation exporter to make your game. One day I will offer these tools to developers, but this won’t happen for a long time so don’t wait for them.

How do you stay motivated to finish what you start?

There is no secret to staying motivated and there really isn’t advice I can give you to stay motivated on your project. There’s no special trick I use, or mindset, or organizational task list, or anything like that. In order for me personally to stay motivated, I have to believe in and enjoy the project I’m working on. If I don’t like what I’m working on, chances are I will not finish it.

There was a game I started a long time ago called Goo!. I worked on it for 2 years, and it went nowhere. It wasn’t my idea, it wasn’t a game I would personally want to make, and because of that I could never make it what I wanted it to be. I stopped working on the game to start on Super Meat Boy.

The time working on Goo! wasn’t wasted because I learned a lot about development, but the game was never meant to be because it wasn’t something that excited me. The only aspect of the game that did excite me was the multi-threaded physics engine and I spent almost all of my time on that. It was important for me to work on that game because it made me realize that loving the game you are working on makes it much easier to work on. It is the ultimate motivation.

When you believe in and love what you are working on, it is difficult to stop working on it. You obsess over it, you want to add to it, you want to make it better, and you really want to see it completed. Believing in what you are working on tends to shine through in the finished game. You are more likely to spend more time on extra polish, add features you think make the game better, just generally go above and beyond and really make the game yours.

How do I get my game on Steam/Xbox/PS3/WiiU/Anything else?

This is a question no one should ever be asking when they are first starting out or even if they have a game they are working on already. Your end game should be “I’m going to make a good game” not “I need to get this on XBLA”. The path to getting your games on any of these platforms is public knowledge. There is no secret email, there is no magic form you fill out, you don’t need to know anyone in the biz, nobody’s cousin works at one of these places and can get you a secret meeting, nothing like that exists.

It’s very simple to be approved for any of these platforms: all you need is a good game. That’s it. It’s a harsh reality that some people refuse to believe. I’ve seen people scapegoat everything but their game when it comes to getting approved for Steam/XBLA/whatever. A good game will gain attention and serious consideration from platform holders based on its own merits with a little help from you. Talk about your game, be excited about it and if your game is good and other people like it your enthusiasm will spread to others.

If your game is not good, you are going to have a very rough time getting it on distribution platforms. Focus on making your game the best it can be, don’t focus on what platforms you can get it on. A good game sells itself way more than exposure on a platform will ever do.

What if I finish my game and no one wants it?

If you work hard, and you think your game is the best thing ever and you still can’t get on any distribution platform don’t take that as a failure and a sign that you should stop making video games. Very few people hit a home run with their first game. SMB was the first game I ever finished, but there were a few before SMB that went nowhere.

At one point I was a few steps away from getting a Sony deal identical to fl0w and Everyday Shooter for the game I mentioned earlier, Goo!. A change in management at the last minute (literally two days before final papers were to be signed) caused the game to be cancelled and for me to never hear from Sony again. The game wasn’t good and even with the Sony deal it had a chance of never being finished and a very good chance of being a huge failure. It hurt, it stung, but it didn’t stop me.

Don’t let that kind of set back kill your dream either. People might think your baby is ugly...that's fine though. Keep making games. Be inspired by setbacks and one day if you have the strength to push through it, chances are you will realize your dream.

Conclusion

Just make your game with whatever you can, start small and worry about other things later. Programming languages and software are irrelevant to creating a game so choose what you are comfortable with or what you want to learn but don't take on too much when starting out. Make sure you make enough progress to stay motivated and keep frustration at a minimum. Love your game, talk about it, obsess over it and it'll be hard not to work on it.

NOV

22

So a little over a year ago, I turned 30. For my birthday a good friend, Aubrey Hesselgren, whom I used to work with on Goo! and before that on stupid Hoopworld, made me this Super Meat Boy Galaxy Prototype. I played it, it was awesome. I thought he did a great job with the controls and that is really saying something because I am very picky about controls. Below is a video:

Anyway, he wants to release it to the world. At first Team Meat's business development team told us that "3D is IN now" and that we would make loads of profit off releasing it along side Call of Duty: Black Ops 2. However, Aubrey, being the humble British man that he is instead insisted that it be ransomed for charity instead. Click here to Donate!

So that's what he's doing. The charity is called The Samaritans and they provide 24 hour confidential emotional support for people who are experiencing feelings of distress or despair, including those which may lead to suicide. They are British so I imagine their success rate for helping people off the ledge is much better than similar American institutions due to the fact that British people in general sound super smart and as a result if they are saying "Hey, you have everything to live for" in a James Bond-esque voice, one would be much more inclined to believe them. Click here to Donate!

In all seriousness though, lets reach this goal and get 10k of England money donated to The Samaritans. It's a good cause, it's a fun game, everyone wins here. If you can spend $3200 on Steam Sales this week (which, you know you will, you always do) you can surely spend $3180 and send $20 to a charity that helps people out. Think about it and...Click here to Donate!

NOV

30

I appreciate everyone being patient with the mac port (those who are patient that is). Naturally we hit some bumps but once again we got a patch out as soon as possible, it would have been faster but stupid STEAM had to go out and have vacation with their families over Thanksgiving....where do they get off....

Anyway, the latest patch that's up addresses every issue I can address and the purpose of this blog post is to inform all you Mac people the same things Windows people were informed of when they got the game. We did a blog post when that version came out, might as well do another one for the Mac right?

Minimum Requirements:

The iMac that SMB was developed on is a 2008 with the following specs:

Intel Core 2 Duo 2.66Ghz
2GB 800 Mhz DDR2 SDRAM
ATI Radeon 2600 HD

For all intents and purposes, these are the minimum system requirements for Super Meat Boy on the Mac...not so much the processor but the graphics card. You need to have something pretty decent to run this game. We never officially supported GMA 950 or any of the Intel Integrated HD graphics even on Windows. The game will "run" on configurations with integrated graphics, however it does not run well and there is no way I can make it run well at this point.

Mac Book Pros and Integrated Graphics:

I've run into quite a few people with Mac Book Pros that put my development iMac to shame that were having significant lag issues with the game. After digging around I found out that Mac Book Pros have integrated graphics and Nvidia / ATI setups that the machine can switch between since about 2010. I have an Alienware laptop that is the same so I know the frustration of running a game, having it run slow and go "But this fucking thing has an NVidia 330M in it...". It seems like quite a few mac users aren't aware that their Mac Book Pro does this, so we're going to cover how to turn this off in order to play the game correctly.

Many people are confused on how to set command line options in Steam. We covered this a long time ago but with the release of the Mac version we need to cover it again

Step 1: Open up your Steam client, hit the button at the top that says Library (just like you're launching the game).

Step 2: Right or Control Click and hit Properties

Step 3: Click on the Set Launch Options button

Step 4: Type in your command line options

Supported Command Line Options:

The command line allows you to change detail, resolution, and windowed/fullscreen status. When setting multiple options they must be separated with a space.

Fullscreen / Windowed

-fullscreen Sets the game to run in full screen mode
-windowed Sets the game to run in windowed mode

Resolutions

-640x480 Sets the game to run at 640x480
-800x600 Sets the game to run at 800x600
-1024x768 Sets the game to run at 1024x768
-1280x720 Sets the game to run at 1280x720
-1920x1080 Sets the game to run at 1920x1080

These are the only supported resolutions from the command line.

Detail Settings. This will help address lag issues if you are experiencing them.

-ultralowdetail Runs the game at the lowest detail, parallax is taken out, particle effects are ignored, animals are missing, set pieces are gone, lighting is ignored, images are lowest possible resolution (made for integrated graphics though not officially supported)

-lowdetail Runs the game with with lowest resolution images, lighting is ignored, particle effects are ignored (use this if you are having lag on CHAD, Dr. Fetus, or levels where you die from moving platforms)

-meddetail Runs the game with medium resolution images (mid range setting, run this if you are having slight lag)

-highdetail Runs the game with highest resolution images (run this if you meet my minimum requirements listed above)

So lets say you wanted to run in fullscreen at the highest resolution at the highest detail, your command line would be:

-fullscreen -highdetail -1920x1080

lets say you were having laggy framerate issues, your command line would be:

-windowed -lowdetail -640x480

Custom Controls:

Update:

Due to an unfixable bug in the Mac version, we don't support 360 controllers on Mac. I do apologize for this. The bug is unfixable because I can't again risk killing everyones game with another update. The game incorrectly assumes that no more than 12 buttons will ever be on a controller. This is mainly true, however Mac controller drivers map the JoyHAT as 4 different buttons it seems, which makes it so you can't map B X and Y properly. This also messes up the start and select buttons. It was a mistake on my part. The bug could be fixed, however there is a significant risk that fixing it will break other things to the point where its unplayable with the keyboard which we would then have to go in and fix and start a whole new cycle of updating the game / breaking something in an update, rinse, repeat. I am sorry about this, do know that it is fixed in our new engine for game 2. Also, non Xbox 360 controllers appear to work fine. Joy2Key esque programs may remedy this issue, but it has not been tested by me. Again, we are sorry about this.

You can now customize the controls of Meatboy himself. This customization only applies to Meat Boy since it's the most important aspect of the game. There is a file in the install directory called "buttonmap.cfg" (It was buttoMmap.cfg when I first uploaded it...I was quite tired). So it works like this. There are two sections in the file, keyboard and gamepad. You can set the movement, jump, and special / run keys to anything you like (within reason) through this file. So you lefties that wanted WASD, here you go. The config file is case sensitive, so just make sure its all lower case. Some buttons that do not have alphanumeric represtation have special names like:

Enter: return
Left Shift: shift
Right Shift: rshift
Space: space
Left Control: control
Right Control: rcontrol

You can only bind an action to one key.

For Joysticks you can customize the jump and special / run buttons by putting in the button number. For instance, the default is set to 1 and 3, which correspond to A and X on the Xbox 360 gamepad. 1 and 3 correspond to the equivalent of B and Y on Logitech controllers. We only support up 10 button codes, so if your controller's buttons map to numbers above that we can't support it.

There is another option called useanalog. This is set to true by default. This property allows the game to use the joystick as the dpad. If you are experiencing weirdness, set this to false and it will disable it.

Note: These controls only affect Meat Boy, Menu's are hard coded with controls.

Getting in touch with me to report bugs

The best way is to email me a crash dump and to send an email through our contact us form. Twitter also works though I'll just ask you to email me if the problem can't be solved immediately.

That's about it. This should fix every problem we are able to fix with the Mac port. Again I appreciate the patience and I'm sorry the Mac port was delayed so long and had a rough start. There's a super long story to all of this, why it took long, blah blah blah, but it's moot. I actually wasn't supposed to do the port but we had some issues at the last minute and Super Tommy had to come to the rescue...as he does every time...though his power source is draining. He needs to work on something other than Meat Boy.

ANYWAYS, everyone take care, thanks for being good fans, we love you and if I can help you with your problem, you know I will:)

But what about those who cant afford this elitist meat party, or meaty fans who already own the game and want the sound track?

Well just for you, we are also lowering the price of Super Meat Boy as well as the Mega Deluxe soundtrack by 50%!

But I already own that game and I don't want the soundtrack!

Well tell you what, how about we unlock Super Meat World (a HUGE online feature in super meat boy that allows people to make, play and rate user created super meat boy levels) for EVERYONE who owns the game already! That means everyone who has ever purchased SMB on steam will have over 20 amazing featured chapters and thousands more single levels to play till their thumbs bleed!

But I only own a Mac!

I think can all stop pretending we like OSX now...but anyway, just for you I finished the Mac port of Super Meat Boy the other night and its also being released for this party!!! So yeah you can buy that too...and we made sure it was discounted for all you Mac-o-philes that have been so patiently waiting for it. Also if you already own the pc version YOU GET THE MAC VERSION FOR FREE!

Please note: I only have one mac...and I had to VPN into my Matthew's Mac to test on Lion...it runs on those...any issues that come up, you know we'll address them quickly.

Woah the Mac version is out? Where's the love for Linux??

Ask your girlfriend when the Linux version is coming out....OOoooHhhh Burrrnnnn

I bet after all that work you need some coffee. Wouldn't it be neat if there was a Meat Boy face coffee mug??

P.S. Thanks for all the support with SMB, its has been an amazingly surreal year for us and we understand how important the press has been in terms of getting our humble little game out to the masses, so thank you wholeheartedly for your on going support. If you ever need an interviewee, indie game design opinion or 2 jackasses on the other end of a podcast, we are at your disposal. TILL NEXT TIME AMERICA!

NOV

03

To celebrate the one year anniversary of Super Meat Boy on XBLA and Steam, Edmund is giving away the Wacom drawing tablet he used to make everything in SMB, the art, the cut scenes, the racist drawings he would post to me on Drop Box...ALL OF IT!!!

Here's the catch...and oh...there is a catch my friends. In order to win, you must draw the most bestest drawing of Edmund and I naked. NAKED!!!!!!!

In other news, the 1 year Super Meat Boy Anniversary is coming up. For those of you who don't have it marked on your calendars, we are celebrating our anniversary the whole month of November. Super Meat Boy came out first on the 360, Oct. 20th, 2010. It then came out on PC / Steam on November 30th, 2010. It's been a hell of a year and we have a lot of stuff planned for the month of November to celebrate. We'll start trickling in some details soon, but trust us...it's some good stuff, and perhaps you non-PC people will finally get what you are constantly bugging us for...

JUL

20

Tommy here, I'm doing a blog post for the first time in like 8 months. That's because I've taken up a new hobby. It's called moving into a place, then moving out like a month later. I wouldn't recommend it. Anyway, here are some updates.

A Steam update just went up that fixed the chapter upload bug. A few fans helped me track this bug since I couldn't duplicate any of the problems people were having. Everyone should thank them for that, but their names escape me now and I can't open Skype to see who they were. They know who they are...so thanks! So, now everyone that couldn't upload a chapter, knock yourself out!