See this guide for more details on writing a game design document.

Stencyl - This is a newer tool that allows you to build games using objects and logic scripts. These games can then be converted into Flash projects and uploaded to any website that supports Flash games. Construct 2 - As Flash gets older, it has started to be replaced by other means of creating games. One of the newest ways to create an online game is to use HTML5. Normally this requires a lot of coding knowledge, but Construct 2 allows you to create games using objects and scripting, much like Stencyl. Flash Builder - This is the traditional method for creating Flash games. This requires a fair amount of ActionScript knowledge, but it is one of the easier languages to learn the basics of. Flash Builder costs money, but you can use the open-source FlashDevelop program to get most of the same functionality.

Stencyl can be used for free if you only want to publish your game online. The free version will have a Stencyl logo appear at the beginning. If you get the paid version, you can publish to other platforms.

You can download kits that other users have made online.

Name - This is the name of your game. You can change this later to whatever you’d like. Screen size - This is size of your game screen, and is very important as it will affect the art that you use. Since people will most likely be playing your game within their web browser, the screen size doesn’t have to be very big. Try Width: 640 px Height: 480 px. This is a good size to get started with.

Scenes - This is the main window of the Dashboard, and shows the actual game and all the assets. Your game will be a collection of scenes. Resources - This is the list of all the objects and assets in your game. it includes actors, backgrounds, fonts, scenes, logic, sounds, and tilesets. The resources are organized in a tree on the left side of the screen. Settings - The Game and Settings options allow you to adjust how the mechanics of your game works, including controls, gravity, collisions, loading screens, and more.

Assign the actor to a Group (Player, Enemy). This will help determine the collision properties of the actor. Select your actor to open the Actor Editor. Click the Properties tab, and then choose the appropriate group from the drop-down menu. Add behaviors (jumping, stomping, walking). Behaviors are what allow your actor to perform actions. Click the Behaviors tab, and then click the “+ Add Behavior” button in the lower-left corner. Select a behavior (such as “Walking”) from the list, and then click “Choose”. Set the controls. If you are creating a player character, then you’ll probably want to allow the player to move it. When you add the Walking behavior, you will be taken to the Walking attributes screen. You can use the drop-down menus to choose what keys will move the actor left and right. You can assign animations as well if the kit you are using contains any. You can add multiple behaviors to customize what an actor can do.

Background - Your scene will be sized automatically, so you don’t need to worry about that at the moment. You can choose to use a color as a background, which will have tiles placed over it. You can choose from a solid color or a gradient. Click “Create” when you’re finished. This will open the Scene Designer. Place tiles - The tileset included in your kit will be loaded on the right side of the window. Click the Pencil tool in the left menu, and then click the tile that you want to use. You can then place the tile onto your scene. Click and drag with the mouse to place multiple tiles. Placing actors - Click the Actors tab above your tileset to switch to your available actors. You must have created them previously for them to appear in this list. Click the actor you want to place, and then click where on the scene you want it to appear. If you hold down ⇧ Shift, the actor will snap to the grid. Adding gravity - Click the “Physics” tab at the top of the window, and then enter in a value into the “Gravity (Vertical)” field. Entering 85 will simulate real-world gravity.

Find any aspects that don’t work, and try to fix them. For example, are the enemies behaving correctly? Can you defeat your enemies? Are there are any platforms that are unreachable or chasms that can’t be crossed? Return to to the relevant area of your game editor to fix any of the problems you find. This may take a little while, but the end result will be a much more fun and playable game.

Open “Game Settings” from your “Resources” tree. Select the “Loader” section. Enter the sites that you want to allow into the “Site Lock” field, separated by a comma with no space. For example, newgrounds. com,kongregate. com. While on this screen, enter your home page into the “Your Home Page” field, if you have one. This will let players who play your game get linked to your site.

See this guide for uploading your game to your own web site. If you want to upload your game to a site like Newgrounds or Kongregate, you will need to create an account and then go through the upload process for the site. The terms and conditions will vary from site to site. If you want to publish your game to the Stencyl Arcade, you can do so from within the Stencyl Program. Click Publish select Stencyl and then click Arcade. The game will be automatically uploaded, so make sure you’re happy with the name before doing this. Stencyl Arcade has an 8 MB file size limit. [1] X Research source

Construct 2 is free, though some features are limited unless you upgrade. The free version cannot publish to any other platforms than HTML5.

When creating a new project, you will be given a list of templates. For your first project, you’ll probably want to start with an empty project. This will allow you to get a hang of the basics without templates getting in the way.

Set background to the size of the layout. Do this by selecting the background object and changing the size in the Properties frame. Change layer name and lock it. You’ll want to lock the layer to prevent accidentally moving it while placing other objects. Click the “Layers” tab on the right side of the screen. Select the layer, and click the Pencil icon. Name the layer “Background”, and then click the “Padlock” button to lock the background.

Double-click your layout and select “Mouse” from the Input section. Do the same to insert the “Keyboard” object.

When you select the sprites on your layout, the sprite’s properties will load in the left frame. Change the sprite’s name so that you can identify and refer to it easier.

Behaviors are pre-configured pieces of logic that allow you to quickly add functionality to your objects. You can choose from a wide variety of premade behaviors that can perform a wide range of functions. For example, to make the floor solid, give it the “Solid” behavior. To move the player-character in eight directions, give it the “8 direction movement” behavior.

Select when the action occurs. After selecting the object, you will be asked to select when the event should occur. This can be based on other events or at certain times. “Every tick” is always. Add an action. You will be asked to select one of your objects. Choose from a list of actions. For example, if you are making a top-down shooter, and want the player’s character to always be looking at the mouse, you would create a “Set angle toward position” action on every tick set to the Player object. When asked for the coordinates, enter “Mouse. X” for X and “Mouse. Y” for Y. This will keep the player’s ship always pointed towards the cursor.

Instance Variables - Instance variables are variables assigned to single objects. They are used for things such as enemy and player health. You can add instance variables after selecting an object by clicking the “Add / edit” link in the Variables section of the Properties frame. Give the variable a name that can be referred to in an event, as well as an initial value. Global Variables - Global variables are variables assigned to the whole game. They are used for things such as the player score. To create a global variable, open the Event sheet and right-click on a blank space. Click “Add global variable”, give it a name that can be referred to in an event, and then enter an initial value.

Use Text boxes and variables to create your interface. You can set your text boxes to display remaining health, score, ammo or anything else the player would need to see on a regular basis.