Академический Документы
Профессиональный Документы
Культура Документы
Jesse Freeman
http://jessefreeman.com
Contents
Picking a Framework ..................................................................................................................................... 2 Construct 2 (Beginner) .............................................................................................................................. 2 GameMaker (Beginner to Intermediate) .................................................................................................. 2 Unity (Intermediate to Advanced) ............................................................................................................ 3 HTML5 (Intermediate to Advanced) ......................................................................................................... 4 Game Design 101 .......................................................................................................................................... 5 Play More Games ...................................................................................................................................... 5 Document Your Idea ................................................................................................................................. 5 Getting Feedback ...................................................................................................................................... 5 Creating Artwork and Sounds ....................................................................................................................... 6 Working Without Art and Sound .............................................................................................................. 6 Working with Artwork............................................................................................................................... 7 Working with Sounds ................................................................................................................................ 8 Polishing Your Game ................................................................................................................................... 10 Consistent Design.................................................................................................................................... 10 Supporting Multiple Resolutions ............................................................................................................ 10 Perceived Performance Optimizations ................................................................................................... 12 Publishing and Marketing Your Game ........................................................................................................ 13 Naming Your Game ................................................................................................................................. 13 Getting People to Play Your Game.......................................................................................................... 13 Charging for Your Game.......................................................................................................................... 14 The More Games You Make the Better .................................................................................................. 15
Picking a Framework
Whether you are a seasoned game developer or just getting started making your own game, chances are you are going to need a good game framework to build upon. A game framework could be as simple as a collection of code packed up into a library in a specific language, like JavaScript, or a more complex system of scripts, tools, and workflow built on a specific platform. Both types are designed to help speed up your games development. The last thing you want to be doing, especially when getting started, is reinventing the wheel. Here is a quick rundown of things to look for in a good game framework: Speeds up development by including collision and physics, and handles input Has good documentation and an active community to help answer questions Is easy to pick up and matches your skill level (drag and drop for non-coders and low-level access for seasoned developers) Easy multi-platform distribution, allowing you to get your new game on as many platforms as possible
To help you pick the right game framework, I have highlighted a few of the most popular ones which are great for people getting started making their first game. I have arranged these from easy to hard based on the above criteria.
Construct 2 (Beginner)
https://www.scirra.com/ Construct 2 is as easy as it gets for making a game. It employs a drag-and-drop behavior system, where you build up game logic from pre-made scripts that are attached to your games elements.
It has its own Web-based tool and support for publishing to a number of different platforms. Construct 2 games are built in HTML5 (although you never have to touch the code itself) and, because of this, its ideal for publishing your game on the Web. The only down side to Construct 2 is that you are removed from the coding aspect of making the game, so you are fully dependent on what Scirra has provided. And, while you can add additional functionality via plugins, its not ideal if you come from a coding background and want to manually tweak things yourself.
GameMaker is a great tool for making 2D games. Its incredibly powerful, and a lot of well-known indie success stories got their start in GameMaker (Spelunky, Hotline Miami, etc.).
GameMaker is similar to Construct 2 in ease of use, since you can perform drag-and-drop, event-based coding, and more advanced users can take advantage of its built-in scripting language called GML (GameMaker Language). GML is C based, so if you know C, JavaScript, Java, or C#, it will be familiar. But the language does have limitations, such as limited data structures and no classes. While the UI of GameMaker is a little rough around the edges, its still an excellent tool for 2D games, and its support for publishing to desktop, mobile, and HTML5 shouldnt be overlooked.
The IDE is very polished and easy to use, but being a 3D tool means that there is a certain level of knowledge you will need before getting started. Unity supports three languages: UnityScript (which is similar to JS), C#, and Boo. Unity now has a free version that supports exporting to desktop and mobile that displays the Unity logo on startup. The pro version gets incredibly pricey but adds lots of must-have
features for more advanced game developers. You can also export to console, such as the Xbox, PS3, Wii U, and more (but those licenses cost even more). Unity has a Web player that relies on a plugin, so while you can export your game to the Web, it wont be playable on mobile browsers. Finally, Unity is in the process of releasing a 2D workflow that will be a huge advantage to anyone not interested in making 3D games.
There are a lot of really great HTML5 frameworks out there, but the two most popular are Impact ($100 license) and Phaser (free). The one thing to keep in mind with HTML5 is that it tends to be rough around the edges. You will have to manage browser compatibility across desktop and mobile, and native app distribution is still an issue. Also, in many cases you will need to bring you own tools, but seeing a game work perfectly in a mobile browser without a plugin opens up a lot of doors you would not get in a native mobile app store. While I could probably write an entire book on different game frameworks and platforms, I dont want to overwhelm you. The good news is that, if you are just starting out, there is guaranteed to be a framework that is right for your skill level or game idea.
Getting Feedback
The most important part of this documentation process is sharing your idea with others and getting their feedback. I know you want to protect your idea with your life, but the reality is that most people starting out making games need feedback from others. We all start out with the lofty goal of making a game I want to play, but the reality is that you are just one person and, in order to be successful, you need to appeal to larger markets. Im not saying you should post your game ideas online for all to see, but find a select group of trusted friends and run it by them. Youll find that some feedback is hard to take, but being able to filter out what will actually make your game better is a valuable skill to have.
While Thomas Was Alone looks deceptively simple from the screen shots, there are a lot of subtle visual effects that add depth to the art style. But, at the end of the day, the game is really about a set of primitive shapes and basic geometric levels. Super Hexagon http://superhexagon.com/
Super Hexagon was a hit as soon as it was released. It revolves around the simple concept of not touching the walls that rotate and move to the music. As you can see, the levels appear to be dynamically generated, and while its creator uses a really great soundtrack to move the levels along, all of the visuals can be sorted out once you have the basic gameplay mechanics down. Lets talk about how to make art and some ways to package it up into your game.
I could probably write an entire book on tools for making artwork for games, but you should take a look at other online tools I may have missed or that you might already own. At the end of the day, its all about doing the best you can when it comes to making artwork, and if your game is good enough, you will eventually find someone to help clean it all up. I actually outsource all of my artwork even though I have a background in art because I want to focus on the game and let someone else carry the burden of making good game art. You can find my own collection of open source art work at http://jessefreeman.com/category/game-artwork/
This app is perfect for generating simple 8-bit sound effects for your game. It may look intimidating at first, but as you can see on the left-hand side, there are a bunch of pre-defined sound templates, such as pickup, laser, explosion, and jump sounds. But the most important button is Randomize. I use this all the time to come up with new sound effects, and you can use the Synth option in the middle to modify it. I use these as placeholder sound effects in most of my games, and over time, I have built up a nice little collection of sound effects I can use from game to game to help speed up my development. You can download my collection at http://bit.ly/gamesfx. Once you have some sound effects, you are going to need a way to convert them. Bfxr likes to generate .wav files, but youll be hard pressed to find a game frameworks that still use that file format. That is why I use a program called Audacity, which you can get at http://audacity.sourceforge.net/.
For example, when it comes to HTML5 games, you are going to need to output .mp3 and .ogg files, since each browser supports a different file format. While this is just a small part of what you will need to produce artwork and sound effects, I have a few links below to open-source artwork and additional resources to help you get started.
Consistent Design
One of the most important things you should do in your game is make sure your art style is consistent throughout the game. Your in-game graphics and your UI, and even the splash screen, should all look and feel like they belong together. The best example I have of this is Mega Man 2.
As you can see the box art for Mega Man 2, on the left, is completely different than what the actual game looked like, on the right. While there is a time and place for being creative with your games art style, just make sure you dont set the wrong expectations for your perspective players. This is especially important when it comes to creating screen shots to entice people to pay for or download your game. In the end, keeping everything consistent will help make the overall game feel more polished.
Here you can see that the native resolution of my game is 800 X 600. This is a 5:3 aspect ratio. From there, I can easily scale my game to 1024 X 768, which is a similar aspect ratio of 4:3. My game will also support 1366 X 768, which is a 16:9 aspect ratio. The key to this system is that my game camera simply shows more of the game screen as I change aspect ratios, and the UI moves based on the resolution as well. Here is an example of the game at two different resolutions.
Here is the game at 800 X 768. As you can see, the camera shows less of the action, but I make sure the UI scales down nicely to support the lower resolution without any overlapping.
And here is the game at 1366 X 768. As you can see, both versions of the game are fully playable, but you end up with a little extra screen real estate at the higher aspect ratio.
Naming a game isnt always an easy task, but make sure your games name is clear, descriptive, and easy to remember. Also, make sure your games name makes sense for sequels and continuations if you find yourself with a hit on your hands.
If the Web isnt your thing, also keep in mind cross-platform desktop publishing. A lot of indies have had success with Steam Greenlight, as well as bundle deals like Humble Bundle. Both of these distribution solutions leverage desktop compiling and usually want games that support Windows, Mac, and Linux. If you intend to ever get your game on Steam, make sure you are able to offer a desktop installer.
The reality is that, if this is your first game, chances are high that you will not make a lot of money off of it. Having a successful game is kind of like winning the lottery. I am not telling you this to discourage you; I want first-time game developers to have a clear idea of what they are in for. Even seasoned game developers have a difficult time monetizing their games without help from marketing firms. Even getting good reviews on game sites, which is hard to do, doesnt always translate into lots of sales. The best thing you can do is get featured on the app store itself, but once that promotion is over, unless you have a real hit on your hands, you will see a natural drop off in your games sales or downloads. The last thing I want to talk about, which leads into our next topic, is that making games is a learning experience. The more games you make the better you become as a game developer and grow your chances of making a hit game. While its very frustrating for first-time game developers to work hard on something and not see people download it or buy it, you shouldnt give up. One of the best things your game can be is a promotional tool for you and even your next game. Always be sure to have links to your other games inside of your game to help promote everything you are doing. You may be surprised to
realize that, over time, you actually end up building up a following of people more willing to pay for your next game if they continue to play and like the ones you are releasing now.