This Tutorial will explain how to create a new project in DM (Dream Maker) and go over several things that are needed to get your game into its first "playable" state.
This Tutorial will probably be much longer than the others; since it will be explaining a multitude of systems that are needed to get you started.
(Note: if you hold Ctrl when clicking on any of the links in this tutorial; they should open in a new tab. This will prevent you from losing your place)

Step 1.3: You will then be asked for the location you wish to save at, and the name of the new environment.
(In keeping with this tutorial it is recommended to use the same file names and location, but it is not required)
I will be saving my project in location: "C:\Program Files\BYOND\bin"
And the project environment will be named: "Tutorial"http://www.angelfire.com/hero/straygames/Tutorial/ DmNewEnviroName.png

Step 1.4: You will then be asked for the type and name of your first file.
Let's make our first file a Code file named "Main.dm"
The system will automatically add the extension based on what file type you have selected. (ie: .dm for a Code File)http://www.angelfire.com/hero/straygames/Tutorial/ DmNewFileName.png
We won't be using this yet, but I like to create a main code file to get started.
EDIT: This tutorial was written before BYOND pixel movement was released. When you create your first code file in the new version of BYOND, it will fill it with some default project code. For the purpose of this tutorial, you would want to remove said code.

Step 2.8: Repeat the above steps to create another new icon file. Name this one "Turfs.dmi".
Create an icon_state in it, fill the icon_state with solid green, and name the icon_state Grass.
Click the paint board again, inside Turfs.dmi, to add a 2nd icon_state. Fill this one tan and name it Dirt.

Programming:Step 3.1: Now that we have a couple of icons created, lets write the code so we can place them in the game.

Step 3.4: Click in the large white section to the right to begin typing.
Input the following code.
(Note: I don't recommend copy/pasting the code, but typing it in yourself. Not only should this help you learn, but copy/pasting will convert any tabs into spaces.)

world name="Tutorial" mob=/mob/Player

What will this do?
It will set the name of your world (your game) to "Tutorial", and set the world's default mob type to /mob/Player.
But wait! We haven't created mob/Player yet, so this will give us an error if we compile.

Step 3.5: Select: Build -> Compilehttp://www.angelfire.com/hero/straygames/Tutorial/ BuildCompile.png
This will check your code for any syntax errors.
As I have already pointed out, we currently have one "Main.dm:3:error:/mob/Player:undefined type path".
Any errors that you have will appear in the bottom section of Dream Maker.
It will tell you the code file and line number that the error has occurred on, along with a (somewhat cryptic) description of what the error is.
If you double click on an error, it will take you to the line in your code where the error exists.
Be warned however, if you modify the code (reducing or increasing line numbers) then when you click on an error you may be taken to the wrong line.

Step 3.6: Now lets correct that error by creating a Player mob.

world name="Tutorial" mob=/mob/Player

//new code belowmob/Player icon='Player.dmi' icon_state="Player"

What does this do?
In short, it creates a new mob type called Player and sets up its visual appearance.
You'll notice we use 's around file names, and "s around text strings.
If you compile now, it will clear the error from the bottom.

Step 3.7: Lets create a new Code File to put the code for our Grass in.
Follow the same method you used to create an icon file, but select "Code File (.dm)" for the file type, name the file "Turfs.dm".
This will automatically move you into the new code file so you're ready to begin typing.

You may notice that this looks somewhat similar to our mob/Player code, but the icon declaration is in a different position.
By setting the icon under just /turf, instead of under turf/Grass (like we did with mob/Player), it sets the default icon for ALL turfs to 'Turfs.dmi', instead of only setting it for your Grass.

Step 3.8: Switch back over to Main.dm by double clicking on it.
Now we'll write some code for what will happen when a player logs in and out of your game.

mob/Login() will be called any time a person logs in to your game.
What does it do? It sets their location on the map to x:5 y:5 z:1 and then announces to everyone in the world that they have logged in.

mob/Logout() will be called any time a person logs out of your game.
It first announces to the world that they have logged out, and then deletes their mob.
Take note to do it in this order. Deleting the src (source) of a proc (procedure) will cause that proc to immediately stop.
In situations where you del (something) and (something) isn't the src; if you then attempt to reference (something), you will encounter a runtime error, so delete things last.

Step 3.9: Compile one last time and we'll move on to mapping.

Creating a Map:Step 4.1: Create a new Map File like you would an Icon or Code file.
Select "Map File (.dmm)" from the list, and name it Map.dmm.
When it asks for map sizes put in 200, 200, 1.
I recommend using 200x200 as it provides a 1:1 relation in the mini-map.http://www.angelfire.com/hero/straygames/Tutorial/ MapSize.png

Step 4.6: Now click the Fill buttonhttp://www.angelfire.com/hero/straygames/Tutorial/Fill.pngStep 4.7: Once you have Fill mode selected: click in the top right of your map (the full map not the mini one) and drag into the bottom left corner.
Hold the mouse off-screen for a few moments so that the map will scroll, selecting the entire area.
Once you release the mouse button, the selected area will be filled with your active object (which should have been turf/Grass)