The Game Creators Newsletter Issue 38

Issue 38 cover - click for full version

Welcome to Issue 38 of The Game Creators Newsletter. It feels like only yesterday I was writing the editorial for the previous issue. I guess February is a short month after all, but it has been no less busy than January! There are two new releases this month that should perk-up your game development interest antenna: DarkVOICES is a lip-sync tool. It will allow you to load (or record) a WAV file, and will then analyse the waveforms to create lip-sync data for your games. It's clever stuff and isn't even limited to 3D games as Steve Vink's tutorial this month demonstrates. The second big release is 3D World Studio. This is the powerful successor to Cartography Shop and offers a stack of new features (cool looking terrain anyone?!) and a faster lightmapper to boot. So, not too bad for a typically quiet time of the year.

As well as new releases we've also pushed out the very first alpha of DBPro Upgrade 6. It is still in the very early stages (and as such has numerous teething issues), but nothing that won't be resolved soon. Keep your eyes peeled on the forums for new U6 betas and join in the quite extensive bug testing and demolishing that is going on at the moment.

FPS Creator owners we're on the verge of releasing two new official model packs. They will include a variety of modern-day entities and segments (personal favourites of mine being the tracking security camera and bank safe!) Also stay tuned for news of an exclusive FPSC competition.

How many of you play MMO games? Are there any EverQuest or WOW addicts here? I'm just asking because I recently played my first ever MMORPG and have to confess, it is one hell of an addictive past time! Not wanting to dive into the fantasy realm with World of Warcraft I instead opted to go down the mech 3-race war route with RF Online. RF (Rising Force) is a Korean game bought to the English speaking world by Codemasters, and it leapt out of beta and into retail a week ago. Since then I've been building up my Accretian Empire warrior and having much fun in the process. Do MMO games push your button? Would you like to see MMO features built into the core of DBPro? Write me and let me know.

Until next month I just want to wish everyone a productive March.


Editorial Dark Voices 3D World Studio PlayBasic News
Emagination Game Design DBPro Tutorial: Sync or Swim dbLounge Darkside PD
DBPro Upgrade 6 DBPro Tutorial: Scrollers FPS Creator News Computer Camps
CShop for DGDK DTSP iDVD DBPro Tutorial: Tile Scrolling From the Forums
20-Liner - Space Weaver This months winner Outro  

Dark Voices Released

Dark Voices

DarkVOICES allows you to create lip sync mouth movement for your game characters easily, quickly and cost effectively. It is based on the technology of loading in any WAV file that contains speech, and converting it to a series of annotations which describe how the mouth should move.

There are no restrictions in shipping this technology with your application. The data produced from this process simply describes when, what and for how long a certain shape of the mouth should be played for, and can be integrated into whatever system your application uses. The product also includes a sample 3D head model, fully rigged to play the lip sync data. It also comes complete with source code for DarkBASIC Professional.


  • Produce mouth movement data from a WAV file, and edit the data for the best results
  • Load an existing WAV file or record your own directly within the editing tool
  • Command-line EXE provided to convert a directory of WAV files in one go
  • Win32 DLL provided to convert WAV files in real-time within your games
  • Mouth data stored in a text file, easy to parse by many languages
  • License permits all forms of commercial use: 100% Royalty free, no fees

Bonus Material

The following is also included with DarkVOICES.

  • Fully textured high poly head model with full phoneme dictionary of mouth poses
  • Full 3DS MAX files for the head model complete with neck, eyes, cheek and jaw bones
  • Full DarkBASIC Professional source code to the editing tool
  • Demo with source code showing how easy it is to add talking game characters

How Lips In Games Move

How do I make my characters talk?
You can create talking characters by starting with a WAV sound file containing the speech, produce phoneme data from this sound file and animate the mouth of your characters head based on the phoneme data.

What is a Phoneme?
The smallest unit of speech that affects the meaning of a word (a sound unit). The 'c' in cat and the 'm' in mat are phonemes. A phoneme is the smallest contrastive unit of sound in a word. There are approximately 44 phonemes in English (the number varies depending on the accent). A phoneme may be represented by one, two, three or four letters. For the purposes of this technology, we are using one and two letter phoneme representations, and we are only using 10 phoneme variations for the mouth shapes. Game speech does not have to be accurate given the equal importance of overall performance, and 10 phoneme variants are plenty for modern games.

How do I animate the mouth of my own Characters?
You can find video tutorials on The Game Creators web site showing how the Anna model was created in 3D Studio Max. We hope this will point you in the right direction for making your own talking 3D characters for your games. You can of course use Anna and modify her for your own creations.

I have no microphone, where do I get good voices from?
We used a great web site for our script of voice overs and we recommend you review their services:

Visit the DarkVOICES web site for a demo download, videos and more information.

Web Site: //

3D World Studio Released

pic 1

3D World Studio is the new sequel to the popular map editor Cartography Shop. New features and an overhaul of older techniques make this editor a perfect companion for Dark Basic Professional. This overview of the program will describe different aspects of the program, and explain new features.


Brushes are the basic building block of any map. "Brush" is a term first coined by John Carmack, in the days of Quake, meaning a convex object with coplanar faces. Any time you are playing Half-Life, the walls, floors, ceilings, and bulk of the scene is usually made up of brushes. In fact, brushes used to be the only geometry that mappers had to build with. Think of them as the carbohydrate to your mapping food pyramid.

pic 2

Because of the convex and coplanar rules, brushes can be used to perform some interesting operations called constructive solid geometry (CSG). Brushes can be split in half or hollowed out. You can even carve a hole in a brush with another brush. These special geometric objects are the basis of binary space partitioning (BSP), and export readily from the editor into bsp engine formats like .map. Another nice feature brushes have is automatic texture mapping. You can position and size brushes without even thinking about their texture mapping. If you do need extra control over the way the texture lies on a brush, you can select a brush face and adjust the offset, scale, and rotation. You can even use the new justify buttons to instantly line a texture up along an edge, or stretch it to cover the entire face. Another new feature in 3D World Studio is improved texture mapping. Cylinders and other round objects will have be smoothly mapped, with a textures wrapped all around.

pic 3


When you want to add detail to a scene, meshes are the way to do it. Although map meshes were already common, it wasn't until Unreal Tournament 2003 that they became a completely integrated form of map geometry. The cover image of this issue shows a scene chock-full of detailed mesh geometry. Meshes should be made with a modular design, so that they can be pieced together and fit to make different scenes, like the set of walkway pieces pictured here.

Meshes in 3D World Studio are referenced, meaning that only one copy of the vertex data is stored in memory. When a map is saved, the mesh position, rotation, and scale are saved, along with a filename for that mesh. Every time the map is loaded, any meshes within it are loaded from the original mesh files, which can be in .x, .gls, or .md3 format. If you want to change or replace a mesh, just overwrite the mesh file, and the new object will be loaded in its place. Reference map meshes allow mappers to start work even if all the map meshes they use are not completely finalized.

3D World Studio Builder Edition includes a CD with more than 60 new map meshes to place in your scene. Just some of them are shown below. Also included are a set of grass and plant meshes.

pic 4

Although meshes add detail quickly, they should be used carefully. You should first design the layout and flow of your scene using brushes. Build supporting geometry out of brushes, and then add meshes in appropriate areas. By creating an alcove or support for a mesh, they will fit more naturally into the scene. Compare the two scenes shown here. On the left, the pipes are just jutting out of the wall, with no particular reason for being there. On the right, the pipes are built into the wall in a way that makes them look like they belong. You can read more about map flow and design here:'s/tutorial_geo.htm

pic 5
pic 6


The editor's lightmapper has been completely rewritten, with faster rendering and support for new light types. Besides point lights, spot lights and directional lights add realism to your scene. A new intensity parameter lets you make lights that burn brightly. Optimised lightmapping routines means lights can be calculated in a fraction of the time they used to take. Lightmaps and vertex lighting are exported to Dark Basic Professional in a .dbo file, with multitextured surfaces for faster rendering.


pic 7

Perhaps the mostly hotly anticipated new feature is terrain. Instead of using one large to cover the terrain with, 3D World Studio uses a system like UT2004 and Half-Life 2; Terrains are made with alpha-blended tiling layers. This makes terrain textures look sharp and detailed, even close-up. To create a path on the terrain, just add a new layer with a gravel texture, and paint a trail. Terrain is exported in the .dbo format, giving Dark Basic Professional users a triple-A terrain system.

Pulling It All Together

3D World Studio exports to Dark Basic Professional's native format, .dbo. Brushes, meshes, terrain, and lighting are all exported with perfect WYSIWYG results. The author of 3D World Studio has created a new Inca demo, based on his older engine demos from Dark Basic Classic. Inca Pro is an engine framework written in DB that shows how to load a map exported from 3D World Studio, set up collision using the Nuclear Glory lib, scan the object limbs for entities, and create and place special objects in the scene. This free source code is designed so that users can create new entity classes and add them to their maps.

3D World Studio is on sale now, and discounted upgrades for Cartography Shop v4 owners are available.

Web Site: //

What is happening in the PlayBasic world?

The close of February sees our Retro Innovation competition come to an end. The quality of submissions has been excellent! The competitors obviously found their feet with PlayBasic easily, some having never even written a game before! This competition has spawned a small but diverse range of remakes, from Archon through to JetPak, each with their own unique twists applied. The winners will be announced later this week.

Play Basic development keeps on rolling like a house on fire. Ranging form numerous new compiler features like pointers through various new expansion libraries. These new libraries allow PlayBasic users to not only harness the power of Macromedia Flash but they can also now use ActiveX and .NET dlls. Both expansions are free for PlayBasic users (links below)

Competition Entry Screen Shots

Listed in alphabetical order:

Archon by Magnus Esko
AstroBreak by Tommy Haaks
DigDug by Team Calypson
JetPak by Ian Price

Macromedia Flash in PlayBasic

The PBFlash library allows PlayBasic applications or games to display and interact with Macromedia Flash movies. Simply call the NewFlash(FlashFile$, XPos, YPos) function, where FlashFile$ is the path and filename, XPos and YPos define the position of the Flash movie. The initial width and height will be read from the file, however, you can re-adjust the size at any time. Another highlight of this library is the static transparent mode. All you need to do is define the colour that will appear transparent at the current frame. This library wouldn't be complete without the possibility to access Flash's Actionscript variables. You can read from and write to these variables, providing you a fast and easy way of interaction. More than thirty commands give you an almost complete control over your movie, so you can design a slick user interface in Flash and put it on top of your PlayBasic game. Download here.

ActiveX and .NET Dlls

While PlayBasic's current command set provides access to a wide range of standard Dlls written in C(++), Delphi and other languages, the PBActiveX library enhances this features with the support of Dlls created in Visual Basic 6, Visual Basic .NET or any other .NET language. This library provides an easy way to access the more complex interface of those Dlls, not only allowing you to call public functions but also to read or set public variables. Expanding PlayBasic with your own ideas has never been easier. Download here.

From The PlayBasic Forums

Well, i'll leave you this month with some links from the PlayBasic forums. Which range from info about the latest retail patch PB1.17 to some very cool tech demos. Most include screens shots, code & demos. So make sure you look through the threads!

3D Rugby
A* Path Finding
A new kind of 3D Platformer
PlayBasic V1.17 Patch Info and Pictures
PlayBasic V1.17 Retail Download for TGC customers

Web Site: //

Emagination Game Design - Paid Freelance Positions Available

Emagination Game Design

Emagination Game Design is a summer program for teens sponsored by Emagination Computer Camps, a leader in technology education since 1982. The program introduces teenagers to the process of designing and developing video games as practiced in the industry today. Students learn scripting and level design as well as art asset, sound and music creation and inclusion. They then join a development team and, using a design document, build a playable video game.

Job Description

Curriculum Developer: Emagination Game Design (EGD) is hiring a team of freelance curriculum developers to write content for a two week game design summer program for teens. Positions require prior involvement in a game design/development project. Candidate must be willing and able to develop proficiency in software used in program as needed for scope of position. The program uses FPS Creator (The Game Creators), Adobe Photoshop, 3D Canvas Pro (The Game Creators), and audio freeware. Positions are part-time, virtual and project-based. Competitive compensation based upon qualifications, experience and time required.

Curriculum Developer Positions (hours of curriculum to be written)

  • Lead Developer Video Game Design (20): Manage project and create design doc and other instructional materials
  • Video Game Art (10): Create content instructing participants on the application of 2D and 3D art assets in video game development
  • Video Game Level Creation and Scripting (10): Create content instructing participants on the creation of levels and use of FPS scripting language to build a game
  • Video Game Sound and Music (8): Create content instructing participants on the application of music, voice and sound effects in video game development

In addition, EGD is recruiting instructors to deliver the program to students. Positions require prior involvement in a game design/development project and/or experience working with children. Candidate must be willing and able to develop proficiency in software used in program as needed for scope of position. Instructor positions are full-time, seasonal (June 19-July 21) with a competitive salary and include room and board at Bentley College in Waltham, Massachusetts, USA.

Instructor Positions

  • Program Director: Manage program, supervise staff and participants, instruct classes
  • Instructor: Instruct classes in video game art, sound and/or level creation and scripting, supervise participants

How to Apply

Email for more info. For immediate consideration, email resume / qualifications, cover letter and any salary requirements. Web site

Web Site:

DBPro Tutorial - Sync or Swim by Steve Vink

Starting with reference to a 1926 cartoon called "My Old Kentucky Home" may seem a little bizarre for a tutorial on Games Programming. However, this is the first known attempt at lip-syncing, and was very impressive even by today's standards. If you want to completely clear the local pub, you can also educate people with the fact that the first documented study of human expressions dates back to the 1640s, and was authored by John Bulwer.

Technology has moved on since then, thankfully. And that technology is now available to your DarkBASIC Professional applications. Computer-based lip-syncing comes in two main types. The first is that of simply moving a mouth randomly in response to the audio track. This is still the main technique used in computer games, including major titles such as Warcraft III. The second type is movement which is tailored accurately to the phonetic sounds and is far more realistic and true to life. This is the method implemented by Half-Life 2, and now by DarkVOICES.

This tutorial includes audio and lip sync files to get you up and running with minimal effort. There is also DarkBASIC Professional source code that can be used without the DarkVOICES product so you can see just how easy the results are to implement. Owners of the product can substitute the files with their own audio.


The first step in lip-syncing is understanding Phonetics. Phonemes are the principle sounds, rather than words or letters, in speech. This is an important concept, and the very word "phonetics" is a prime example. Look at how it is spelt...and then consider how it is pronounced! DarkVOICES can take an audio track containing speech, extract and store the phonemes. In total, 39 different sounds can be recognised, which is very close to the limit in spoken English. In reality you are likely to use a much smaller subset of these, and we will see this later.

Make your Media

The first component of this process is the speech audio file. This must be a mono, 8 or 16-bit file. This is a requirement of the data generation process; it does not limit the quality of the file in-game. As long as the speech content is identical, you can use a superior alternative in your game. You should try to use a clear, unaltered file for the data generation, after which you can create a version with backing music and any other effects you wish to add.

Create the Raw Data

Now we have the audio, we simply drop it into the ConvertAllWAVFiles folder, and run the conversion program. You can convert as many files in one batch as you need, each wav file will generate an associated lip sync file of the same name. This tutorial includes a pre- recorded file and the lip sync data, but feel free to create your own files now.

Quick Results

It's time to introduce Anna. Anna is a beautifully modeled and animated head and is ready to demonstrate the results of the previous step. She can also be used as the basis of your own character models. She has "poses" for each phoneme which we can trigger using our lipsync file. Run the DarkVOICES main application, and watch the introductory tutorial. Once Anna has introduced the application to you, load the audio file. You will see a graphical representation across the bottom of the screen, and the phoneme data overlaid. Play the audio, and watch Anna spring to life as she dictates.

The immediate results are impressive. If the automated conversion didn't quite get the inflection correct, you can use DarkVOICES to fine-tune the data and save it back to the lipsync file. Bearing in mind that the intended use is in games, perhaps in cut-scenes and other dynamic environments, and so 100% accuracy isn’t necessarily essential. You can decide where the trade-off lies between painstaking analysis of every syllable, and reasonably accurate but quick results.

Implementing the results

So far, we have used the tools to create the data, test the results and fine-tune the output. The most important step is putting the work so far into its natural habitat – your game. To highlight the fact that the lip-syncing data and the models are separate entities, I’m not going to use Anna. In fact, the syncing will be applied to a sprite-based character instead. There are no new commands to learn; the remainder of this tutorial will put what you already know about programming to use in a new and highly dynamic way. So let's get started. As usual, the code is written as a self-contained include file, so you can drop all of the hard work we are doing here into any future project.

Data Structure

The lip-syncing data is an array of timings and phonemes. Take a look at the speechLoad() Function to see how we simply read in the file and create a DarkBASIC Professional array from the data. Each line contains the start time, end time and phoneme. The timings are in milliseconds, and all relate to the start of the audio track.

The second point to note in this function is the mapping of the full range of 39 phonemes to just 9 that we will use for simplicity. For example, the sounds created by "b", "m" and "p" can all be mapped to one facial expression. The mapping of these phonemes is already done for you in the example code provided with DarkVOICES.

The principles behind using the data at runtime are very straightforward. As long as we know where we are in the sound track, we can apply the associated expression as dictated by the array of data. Each element represents a phoneme and a timeframe. So, at 1000 milliseconds into the speech, we extract the phoneme from the array that covers this moment in time. The following table represents the word "Dark", phonetically:

So at 300 milliseconds, we would interrogate element number 2 and derive the phoneme “ah” was required. Again, the sample code demonstrates this.


All that is left for you to do now is to review and run the code. Remember, there are no new commands so you can run the program without owning the product. If you do already have a copy of DarkVOICES, you can very quickly record and convert your own dialogue, and apply it to the tutorial program. Our robot isn't quite so attractive as Anna, but he proves that we can now apply synchronised speech to any model or animation.

The audio in this example was converted to a lip-sync file before adding the robotic effect. The lip-sync file is also untouched, the results were more than adequate in the original conversion.

Until next time, Happy Coding!

Download Tutorial: (2.7 MB)

dbLounge goes UK

The dbLounge is a DarkBASIC Help site, which is already standard in the German DB community. It provides many features to help DBP Users, like a user based online command documentation, a tutorial system and a system to easily publish source code. Every month a new offline version is automatically generated, which can be used as a separate html help and may be integrated into the original IDE help system.

Additional features are for example: automatic code highlighting(with command linking), code conversion (to forum bbcode), style able interface(for registered users) and an easy navigation system. Check the site itself to see all the features. Why not join in and start filling up the English part of the site? (and be sure to check out some of the excellent German DBPro code while you are there!)

Web Site:

Darkside PD


You know you are in for a treat when someone posts a new DBPro DLL to the forums with a name of 'Snowy The Evil Snowman' :) Well, Snowy has done an awesome job and his latest DLL is a 'Display DLL'. This DLL lets you capture screen shots of your desktop etc, set your desktop wallpaper, set your display mode and make grid collision zones. This is of course all from within DBPro using simple commands. This DLL is free, and what is more - if you take a look at Snowy's web site you'll find a whole stack of other DBPro DLLs. At last count there were 13 DLLs on there and they cover some great areas, including:

  • StarBurst - Create Amazing 2D Snow, Explosions, Rain etc with This simple Dll
  • White Rabbit - The ultimate Dll for real timer based movement, animation and music.
  • Font Requester - Use the real Font Requester in your DBPro Projects.
  • Progress Bar - Use Real Windows Progress Bars in your DBPro Programs.
  • DeskTop - Get Your Desktop Width, Height, OS Version and loads more.

You simply must check out some of these great DLLs! Using them couldn't be easier. Download, unzip into the compiler folder and you can then access all of the new commands from within DBPro. Snowy's hit counter is currently at 3,918, it deserves to be much higher than this next month - do yourself a favour and try some of these.

Web Site: Darkside DLL Page

DarkBASIC Professional Upgrade 6.0

From Lee Bamber, lead developer of DarkBASIC Professional:

Hi guys. After many days of bug fixing, and general housekeeping, I am ready to release the very first beta version. Technically, it is more of a pre-alpha release given fully half of the reported bugs are still out there causing trouble, but it keeps my number system simple.

Find the file ready for download here:

Please ensure the following guidelines are met:

  1. Backup everything you hold dear before proceeding with this BETA
  2. Download and install the latest December 2005 version of DirectX 9.0c
  3. Read the Upgrade6_0.txt text file in the root folder before posting on this BETA, as it may contain corrections you need to know about and have a good familiarity with the 9 pages of bug reports before posting new ones. It will make the going a little quicker!

Most of all, have fun, and if it starts to feel like work, step back to your previous version, sit back and relax. We will get the job done, any extra help is a bonus :)

Two small 'not quite features' in U6.0 is the extra parameter in SET DISPLAY MODE which allows your applications to VSYNC perfectly at your monitor refresh rate (for smooth applications and games) in both windows and full screen mode. The other taster is that shadows will now work with animated bone models under a VS_2_0 shader if you set the parameter to GPU mode. If you want to see it up close, check out Compiler\effects\stencilshadowbone.fx after you have installed the beta.

Additionally, we are working on the help this upgrade, so welcome reports which want more information for certain commands, for example the mysteries of SET BLENDING MODE ON, and the like. Go Code! Have Fun! Be Happy!

Web Site:

DBPro Tutorial - Scrolltexts and Bitmap Fonts by Grant Clark


So you want to have a cool scrolltext in your game? Fancy a greetings list to shout out the names of your friends and fellow coders? Need a cool way to display the credits in your latest creation? If the answer is yes, you need a scrolltext. If the answer is no, you actually do need one, you just don't know it yet.

Scrolltexts are a great way to add an extra bit of polish to your games, changing a static bland title screen into something that has a bit of movement and variation, this makes it more likely your game will actually be played after loading as the scrolltext appears to be a fairly complex moving thing and instantly attracts attention. They look professional if done properly and are actually very simple to program, in fact there is nothing remotely complex about making a basic scrolltext, well not in DBP anyway, yay.

The best way to think of a scrolltext is to think of the letters as covers on books on a fixed sized conveyer belt, with all the books moving along at the same speed, with the same distance between them. All the books on the conveyer have a special 'blank' cover to start with. As a book falls off the end of the conveyer belt it is taken back to the start of the belt and a new cover is applied from a stack of covers prepared in the order they should appear, it's then replaced on the conveyor belt at the correct distance behind the last book on the conveyer. The book with its new cover then starts it's journey back along the conveyer belt until it falls off the end again needing another new cover. Now imagine this happening for a long queue of books, each having their covers replaced after falling from the end of the same conveyer, this simple concept is used in our version of the scrolltext. The screen will be our conveyer belt and sprites will be our books. Our conveyer belt will also move at a constant rate, this makes our scrolltext even more simple to program.

Our books (scrolltext sprites) will have to have a bit of knowledge, they need to know where they are on their travels across the screen, a vertical position is also handy if you want to get more creative. They also need to know the character that is supposed to be on book cover (sprite image). We also need a string of characters (a stack of book covers in a specific order) for our scrolltext program to read through and play back.

In other words, we need 3 simple arrays, 2 variables and a string:

	scroller_counter = 1
	scroller_text$ = " SCROLLTEXT, BLAH BLAH........BLAH BLAH...."

This little lot of data will make the core of our scrolltext workings, but there's more to it than that. For instance, the contents of scroller_text$ could be pumped an item at a time from an array, this technique is used in the example / demo, you can have large amounts of text in your program using this method. If you need masses of text or changeable text, then use external text files to feed the scrolltext.

As our sprites 'fall off' the end of the screen a character tracking counter is incremented and a single character is plucked from the string at the counter position. It's the ASCII value of this character which will be used to determine the image used on the sprite. the sprite is then textured with it's new image and joins the back of the queue of letters. The letters progress across the screen till the next one falls off and the process is repeated over and over again. Once the entire string has been processed, you can simply hide all the sprites used, reset the counter and loop the scrolltext, or point to another string and have a much longer scrolltext, there's so much you can do with scrollers it amazing.

The value for the image needed by the recycled letter in the scrolltext is obtained using the following commands and is a very simple process indeed.

	Increment the value of the scroller_counter variable.
	*scroller_counter = scroller_counter + 1

	To grab the single a single letter from the string is simple using the mid$ command.
	*letter$ = mid$(scroller_text$,scroller_counter)

	To get the ASCII value for this letter we use the asc() command.
	*letter_value = asc(letter$)

This value is used to look up an image that will be used as the texture on the sprite that's in the process of being recycled.

About the ASCII order

The ASCII order is a standard and allows us to 'map' values with confidence. This means that every time a certain character is processed in the string it will return the same value. uppercase letters have different values from lowercase letters (unlike keyboard scancodes). To make things easier you will find that most bitmap fonts are laid out in this order for easy processing and mapping to ASCII values generated by your programs. The font we will be using in the example code is laid out in this way, The first character in our font is actually a space, just a blank square, but it's a character none the less.

Think about this simple concept:

	ASCII 32 = space
	ASCII 33 = !

and so on through the character set.

If our first character image in the font is a space, and the ASCII value for a space is 32, and if our second character image in the font is a ! symbol, and the ASCII value for that is 33. Can't we just start our individual images at number 32 in our program? or use a simple offset value? YES!!, Yes you can. That's the whole point of the font being in ASCII order. When the program says it returns value 65 for the letter 'A' for example, you can actually have the letter 'A' image at that location, or offset by a sensible value, i.e. 65 + image_offset_value. For the purpose of the demonstration program an offset has been applied to cover this feature. Using offsets allows the use of multiple fonts to add more impact to scrollers.

Armed with the information you have, you should now be able to begin experimenting and make a start programming your own scrolltext system. it's really easy when you know how. Check out the example scroller in the tutorial zip file and then load up the source for a better insight into scrolling message systems. More important is the fact the ASCII value system can be used to control any kind of bitmap font based text as long as the order in the font is correct.

Special Thanks to Steve (batvink) for making that wonderful image splitting function and saving us loads of headaches with image alpha.

Download Tutorial: (3.7 MB)

FPS Creator News

Signs II

Signs is a utility that allows FPS Creator users to add their own textures into their projects quickly. Signs DOES NOT do anything you couldn't do manually, it just does it really fast. Signs will take an image you load, resize it, create a 64 x 64 fpsc image and place all the files in their proper directory in a matter of seconds. Signs II continues with the same easy to use interface and expands to allow you to add custom textures for Floors, Walls and Rooms. Load a picture, select a frame, save it and you now have a framed portrait to hang on a wall inside of FPS Creator. And the best part is I am giving it away to all FPS Creator users at no charge. So get out your digital camera and your copy of FPS Creator and have fun. Read More

FPS Creator Resource Site

A new FPSC resource website has been opened by JohnG747: "If anyone would like to help out with stocking the place up with resources it would help. I've added a Forum and Online Chat Area so other FPSC users could get help and quick answers if anyone's hanging around. If anyone would like a banner of there work or website I'll add it to the banner rotation free. Just drop me some feedback. Also would like someone to help MOD the forum. Visit soon"

Royalty-free techno-style Music Pack released

Decane released their Music Pack 3 with three new high quality techno-style soundtracks for 4.95 USD. The songs are royalty-free and can be used in any commercial or non-commercial projects like games, multimedia applications, photo-shows, presentations or even in movies or web applications. On the website they provide 2 minute demo samples for each song in the Ogg Vorbis format as preview what is contained in the Music Pack 3.

Magic FPS

Magic FPS lets people create room and ground segments very quickly from any textures they like. Just click 3 buttons to select your outside/inside walls and floor/ceiling textures. Rotate and zoom an instant preview --when you have what you want click Save and you have a custom FPS Creator segment complete with icon ready to use in the editor. Free non-saving demo available. Full version is $14.99 and comes with 30 original 512x512 tga room and floor textures to get you started. Check it out at

Please note that The Game Creators do not support, or endorse, any product sold via 3rd party web sites. We present this information here for your own use only.

FPS Creator is available today priced $49.99 / €43.46 / £29.99

Web Site: //

Computer Camps

Located at Bentley College in Waltham Massachusetts, Emagination Game Design is a new two-week overnight program providing an intensive survey of video game design and development. The program is a perfect pre-college introduction that will help participants discover and refine their skills, interests and goals.

Program Curriculum

  • Learn creative and technical skills using software from The Game Creators Ltd
  • Join a Development Team as—Graphic Designer, Programmer, Level Designer, Audio Artist, Story Writer
  • Build a playable video game
  • Present the game to industry experts for review, feedback and awards

Program Highlights

  • Intensive personal instruction. Average six participants per instructor
  • Hands on work developing a video game
  • Tour a Boston area video game design company
  • Industry executives, university professors and instructors present relevant industry topics each weekday evening during Inside Gaming
  • LAN and console gaming tournaments after 8:00 pm

Program Benefits

  • A playable video game
  • Proficiency using sophisticated game design software
  • A foundation of technical and creative skills
  • Experience working with others on a development team
  • Pre-college experience at one of the country’s premier wired campuses
  • Exposure to top video game industry executives and experts
  • Valuable introduction to creating entertainment products for a $13 billion industry
  • Graduation certificate
  • New friendships and an unforgettable summer experience

Check out Emagination Game Design at
Space is limited and spots will be filled on a first come first served basis.
Have questions? Email or call toll free 877-248-0206

Web Site:

Cartography Shop v4.1 importer for DarkSDK

This archive provides the static .lib file to link with your DGSDK applications, and the header file. Compiled using Visual Studio.NET 2003. It also contains the compiled example with the room map and textures which is contained in the Resource folder.

Now this version does not contain any documentation since the header file pretty much describes all the functions available, but suffice to say, they are practically identical to the ones in the DBP version except for a few minor differences. First off, property functions return strings as consts, so don't go casting them to modifiables and tampering with the values as this will more than likely b00m your app. All functions are prefixed with 'csm'

If you're a hardcore C/C++ veteran, this stuff should be pretty straight forward. The DBP documentation is available online from my website, so if you know the name of the function you need help on, just find the appropriate DBP equivalent on the site and it'll describe pretty much what the library function does.

Lastly... this is a free distribution. Josh has had 3D World Studio out on the rampage for some time, and this pretty much surpasses Cartography Shop in every way possible, so no need to keep cooking the same meal! Enjoy folks!

Web Site: Forum Thread + Download

Driving Test Success DVD

Focus Multimedia are set to release the Driving Test Success range of products into the interactive DVD market. The Game Creators are pleased to announce the release of the Driving Test Success Practical iDVD title. This iDVD title accompanies the massive selling PC CD-Rom title of the same name (also developed by TGC). Releasing DTSP on iDVD covers the non-PC owning market sector. Driving Test Success Practical is an extremely popular software title in the UK, regularly topping the charts and selling hundreds of thousands of units.

News Cutting: Read the Press cutting

Tile Scrolling Tutorial by Mike Shah

Tile Scrolling

Ever wanted to create a tile scrolling game in DBPro? As exemplified by Mario, Sonic and Commander Keen, tile scrolling is a 2D platformer staple and Mike Shah takes us through the whole process, from start to finish. In this installment he's adding pixel perfect collision, enemies and adding a user interface.

This mammoth 18 page tutorial includes:

  • Setting up the interface
  • Adding a small debugger
  • Adding enemies
  • Pixel Perfect Collision Theory
  • The full game engine source code
  • The full tile editor source code

Our apologies to Mike for now including this excellent tutorial last month. You can download the whole package which includes the tutorial in various formats (Microsoft Word, HTML and RTF), all of the media you need, the source code and two EXEs. Just add DBPro and enjoy!

Download Tutorial: (9.6 MB)

From the Forums

As the forum soars towards the 800,000 post mark we take a moment to highlight some of the more interesting and quirky threads out there.

Worm Hole
This is a DBPro version of the Atari classic Millipede. Although there is nothing to play, there is a great video to watch and you can see it uses Grant Clarks Pyro particles engine really well! [ Read the Thread ]

Lunar Lander
Rics Coding Challenge is quite famous on the DBPro forum. The new challenge has started and this time it is for a Lunar Lander clone. [ Read the Thread ]

Gardening Game
Well here is something a little different - a gardening game for a college project. The artist needs a code to help. Usually we just delete 'team requests', but this one is quite cool and original - so it can stay! (plus it helps that the artist is rather good) [ Read the Thread ]

Dog Fighters 2
Think Starfox, but remove the fox (and that oh-so-annoying toad), replace them with far cooler looking dogs, add some vibrant space battles and you've got Dog Fighters 2. It's looking nice, hope they finish this one off well, check it out. [ Read the Thread ]

This is some serious hardcore DBPro coding. A full-on lightmapper coded purely in DBPro. Lovely screen shots, lovely code structure. Superb stuff (btw just go to the web site linked to in the first post, the author has sort of borked up the original thread a bit, but fear not, it's all there on his own web site) [ Read the Thread ]

Compiler Compusize
What a great idea! How to inject some exercise into your programming schedule ;) (you know, that thing you do when you leave your chair) [ Read the Thread ]

Announced on the forum was the closure of the MunkeyNuts forum. This forum is the one that evolved from RGT (Real Game Tools), which then became LLRGT (Long Live Real Game Tools, somewhat ironic), it then turned into MunkeyNuts and now that is gone, and it's replaced with: Coders Turf. There are some fine forum peeps there, so check it out if you'd like another forum to hang on:

You can find our forums at:

20-Liner - Space Weaver by Ric

20 Liner Winner

I like this game. It's looking really good visually and it's fun! You control this spaceship, And you need to avoid lines, in a tunnel you're flying it. I also like the controls in this game. You control the spaceship with your mouse, and accelerate on the left mouse button(and slow down on the right). It's a great little game and you should go check it out.The author of this 20-Liner has won any of the DB Pro expansion packs, just email us to claim your prize. Thanks to The Nerd for the review.

Download the 20-Line code from:

This months winner

Each month we award one lucky subscriber a free copy of DarkBASIC Professional. The winner this month is: bendrummond11@???????.com
Just email us with your address details and DarkBASIC Professional will be in the post to you.


Share your product / project news with over 12,000 active games developers!
If you have something you'd like featured in a future issue then please get in touch and include as much information as possible (including where applicable: screen shots, URLs and zip files). The deadline for Issue 39 is March 30th.

Famous Futurama Moments: "I dreamt I was in a place of 0s and 1s and all of a sudden... I saw a two! *whimper*"
(C) Copyright The Game Creators Limited 2006