learn

Tour TNT Basic

Welcome!

This is a brief tour of TNT's editing environment. Here we'll show you how TNT Basic gives you the power to create your own games! The tour will take you through a typical game development cycle from first launching Hieroglyph to running your game!

Creating a new project
Info tour
Code tour
Graphics tour
Sounds tour
Music tour
Maps tour
Input tour
Playing your game
Conclusion

Creating a New Project

Hieroglyph Icon Launch Hieroglyph.

Hieroglyph is TNT Basic's editor. You compose your game in Hieroglyph and then the finished game in played through TNT Basic itself. TNT Basic and Hieroglyph are integrated very closely to give you the smoothest editing experience possible.

Project Icon Create a new project.

Choose "New Project..." from Hieroglyph's File menu. Name the file and save it. You will then be presented with the screen below.

TNT Basic Editing Window

This is the TNT Basic editor window where you create your game.

Your project is divided into 7 sections, accessible from the tabs at the top of the window. The sections are: Info, Code, Graphics, Sound, Music, Maps and Input; we'll now tell you a little more about each section.

TNT Basic Editing Window.
(Click to enlarge)

Info

This screen is where you specify the name of your game (and soon you will also specify the author's name and the version of your game).

The "creator code" is a unique four letter code that is used to identify your game. It need only be specified when using advanced features such as networking or input banks. Until you do, you can leave it blank. (What is the creator code?)

Code

This section is where you "code" your game (What is coding?).

Coding in TNT Basic isn't hard, see our Learn To Code tutorial for more.

TNT Basic code editor.

As you type, your code is colour coded by a technique called syntax highlighting.

Words highlighted in blue represent control flow statements.
Words in granite represent language commands.
Finally words in red represent comments. Comments are ignored by TNT Basic and they allow you to make notes throughout your code.

The code editor eases your navigation through your project when it gets large by providing you with a procedures popup (What is a procedure?). This allows you to zip around your code quickly, without requiring you to remember exactly where everything is.

The code editor also features handy features like a powerful find and replace and a line number read out.

Graphics

The graphics section is where you organise all the graphics in your game from backdrops to sprite images.

Graphics Editor All pictures used by your game are shown in the left hand column. You can import new ones by choosing "Create new picture..." from the Resource menu. TNT Basic supports a wide range of picture formats including PICT, JPEG, TIFF, BMP and GIF.

TNT Basic presents graphics in 16-bit colour, that's 32767 colours on screen at once.

TNT Basic graphics editor.
(Click to enlarge)

The right hand column shows the image banks used by your game (What is an image bank?). The image bank shows all images that a sprite can use in your game. You can add a new entry to the image bank by dragging a picture in from the left hand column.

Entries in image banks can be edited using the Image Info palette shown here.

Using the palette you can specify which parts of the image should be transparent when the sprite is displayed. Transparency masks can be specified by colour or by an alpha channel. Alpha channelled images can have multiple levels of translucency and look very cool.

You can use an alpha channel to anti-alias your image by making the edges semi translucent.

The palette also allows you to adjust the hotspot and collision detection settings for the image.

The images are used by sprites. You can rapidly change the image in use by a sprite to make it animate.

(What is a sprite?)

TNT Basic Image Info palette.

Sounds

The sounds section is where you organise all the sound effects from your game.

This includes background sounds (such as howling winds, or birds chirping) and spot effects (such as explosions or jumping sounds).

Sounds Editor

The sounds section takes a similar approach to the graphics section. The leftmost column shows all the sounds in your game and the rightmost shows all your sound banks.

Sounds are imported into your project using the "Create new sound..." command from the resource menu. Currently TNT Basic only supports "snd" files.

TNT Basic sounds editor.
(Click to enlarge)

A sound bank allows you to group sounds together so they can be loaded and unloaded together. You could have one bank full of explosion sound effects and another full of character sound effects for example. Sound banks that are not being used can be unloaded to free up memory for other purposes.

Music

When you want your games to jive this is the section to go to!

The music section allows you to import MOD, MAD and other tracker music files, as well as MP3s. Once loaded, music can be played with one simple command from TNT Basic, use it to add music to your title screen or atmosphere to your game.

Maps

TNT Basic supports the use of tiled maps, called TNT Maps. This allows you to draw a level for your game and load and display it with ease. At any point you can return to the map editor and change the map, completely changing a section of your game without having to alter a single line of code.

(What is a TNT Map?)

Genesis: TNT Basic's map editor

Maps can be used for everything from scrolling platform games to overhead shoot-em-ups or RPGs.

They are a very efficient way of presenting very large game worlds using only a small amount of graphics and memory.

Genesis: TNT Basic's map editor.
(Click to enlarge)

Input

The input section allows you to declare the controls of your game in such a way that the player can configure anything from a mouse or keyboard to a joystick to control your game.

If your game makes use of input resources, at any point of play the player can go into TNT Basic's menu and choose "Configure controls..." to change their controls. Your game doesn't need to worry about loading or saving of settings, it's all done for you.

Input This image shows TNT Basic's player input support in action. On the left is the input resource that you create in Hieroglyph. On the right is the resulting window that the player will see when they choose configure controls in TNT Basic.
Genesis: TNT Basic's map editor.
(Click to enlarge)

You don't have to make use of input resources, often support isn't added until near the end of game development, but when you do add it, you'll find it is the easiest and most flexible way of controlling your game.

Playing Your Game

Once all the pieces are in place, you're ready to test your game out. Choose "Run" from the TNT Basic menu (that's the one with the TNT Barrel ). Hieroglyph will then launch TNT Basic if it's not already running and pass your file to it for execution.

Now even the best programmers make mistakes, but if your program contains any errors then TNT Basic will let you know and highlight them to you for you to fix.

TNT Basic code editor displaying errors.

If your program has any errors, then you can utilize TNT Basic's online help to find out what's wrong. The online help is integrated into Hieroglyph so you can just select a command, ask for help and you will be taken straight to that command's help page.

If your program doesn't have any errors then TNT Basic will execute your program and play your game! It will handle all the common tasks such as detecting when the user has hit escape and pausing the game, switching the monitor resolution to the best size and restoring it afterwards and allowing the user to configure their controls exactly as they want them; so all you need to think about is designing your game.

Conclusion

That completes our brief tour of TNT Basic's editing environment. But it's not the end, why not make it the beginning and download TNT Basic now? You can have your first game running in no time, just follow one of our Game-In-60 tutorials!

There's nothing stopping you creating your own game right now, what are you waiting for?