editorial / april 07

Issue 51 cover

Welcome to another packed edition of The Game Creators Newsletter. Amongst the offerings we have for you this month, there is news of the Official TGC Convention to be held later this year. There are various updates to your application suite, previews of upcoming features, excellent games releases and more to boot.

Red Nose Day has been and gone once again, providing mirth, merriment and life-saving support to many needy causes. The Game Creators Red Nose Day Game Pack was part of this success, so far raising just over $300. You can still donate and download the games until the end of April, and if you haven't already I recommend you take this opportunity. I am proud to have played my part. Fortunately, despite my time constraints, I managed to contribute a game from my archives.

Game design can benefit from the same principles as the design of business applications, and the three-tier model. Tier one is the data; the data has no concept of what it is being used for, it's merely a repository of related information. The second tier of logic uses the data to reconstruct the information into useful packages and create meaningful scenarios. The third and final tier is the presentation layer. This is what the user sees and is generally their only point of interest. Each of these tiers lives an independent life, and can change without impacting on the others.

Thanks to this model, I rebranded an old game simply by changing tier 3. Most of us recognise this as "skinning", and is one of the considerations you should think about from the very beginning. As I found to my advantage this month, it will save you hours of coding time in the future.

Until next time,

Steve Vink.

A note from Rick Vanner, Financial Director

Speculation - and to some extent, a degree of irritation - has been noted in the forums regarding the repositioning of the long-established Google adverts. In an attempt to subdue the discussion, I feel it is only right to explain this decision.

For a long time, we have provided free upgrades to our products. Whilst we see this as the way to do business, it can from time-to-time put a strain on the cashflow. Rather than delay, or dare I say it, charge for upgrades, we have chosen to find alternative ways of funding the upgrades you have become used to receiving for many years now.

VideocastObviously, we realise that the best way forward would be to consult our loyal user base. So we urge you to click on the image opposite, for a short videocast and to vote on your preferred resolution to this short-term problem.

contents

(1) Convention (2) Nvidia Comp (3) DBPro News (4) Resources (5) Jeku Interview (6) Dark Physics (7) Echoes (8) DBPro Fundamentals (9) FPS Creator X10 (10) FPSC News (12) DarkGDK .NET (13) Lee's Tip of the Month (14) PlayBasic (15) From the Forums (16) Outro

'07 - The Official Game Creators Convention

TGC Convention 2007

2007 sees the first Official Convention of The Games Creators, to be held in the UK later this year. This follows the spirit of unofficial conventions organised for many years by Nick Kingsley, for which we owe our gratitude. The date is set to be the weekend of the 27th and 28th October. The venue is established as Hinsley Hall in Leeds, West Yorkshire. It's been chosen for it's central location and accessibility, as well as the beautiful setting in 4 acres of grounds. This is a dedicated conference and pastoral centre (for anyone considering a liturgical vocation!).

Hinsley Hall

There is obviously much to organise, and more information will be published as it becomes available. Suffice to say, the TGC team will be there - Lee, Rick, Mike, Dave and Paul. This is your chance to meet the people behind the products and get a unique insight into the future of the company and where they expect the gaming industry to be heading over the next few years. You may also have an impact on things to come, Lee is very receptive to the ideas of the community!

As well as confirming the venue and dates, we also have details of the cost of the event. An all-inclusive price has been negotiated, and if you take advantage of it all you have to do is find your way there and back. Here are the two options:

Convention Day Rate - £29.50 per day (£59.00)

Convention Attendance
Tea/Coffee/Biscuits throughout the day
2-course Buffet Lunch

Full Weekend Rate - £170

Convention Attendance
Tea/Coffee/Biscuits throughout the day
2-course Buffet Lunch
Accommodation (Friday/Saturday evenings).
3-course, self-service Evening Meal (Friday/Saturday)
Breakfast (Saturday/Sunday Morning)

Most of the accommodation is en-suite, but it is advisable to book early to guarantee your room. Other parties will also be using the facilities, but we have announced the convention early to give you the best opportunity possible.

You can download the booking form here, and return it with a small deposit to reserve your place. We are very excited about this event, and hope that you will take advantage of this unique opportunity. Find more details and join in the discussions on the forums.

Nvidia Competition Results

Nvidia Competition Results

After much deliberation, we are finally able to announce the winners of the NVIDIA sponsored FPS Creator and Dark Basic Professional game making competitions. Without further ado, here are the winners:

Dark Basic Professional Winners 

nvidia - Final Exodus1st - Final Exodus
by Carlos Wilkes

Wins: Intel 680i Mobo, Intel Quad Core CPU, GeForce 8800

The game play at first has a bit of a learning curve. A stronger manual would have helped greatly, but once understood this is a very professional feeling game, with only a few flaws. You can play the game RTS style or take direct control of a ship in your fleet. You can research new technologies, build new ships and capture new systems. The more you have, the more resources are mined from the planet.

These are the cleanest graphics I've seen in the whole competition - high resolution, no lagged edges, no compression marks. The models are simple yet effective; the Star Wars style firing works well. This is a great example of how good art and media really improves a game.

The shaders are deployed very well. They are not overly in-your-face, rather subtle enhancements of the existing graphics. They are a great example of how shaders should be deployed in a game. The sound and music work well together, creating the classic feel associated with space games of this type. This is a very polished game. With more development and extra features, I can see this game hitting the shelves. Perhaps some story and character interaction would help aid this game further.

In Conclusion

An excellent game and a powerful example of what DarkBASIC Professional can achieve with good solid media behind it.

Youtube_logo_sml.jpg

Watch Preview Video -

  

Nvidia - Illusion of the Tower2nd - Illusion of the Tower
by Guillermo III B. Roa

Wins: Intel 680i Mobo, Intel Quad Core CPU, GeForce 8800

A good solid attempt at an anime style game, with Final Fantasy style characters, weapons and spells. The author creates a good visual setting for game play. The combat can be a bit erratic, and a bit long-winded; but it works well given the style it's trying to capture. The combat is varied with a choice of magic spells, basic sword swings, and the ability to fire your gun, which is built into the sword. The ability to jump up once, then twice against a vertical surface is very much in keeping with Japanese cinema. Cut Scenes to advance the plot are presented with subtitles rather than dialogue.

The levels are somewhat simplistic, being made up of blocks, but it fits the surreal feeling that the game tries to put over. The character animation is first class, and the monsters show a great deal of imagination. The impact effects work incredibly well.

The shader usage adds to the surreal anime feeling. The screens blurs with camera and character movement alike. The sound effects and ambient sounds work well. There is a good deal of polish to this game, from the starting flickering text, to the beginning intro of the game, as well as option menus and cut scenes.

In Conclusion

A great attempt at an Anime game. The surreal feeling, combat, magic and other effects work very well together. With cut scenes to help push the story, this is a brilliant piece of work, and one we hope to see developed further - in fact it could be a hit if enough time and effort it spent on it.

Youtube_logo_sml.jpgWatch Preview Video -

 

Call of the Dragon3rd - Call of the Dragon
by Jezrun Bowman & Dienve Boham

Wins: An SLi Motherboard and 2 x 7950 GX2 cards

By far the most playable game in the whole competition. With lots of Bruce Lee style high kicking action this fast paced, enjoyable game is well worth a try. With many different moves to choose from, a wide selection of different enemies and a scrolling location, this game is a great example of what DarkBASIC Professional can do.

The animation stands out the most in this game, while the models and surrounding graphics are not very high in poly count or texture resolution. The kicking, punching, and even some slow motion moves make this the best example of animation in the whole competition. The use of sprites at impact points works well. Overall, this is a well planned out game.

The shader usage isn't bad, looking mostly like a full screen bloom, and a blur effect that works well. The selection of sound and music is well planned and executed. The menu is first rate; there are settings to choose from, and a video that requires some work, but sets down the background story effectively.

In Conclusion

Exciting gameplay, with reasonable graphics and a good sound track. Possibly the first two stages are too easy to complete. However, without playing the later stages due to a lockout feature, we can't really tell if the game gets harder or not. Either way this is a great demonstration of what DarkBASIC Professional can really do, and I hope to see this game go commercial in the future. The only issue for the author will be negotiating the rights to use the character names!

Youtube_logo_sml.jpg

Watch Preview Video -


Nvidia - Nanoid4th - Nanoid
by Andrew Vanbeck

Wins: An SLi Motherboard and 2 x 7950 GX2 cards

A classic retro remake, this game offers all it's previous incarnations did, plus a few new imaginative features of its own. From metal bricks you can't break, to glass bricks that let your ball pass right through, to bricks with hidden power ups, this game is loaded with features and lots of different levels to choose from. Although highly enjoyable to play, some levels are far too easy to beat. To add spice to the game play, the later levels include insects and bugs. These include wasps that fire at you, and if you get hit too many times cause you to lose a life. Responses are affected by hits from the opponents. When reaching the Skull level, maggots fall from the arena onto your pad, again slowing down your response time.

The graphics for this 2D game turned 3D are impressive, with exploding bricks raining debris from above, a wide range of explosions and animated sprite particles, streaks on the ball, and many different special effects for power ups. The graphics are certainly varied for such a simple game concept. The author packs in a lot for such a classic game.

This game is simply loaded with shaders, which are used to create some very funky effects. The music and sound effects compliment the game very well. The polish that has gone into this is very impressive; the menus are graphically impressive, and there are many options to choose from. Most importantly, the overall feel of the game gives the impression that the author has put a lot of effort into it.

In Conclusion

A well rounded classic retro remake, that keeps the original feel of the game, and also deploys new technologies available to DirectX 9. Accomplished with taste, and good judgement, this is a great remake that remains faithful.

Youtube_logo_sml.jpg

Watch Preview Video -

 

FPS Creator Winners

Nvidia - Beyond Life1st - Beyond Life
by Matthew

Wins: Intel 680i Mobo, Intel Quad Core CPU, GeForce 8800

The first level, and it appears only level, of the game is very professional. It reminds me of Sin in graphics style, an FPS from the past. The graphics are a good balance of performance versus quality. The use of physics and particle effects is very well done, as is the dialog setup on the trigger zones. It's a good thing the game ends quickly, else I might not have got around to testing the others. It definitely left me wanting to play more of it, and is a great example of what FPSC in capable hands can do. There are some minor flaws in the level design, where it is possible for the character to get stuck, but beyond that, it's a very solid attempt that left me wanting to play more.

Most impressive is the way the game author has managed to re-use already explored areas, re-introducing new events and explosions. 

The author has done a great job using mostly new textures, models and interesting effects - the TGC team have been very surprised how far he has managed to push the FPS Creator engine. Well done!

Youtube_logo_sml.jpg

Watch Preview Video -

 

Nvidia - Sight Demo2nd Sight Demo
by Johnathan Smit

Wins: Intel 680i Mobo, Intel Quad Core CPU, GeForce 8800

A black and white game, with creepy bits. This is an excellent attempt at a B-Movie style game. You are working in a complex, and there has been some kind of accident - you can only see the color red and no others. This is highly effective, with the occasional pool of blood, and at one point a trail of bloody footprints really does add to the creep factor. The ambient sound is perfect, it's subtle and not overpowering, while adding to the atmosphere perfectly. The enemies are tough, but not too tough, and it definitely gives a need for tactics. There are also dark figures standing around; if you approach these too closely your health drops alarmingly. There's a few boxes, and crawling-over pipe puzzles that tempers the speed of your progress without being overly frustrating.

The author makes exploring every nook and cranny rewarding by hiding stashes of ammo and health packs. These packs are also subtle, it's easy to miss them if you just rush around, and it's easy to die if you just rush around too. The NCP's are good. They stand around in bio-hazard suits and give the impression of being possessed. The only small flaw in the design is a drop down area where you can get jammed between a pipe and the wall. But it's not too hard to free yourself. Overall a very creative, well designed game.

The only displeasing aspect is that it puts a lot of questions in one's head, with clever uses of full screen graphics at trigger points, and radio communications, but doesn't provide any answersl. The game does have demo in the title, but from the first level provided I can see myself actually paying for the game. A solid effort with much to award it.

Youtube_logo_sml.jpg

Watch Preview Video -


Nvidia - Meat3rd - Meat
by John Ribbins

Wins: BFG GTX 8800

Meat obtains a certain amount of phsycological thrill with a series of well crafted videos. The videos are the best part of the game, and most powerful element I've seen in the whole competition - definitely mildly disturbing. However the graphics don't reflect the concept. The low polygon axe and arms could be better and some of the gun animations are not quite polished.

This is a creepy game that has you edging your way around waiting for that next unexpected gore character to jump out at you! The final boss creature bursts though a wall at you, which is a really nice touch.

The use of cut scenes at specific trigger zones is a good concept, and provides the player with a combination of mildly disturbing imagery, and preminitions of what's coming next. You can derive clues from these to aid game play. The audio is really just a few monster sounds here and there, and a standard FPSC ambience that doesn't aid from the creepy feeling. It does have some rough edges and could have won if more work had been done on it. With improved graphics this could rival the sort of horror in films like SAW!

Youtube_logo_sml.jpg

Watch Preview Video -

 

Nvidia - Shallow Grave4th - Shallow Graves
by Chad & Eric Walker

Wins: NVIDIA 7950 GX2

This game has great level design and environments. The sheer amount of custom graphics, and the level design is only let down by two things. First, midway through there is a level glitch that sees the player getting stuck for no apparent reason. However, jumping and a little patience will free you. The second is the ending sequence, which I suspect should have lots of bad guys attacking when orders are given to protect the truck, along with a great deal of ammo. In reality though the bad guys just stand around and let you dispatch them with no reaction, giving the game a massive anti-climax.

The graphics are professional, polished and realistic. You can believe you are in a war-torn village, conducting special ops. The briefing voice is nicely done, the soldiers voice isn't perfect, but acceptable. The player operates with just one weapon throughout the game, although the weapon is very nicely modelled. It is only let down by the zoom button, which overlays a targeting graphic that doesn't have enough alpha so it's not much use!

Uniquely however there is a map provided, as well as a night vision feature, and an objective panel. The only use of physics consists of a few crates you can blow up. The enemies are difficult, and deal out a lot of damage if you are not careful, lending credence to tactics such as peering around a corner, and edging around to gain a few extra shots before the AI can respond. There's some attempt at puzzles by seeing the player crawl though narrow areas of blown-out walls, but it's immediately obvious what you have to do. All in all, with extra levels, a few more puzzles to temper the players progress, and a final action sequence that actually works, I can see this being a great, professional game that's worth selling. A very good entry and one I enjoyed testing.

Youtube_logo_sml.jpg

Watch Preview Video -

 

Nvidia - Triggerman5th Triggerman - Johnathan Smit

Wins: NVIDIA 7950 GX2

This hitman game has been well thought out. It's not a rush-at-em firing, but a more thoughtful and careful game. There's not a lot of health packs around, and the AI is fast to respond. The best tactic is to edge around corners and lean out to get a few free shots before the AI can respond. One policeman can do serious damage if you're not quick enough. The police are stationed in logical positions as well, not in the middle of rooms waiting to be picked off but covering staircases, around corners, and on high ground. You need to look out, and check everywhere.

The extra health packs are not in obvious positions so again it's worth exploring the whole map. The graphics themselves are a bit basic and would have benefited greatly from some extra light mapping. The aim of the game is simply to collect briefcases stacked with your cash, and kill the police informant. A good all-round game, that doesn't excel in any one aspect, but has balanced, good gameplay, with nice sounds, reasonable graphics, and a well thought-out level design. The game makes use of locating keys, and box piling puzzles to locate additional health and ammo. One minor interface problem is the use of the zoom and pickup key being both assigned to the right mouse button. You can be standing behind a pile of crates, zoom onto a target and end up demolishing your cover.

The game ends with your arrival at a window, a full screen message appearing, telling you zoom in and shoot the target by taking out both windows. It's a satisfying end, and again very logical. It's much more rewarding than to walk into the room and simply shoot everyone up-close. With extra maps, improved graphics, and some voice or video briefings, this would be a professional game worthy of purchase. The author has even taken the trouble to produce a PDF manual.

Youtube_logo_sml.jpg

Watch Preview Video -

 

Congratulations!

TGC and NVIDIA would like to congratulate the winners and to also thank all the author game makers who entered these competitions. The games have been fun to play and judge and we hope that you continue to develop them further. Not everyone can win these top hardware prizes but TGC have decided to offer every person who entered a FREE $30 voucher to use on the TGC web site - we'll send these onto you soon by email.

DarkBASIC Professional Round-up

DarkBASIC Professional Header

Upgrade 6.6 

The new U6.6 update is being worked on by the TGC team to reflect some important fixes that have been requested by the community. Here are the key significant updates. 

The update is due for release in April.

Enhanced Animation 1.1

Enhanced Animation 1.1Enhanced Animation 1.1 has been released. This is mostly an optimization update to improve the performance of the tool. There have been some internal chages that add overall speed. In addition, there are five new commands to help make the process more efficient. These allow quicker loading of duplicate items, and disabling of limbs that are not affected by the animation. Finally, a new example program is included that demonstrates how to work with animation data files. The download for existing owners in in your Order History. If you wish to purchase Enhanced Animation, head over to the product page now.

Resources for DarkBASIC Professional

There are many ways to make your coding life easier. Here we have a round-up of useful resources, from projects worth referencing, to tools and media.

Edit, Copy, Paste - Alternative Code Editors 

DBC Editor

DarkBASIC started life with a humble but functional code editor that reflected the name of the product. I remember using it for the first time, and as a seasoned programmer I struggled with the simplicity of it. At the same time, I loved the fact that it drew me into the atmosphere of a different type of programming I wasn't familiar with. An interesting fact about this IDE is that it utilises DirectX version 3!

Today, in DarkBASIC Professional, there is a range of editors, from the official product to a number of alternatives with additional features. Here is a quick rundown of just a few of these.

Synergy IDE
Synergy IDESynergy is developed by John Youren at Digital Zenith. It contains many features geared towards DarkBASIC Professional development, assisting with code accuracy before you compile. The latest update (1.1.0) has just been released, ensuring that amongst other things, it is compatible with Vista and X64 operating systems. It is already configured to work with other languages too, including FPSC scripts and Omega Basic.

John is currently working on the requests of the community. In development right now is a DB Pro to GDK conversion utility, enabling simple translation of one language to the other. It's in the beta stages at the present time, and more news will follow shortly.

Synergy is free for non-commercial use - //www.thegamecreators.com/

Blue IDE
Blue IDEThe Blue IDE, by Robert Knight, is a long-standing contribution used by many developers. It has passed through several incarnations, resulting in a stable editor. It includes the features you come to expect from a development environment. In addition, it has some extra features including a media browser and code library.

The current version, including source code for the editor itself, can be found on Sourceforge - http://blueide.sourceforge.net/

Codesurge
CodeSurgeCodesurge is the new kid on the block, but don't be fooled into thinking it's immature. Hyrichter states that stability comes first and foremost, and yet it still manages to include a good number of additional features. The editor is the result of one of the most successful WIP threads on the forums, with many of the features being a direct result of community feedback.

The forum thread and download can be found at http://forum.thegamecreators.com/?m=forum_view&t=78701&b=8

  

Multiplayer Projects

Multiplayer games are often discussed, but seldom come to fruition. In addition to the standard commands, there are alternatives from other developers, giving you plenty of choice to suit the way you work. Two games have appeared lately that utilise this functionality, and show that it can be successfully implemented.

ruccus_gibble_tn.jpgAdam Ice (aka Ruccus) has been working on a "medialess 2D sidescrolling online multiplayer fighter game". If that isn't a big enough mouthful to contend with, it has been affectionately named Gibble Blops. As well as playing against real opponents, you can make use of the in-game chat facility, which is a nice touch. Although it's still a work-in-progress, it has been successfully tested with 5 players. A small number of forum users have downloaded the game to help test, provide feedback and generally have fun, and I'm sure the author would welcome more volunteers. He is currently using the Tempest plugin, but at the same time is keeping an eye on Multisync and the Winsock 2.2 DLL too.

Forum thread - http://forum.thegamecreators.com/?m=forum_view&t=102236&b=8

Chess by MnemonixThe second project to utilise multiplayer functionality is Chess, written in DarkBASIC Professional by Andrew (Mnemonix). He has used a third party plugin for the multiplayer, !!!

 

Forum thread - http://forum.thegamecreators.com/?m=forum_view&t=100811&b=8

If you are working with a multiplayer project, we encourage you to share it with the community. The Work In Progress board is one of the most valuable feedback resources, and often underestimated as a great tool in your development box.

Game Music

Some game components get easily overlooked, yet can make or break the atmosphere. Music is one such element. This month two artists have come to our attention, you might want to peruse their work for suitability and ideas.

DaZ Dicks is a New Media composer, with games music being just one string in his bow. He has a profile over at The Great Games Experiment, and is currently working on a Horror Music Pack for release in 2007. Click here for more information.

Liam Bradbury (Epithika) has built a collection of tracks suitable for games, taking the approach of non-exclusive rights for a lower cost to the user. There is a forum thread dedicated to the discussion of his work, and links to some samples.

Learning Resources 

Graphic Design for game programmers.
Every once in a while, a cheap or free but invaluable resource surfaces; this one fits into the free category. Although it's described as a 2D resource, it covers the basic concepts and theories that apply to all graphic design, including colour palettes, file formats and managing your image assets. And at 500 pages, it's no small piece of work!

Download this resource from the Major Geeks site -http://www.majorgeeks.com/download5442.html

The Gnomon Workshop.
I've been referred to a particular site a couple of times this month. It's always good to get a review from somebody who has experienced a service or product, so I'll let Steven Kennet (aka Tapewormz) from the forums introduce you to The Gnomon Workshop:

"The Gnomon Workshop offers training/technique DVDs and DVD ROMS for as little as $29.95 USD. I particularly found the Scott Robertson, Feng Zhu, and Ryan Church DVDs to be just what I needed as a 2D artist. They're for beginner and advanced artists alike. They cover a lot of ground. The Concept art is perfect for DarkBASIC game creators! There's a lot of 3DSMAX, MAYA, XSI 3D instructional material that covers modelling, texturing, animations, and scripting. They also have monthly contests where you could win up to 40 DVDs of your choice from their store."

http://www.thegnomonworkshop.com/

 

Northern Exposure

Northern Exposure 07 is a major new UK conference from GameHorizon and Game Republic for the UK games industry. Aimed at commercial developers, this may be the insight needed by a number of developers to make the move and meet people inside the industry.

Date: Thursday 10th May
Time: 11am-6pm
Venue: York Racecourse, UK

Northern Exposure 07 is your chance to find out how the latest industry developments will enable you to exploit more flexible business models, launch original IP directly to market... and put creativity right back at the heart of your games.

The theme of this inaugural conference is emerging opportunities for UK game developers and features a packed programme of insightful keynote speeches and debates from the industry's big names on:

For full details, visit the Northern Exposure website.

An Interview with Jake Jensen

The TGC forums are home to a wide range of people, including the odd professional games programmer here and there.  Jake Jensen, aka Jeku, is one such person.  So this month we've tracked him down and asked him to tell us what it's like to work in the industry.

Please introduce yourself

My name is Jake Jensen. I am a 26 year old programmer from Vancouver, Canada, and I have a degree in Computer Information Systems. I work for Electronic Arts in Canada as a software engineer, specifically for front ends - programming menus, buttons and animations.

What do you consider to be the "perks of the job"?

Honestly speaking, the best perk has to be seeing my name in the credits of published games. That and all the free coffee!

And how about the less glamorous bits?

If you want to work in this industry, you will have to put up with overtime during a product's crunch time (final phase), no matter who you work for. However, being in the industry and knowing I have direct control over part of a successful game makes it all worth it!

How does DarkBASIC fit into things, considering your day-job is working on professional games?

For my personal side projects, DBP has been a phenomenal prototype machine. For example if I have an idea for a cool gameplay mechanism, I can whip it up in DBP at a far faster rate than in an industry language like C++. If it turns out to be boring or not fun, I don't feel like I've wasted a lot of time and energy, and I can move onto something else.

When did you start with DarkBASIC Professional?

WordzapOne day back in 2003 I was reading Slashdot and found an article on DBP. After doing a quick Google search I visited the TGC site and a few of their competitors. After downloading the demo and trying a few things out, I instantly knew without a doubt that this was the best product of its kind. There are other rapid prototyping applications that cost tens of thousands of dollars, so DBP was the perfect price point for me.

What was your first ever computer?

My dad picked up a few Commodore 64s when they were first released, and when I was about seven years old I began programming in its built-in BASIC. After that we had an Atari 1040 ST where I dabbled in GW-BASIC for a bit.

Do you work alone or with a team?

I mostly work alone on my projects, and draw in the help of artists when I need them. For WordTrix 2.0 a graphic design artist named Aegis contacted me out of the blue offering to do all of the art, and from then on I've relied on him as I can admit I am not a graphic artist in the slightest!

What is your favourite genre of game?

I've always enjoyed adventure games since first discovering Space Quest in the late 80s. That genre has slowly been dying, so I've been getting into puzzle games (Meteos, Baku Baku Animal) and FPS' (Half-Life 2, Halo). Unfortunately (or fortunately!) I am a very fickle game player, and the guys at work know me as the one who will play most games for 5 minutes before abandoning them forever! Only a few gems can keep me entertained for longer.

Do you have a design "formula" that you stick to?

Kind of. I used to go to a coffee shop by myself with a pad of paper to sit and think about puzzle game ideas, but that tended to not work. Nowadays ideas will come from nowhere. I will be playing a game or trying to sleep at night and something will just come to me. I'll code up a quick and dirty prototype in DBP or PlayBasic and things will either stop or take off from there.

What is your secret to completing projects?

WordTrixGiving myself a firm deadline that represents something meaningful in my head. WordTrix 2.0 was released on my wife's birthday, so it wasn't an arbitrary date. I also found it helpful to announce and release versions of the game to forums to get feedback and inspiration, but only after the game was already nearly complete.

How many incomplete or abandoned projects do you have?

Oh gosh, too many to count. For me, indie programming is a hobby, and if it starts becoming like real work, I will shelve the game and start something else. You can always keep old projects around for source code reference!

Are there any new features you'd like to see in DB Pro?

Honestly I can't think of anything at the moment. There are tons of awesome third-party DLLs for the language like Styx, Multi-sync, etc, so it's continuously getting more powerful.

Do you have any tips that you can share with the community?

Don't worry about reusing source code from different projects. In a professional situation your boss would most likely not allow you to reinvent the wheel, so why do it on your personal projects? If somebody releases a DLL that saves you 20 hours of tedious time and is a good price, it is probably worth it! You may not think of it this way, but your time is valuable. Your peers will see code reuse as a strength, not a weakness.

What else do you have in your toolbox?

I use Hyrichter's excellent CodeSurge for my DBP IDE, Paint and Paint.NET for my art, Milkshape for my 3D work, and Reason for my music.

Are you working on anything right now?

In my real job I'm working on the Madden franchise, and at home I've been fooling around with Nintendo DS homebrew programming. I am unable to compete with my employer for obvious reasons, so you won't be seeing a commercial indie project from me in the foreseeable future!

And your final word?

Some advice I've read from a fellow programmer and agree with is to never announce a game too early. A good way to gain respect is to announce a game when there's a near-final version of it running or when it's already completed! Showing off a rotating cube on a matrix after 10 minutes of development will get you nothing but negative feedback, and there's a good chance you'll lose interest in finishing the game in the end. Good luck!

You can visit Jake's site and find out more about his games here - http://automatongames.com

Community driven updates to Dark Physics

Dark Physics

Update by Mike Johnson
I have recently been spending some time on the update for Dark Physics with the intention of adding some new commands and correcting existing problems.

Physics Cloth ObjectOne of the first areas I have looked at is the "phy make cloth from object" command. This was going to be in the original release but due to time constraints it didn't make it. Many users discussed some fantastic ideas that this could be utilised for, and now this command is finally in place - the results are pretty neat. dp_drape_tn.jpgBy using this command you can make much bigger cloth objects, far more interesting than the usual grid. For example, in one test I placed a sphere into the scene and created a cloth object for it. I then dropped a box onto the sphere, creating a large indentation. It was an interesting effect and turned out well. In another test I made a large model grid of size 100 x 100, with 50 x 50 subdivisions. This grid was dropped into the scene and was draped onto a box, again creating an impressive effect. This extra command means that cloth is much more flexible, with huge potential.

Another area that I have looked at is collisions. The command set of the current public release is missing some functionality. As an alternative to the current commands I have added another set, that allow you to check for collisions in the same way DB Pro does. The new commands are:

integer = phy get collision ( objectA, objectB )
integer = phy get collision count ( object )
float = phy get collision friction force x ( object, index )
float = phy get collision friction force y ( object, index )
float = phy get collision friction force z ( object, index )
float = phy get collision normal force x ( object, index )
float = phy get collision normal force y ( object, index )
float = phy get collision normal force z ( object, index )
float = phy get collision contact normal x ( object, index )
float = phy get collision contact normal y ( object, index )
float = phy get collision contact normal z ( object, index )
float = phy get collision contact point x ( object, index )
float = phy get collision contact point y ( object, index )
float = phy get collision contact point z ( object, index )

This may be preferable to the existing commands which force you to check the collision stack e.g.

while phy get collision data ( )
  a = phy get collision object a ( )
  b = phy get collision object b ( )
 
  if a = 1 and b = 2
   ` objects 1 and 2 have collided
  endif   
endwhile

Other areas I need to look at include the character controller and possibly fluids. I will also be evaluating the latest Ageia SDK which will present access to some new features such as fluids in software, better hardware support, and deformable objects. 

Testing is ongoing right now, and news of the update will be published as soon as it becomes available.

Echoes from Binary Zoo

Echoes Game 

Binary Zoo is a name familiar to many DarkBASIC Professional coders. Not because of a prolific generation of forum posts, or a huge back catalogue of games. Rather, it is because the small number of games that are released by Binary Zoo are guaranteed to be of the highest standards and ridiculously addictive.

The latest Shoot 'Em Up (or 'schmup', as they are affectionately known) is Echoes, recently released and available as a free download now. It's an incredibly fast, beautifully presented, action-filled 2D game in the style of asteroids. Those of you who played their last incarnation - Mono - will be familiar with the style and gameplay already. One extra feature that has made it's way into the package is Zoo Trials. These are awards for achieving certain goals, such as reaching a particular score without being hit, or proceeding to a given level without using power-ups. So when you've played the game until your fingers are raw, you can do it all over again under different rules.

Chris Jeffels, head programmer at Binary Zoo, certainly has an eye for creating addictive games. Considering he's only owned a PC for around 6 years, the results are even more astounding. His choice of DarkBASIC Professional was the result of finding a supportive community. Today, Chris heads up a small team who put together their offerings; FKD Reality, las6 and SiN add their signature to the mix.

Echoes - incoming offensive Echoes - from the sublime to the ridiculous
Echoes - From the sublime to the ridiculous

The primary inspiration for Duo, Duotris, Mono and Echoes is Jeff Minter, and you can see his influence in the games. The necessity behind the titles is, according to Chris, realisation of what was originally a one-man team can achieve. Given the choice between 3D mediochrity and 2D excellence, he took the latter path.

Chris uses a simple methodology. Firstly, take an existing concept (after all, unique concepts are few and far between these days) and then add a twist. A solid, technically achievable idea, and 5 or 6 lines in Notepad is enough to start the ball rolling. And when each aspect is coded, removed from the specification and Notepad is empty again, the game is complete. The only other criteria is that creating the game must be as enjoyable as playing it.

Echoes, like Mono, is another step along the path of a complete game-scripting system. As such, I think we can look forward to more titles from Binary Zoo in the not-too-distant future.

Binary Zoo web presence - http://www.binaryzoo.com (Direct Download of Zip File here)

Watch the YouTube video now: http://www.youtube.com/watch?v=Hx-dveGxGX0

DarkBASIC Professional Fundamentals

Fundamentals

We continue our series on the fundamental building blocks of the language, which will ultimately produce a small library of tutorials for beginners. If you missed the earlier installments, or need a refresher, now is a good time to look back at Tutorial One (Loading Models) and Tutorial Two (Creating Primitives).

FUNDAMENTALS TUTORIAL 3 - Loading graphical images

Loading ImagesAn important aspect of creating a game is the use of images. These are part of menus, intro screens, in-game displays and most importantly they are used to texture 3D objects and models.

lightbulb.gifRun the code! (Download the project files)

Let's break down this example into smaller parts and explore each part.

Bitmaps

LOAD BITMAP "backdrop.png", 0 

The first method of importing graphical images is to load them as bitmaps. A bitmap is a holding area for an image, and there are 32 of them available to us, numbered 0 to 31. Bitmap number 0 is a special bitmap; it is the screen. In our example, we loaded our image into bitmap 0, which is why it was displayed on the screen with no additional effort required.

Try it: Change the bitmap number to 1. Compile the program and run it again. This time, the graduated background is no longer there; we now have a black screen.

What happened? We didn't just load the image into a different bitmap number when we made the change. Whenever a new bitmap is created, DarkBASIC Professional makes it the current bitmap. Any actions we perform now happen to this new bitmap until we instruct the program to return to the original bitmap (and screen), bitmap 0:

SET CURRENT BITMAP 0 

This has advantages, as it allows us to manipulate the graphics, building up montages, adding lines and shapes and various other tasks. Even 3D objects will be painted on the new bitmap. It's important to remember that we must set the bitmap back to 0 if we wish to update the screen.

Try it: Change the bitmap number and add the extra line of code to return drawing back to the screen:

LOAD BITMAP "backdrop.png", 1
SET CURRENT BITMAP 0 

Now, we can see our second image once again.

Images

LOAD IMAGE "image1.png", 1, 1 

An image is a more versatile component. It's ready to use in many different ways. Various graphic formats can be used:

We load an image by specifying the file name, the image number we wish to store it in, and also a texture flag. For static images such as the one in our example, we set the texture flag to 1. For use as a texture on models and objects, the flag tends to be set to 0. The reasons are too complex for this tutorial, but for now just remember that 3D models use a value of 0, and 2D images tend to use a value of 1.

Images, like bitmaps (other than bitmap 0), are a holding area. To use them, they must be applied in one way or another. Our example uses a simple PASTE operation to paint it to the screen:

PASTE IMAGE 1,200,150,1 

Pasting takes the specified image, and applies it to the current bitmap. As we have seen, this could be the screen (bitmap 0), or to a secondary bitmap to be used for texturing objects, creating menus or producing a user interface.

FUNDAMENTALS TUTORIAL 4 - Texturing Objects

Texturing ObjectsA 3D object in it's raw state has a non-descript texture. Certain object formats, provided they adhere rigidly to guidelines, are capable of loading a texture and applying it as part of the loading process. This was evident from tutorial 1, where the jeep was loaded and textured in one step. DarkBASIC Professional allows you to manually apply textures, and you may need or want to do this for many reasons:

The example code demonstrates the application of a texture to the primitives. This is a good example to use, as it demonstrates what is known as UV coordinates. These coordinates specify how an image should be attached to the object. In many instances, it is almost like describing how to wrap a present with wrapping paper. In more complex models, the image is divided up into many smaller pieces, which are cut out and pasted into the relevant place. This technique would be essential for a human model, for example, where the shape is extremely complex. Below are 2 textures; the texture for this example which is a simple flat image, and the jeep texture used in the previous tutorials. Notice how the jeep has been flattened and mapped onto a square image

Flat Image Complex Image
Examples of a flat image, and a more complex texture map

lightbulb.gif Run the code! (Download the project files)

The different ways in which the texture has been applied in this downloadable example are immediately obvious. As far as we are concerned, the process was identical. It is the UV coordinates of each object that determine the application:

Plain: The texture is very simply placed corner to corner, edge to edge.
Triangle: Only half of the texture is applied
Cone, Cylinder and Sphere: The texture is applied upright and across the entire shape, but squeezed and stretched to cover the surface
Box and Cube: The texture is applied 6 times, once for each side of the object.

Another aspect of this process that is important is the loading of the texture as an image:

LOAD IMAGE "image2.png", 1, 0 

The image is loaded with a texture flag of zero. This is an optimisation issue, as discussed earlier in Tutorial 3. For now, we simply need to appreciate that this is how object textures are loaded.

Try it: Use your own images to texture the primitive shapes. Place the image files in the tutorial code directory and change the command. Bear in mind that textures are best created in pixel sizes 64x64, 128x128, 256x256 etc.

Until next time,

Happy Coding!
Steve Vink

FPS Creator X10 Development Update

FPSC X10 Update

Once again we've rattled the bars of Lee Bamber's development cage and enquired as to the progress of FPS Creator X10. Although the answers came back in a very casual manner, the underlying messages are actually very exciting and anticipation grows.

Barrel in WaterProgress is swift, the engine is in great shape and huge fun to boot. We recently added Rag Doll physics to the pot, and after some tweaking the characters came alive. They fall over in a million different ways, adding huge steps forward in terms of realism, and ensuring a far less predicatable atmosphere. We also very recently added bloom and fresnel water to the pot, raising the bar on the creative angle once more. We can control the eye candy such as bloom, water reflection and refraction, soft particles, soft shadows, instancing and texture arrays. We are now adding an effects menu which will allow the individual effects to be played with, so you can see the influence of each one.

Smoke and WaterSoft particles have allowed us to enhance the smoke and steam entities of FPSC so that they appear as volumetric elements within the scene. When we started editing levels with the smoke, we realised that setting the smoke to a slow speed created an almost fog-like effect on the ground, allowing deep fog to be placed manually to enrich the level.

Soft shadows was a real challenge, given that a shadow volume extruded from a 3000-5000 polygon model produced a huge mesh from the geometry shader, and this had to be done for each object and character in the scene. The consequence of rendering hundreds of thousands of shadow volume polygons took a lot out of the performance of the game initially, and by choosing only the nearest characters and gracefully fading away the shadow to objects further away we were able to restore game speed without losing the great visuals.

Essentially, the engine is now more stable than ever, and the last traces of DirectX 9 have been removed from the build, making it a 100% pure DirectX 10 executable. From this point onwards, nothing needs to be simulated - everything we build is what you will see and experience in the final product. We are now able to work on finalizing the features that will make X10 unique, and bring the game speed up to par. Our concepts for making GPU instanced characters is very much a reality now and we can confirm the approach is working great. As we intended, we have our 50 enemies in one room, and they all have guns!

Crate and AtmosphereWe are now extending our use of texture arrays to some of the stock assets such as crates and barrels in the FPSC entity library. This will allow the same crate to be drawn hundreds of times into the scene, but have a different appearance per instance. This means you do not have to manually place four or five different crates into a scene to get that natural look, as the system will do it automatically, and you get the added bonus of using GPU instancing for the fastest possible dynamic rendering.

We are almost ready to move to beta on this product, and will keep you updated on the development of this exciting new Vista-enhanced technology. Some good news for X9 users is that almost all the bug fixes (and a few new features) will migrate to the XP version in time, and we have made the decision to ensure that the original version of FPSC runs great on Vista as well, so there is no need to step up to X10 if you're happy with what you have.

News from the World of FPSC

FPS Creator News

FPS Creator Updates 

The recently released V105 RC2 has been reported by the community as being the best update yet. The good news is that it is set to only get stronger, with some new AI scripts designed to solve the erratic behaviour of some characters and make them more predictable by the author. On a technical note, V105 and subsequent updates are all based on the October 2006 version of DirectX (d3dx_31.dll). This is the last DirectX version to support the old Pixel Shader 1.X code. FPSC will remain at this version for the remainder of the product lifecycle.

There are currently over 25 fixes in the update, and this number is increasing. We anticipate a final release of this update in April. However, you can obtain access to this and future release candidiates from the FPSC Chat Forum.

User-created Media

The rate at which media packs become available from within the user-base increases pace every month. Here are a couple of noteworthy items.

Errant AI weapons PackErrant AI, a professional game artist posing as an FPSC fan, is developing a weapons pack with a huge arsenal of equipment. From small pistols and grenades to full-blown shotguns, the progress is looking promising. Take a look at the forum thread for the latest updates.

Bond Fantasy MediaBond1 is another forum dweller who has been working hard on a new media pack. The theme this time is fantasy, with some nicely crafted long-range weaponry. As with all of the media that is presented in the forums, the end-product becomes finely adjusted by the people that will become the users. Keep an eye on Bond1's thread for updates. 

vishnu logoWhen you have finally included your new media and completed your masterpiece, it's something you'll want to protect. Although security will never be infallible, it might be worth checking out Vishnu 1.2, which has been developed to provide a few extra layers of peace-of-mind to your FPSC game.

DarkGDK.NET Update

DarkGDK

Dark GDK has received some attention from Mike Johnson and several updates just recently. The primary aim has been to resolve some of the outstanding issues in the GDK.

The first release of the year came towards the end of January and fixed several major issues including ghosted objects disappearing, and certain transparency modes causing objects to disappear. Other fixes included linker errors with the terrain commands, memory leaks in the 3D maths functions and resolving camera updates.

The second release of the year was a minor update that ensured the GDK fully supported Dark Shader. A new library and header file specific to Dark Shader functions was created and included with the release. Problems experienced by a small number of users relating to setting the camera to an image were also dealt with.

Another release quickly followed, ironing out further bugs, improving compilation and providing wider support for more technically-able users. Work still continues, with another update expected in April. Mike thanks all those individuals who have contributed to improving the product, and we hope you appreciate the dedication that DarkGDK has received over the past few weeks.

Lee's Tip of the Month - How Many DirectX 9.0c's are there?

Lee Bamber Conehead!

One of the most common responses I am forced to repeat these days is 'have you tried downloading the latest DirectX?'. The answer is immediate and often wrong, and generally along the lines of 'yes I have the latest DirectX 9.0c'.

It may surprise you to learn that there is more than one version of DirectX 9.0c, and each one has its own characteristics that have the power to make or break your software. To my reckoning, there have been more than five versions of 9.0c, the first going back to 2005. I am not privileged to know why the version number remained the same despite the functional changes being made behind the scenes, though I suspect it was done for the benefit of the majority, rather than the sanity of the developer.

You can quickly identify which hybrid of DirectX 9.0c you have by going into Windows Explorer, and following the path:

C:\Windows\System32\

and locating the file named 'd3dx9_24.dll'. This helper DLL over time has been modified, using incremental naming, so that by December 2006, the file had the name 'd3dx9_32.dll'. By looking at the latest version of this file you have in your system32 folder, you can determine how recent your version of DirectX 9.0c is.

The products Dark Basic Professional and FPS Creator both rely on the October 2006 version of DirectX 9.0c, which manifests itself as the file 'd3dx9_31.dll', and is the last DirectX DLL intended to support 1.X pixel shaders, which both products are built upon.

The next time you install some software, and you get a DirectX error, remember that the 9.0c version you think you have may not be the 9.0c you actually have, and most likely not the 9.0c you need. If in doubt, download and install the latest DirectX, it can't hurt!

PlayBasic News by Kevin Picone

PlayBasic News  

PlayBasic - New Engine Work in progress

This month has been one of those "just rewrite it" periods, so rather than evolving the existing code to handle the newest feature set, it just seemed easier to rewrite the process again. The benefit is that we can now ensure the best quality and speed for the new engine. The down side is that it does draw out what is becoming a never-ending 'alpha' cycle.

In the last news letter, we announced some of the new features being implemented into PB V1.70; Sprite Entities (objects), Sprite Particles and the new perspective display modes. This issue, we'll look at the nuts of bolts of what this actually means to PB developers.

Sprite Entities

While you're probably familiar with sprites traditionally being a square or rectangular shape, they're not any more! Sprite entities allow us to expand sprites from simple representations, into more complex polygon shapes. To achieve this, sprites now have their own user definable vertex and face (polygon) definitions. These can be configured into virtually any shape you want, be it a triangle, quad, disc, cube, sphere, cylinder or even terrain. You can even import meshes if you so desire. Conceptually sprite entities are the same as objects in a 3D engine. So they can not only be rotated and scaled, but they can also be viewed with or without perspective. This opens up some rather interesting opportunities to creative programmers out there. Not only combine 2D elements in 3D space, but opposite is also now possible.

Building entity sprites is simply a process of defining a series of dots and connecting them together. First, we specify the number of dots (vertices) and faces we require. Then we initialize the individual vertex and face data. So to create a rectangle for example, we'd define an entity with four vertices and one face. We set the vertices 0 to 3 to the rectangle's corner positions, then define our face to connect vertex 0,1,2 & 3 together.

You'll notice faces are not limited to just being triangles here; they can be defined as triangles, quads or a mixture of both. Also, for your added convenience, face definitions can share vertex data. This not only allows for faster rotation but makes effects like real time mesh deformation much easier. So if you move a vertex, every face sharing this vertex will move also. Moreover, faces can be individually activated & disabled at will, allowing you to hide/add/remove parts of the sprite  at will.

Sprite Particles

Particles are currently a work in progress, so the final implementation is yet to be confirmed. However, they can be considered as an extension of the sprite entity features above. PB's particle manager moves the projectiles through space, then outputs this information to the corresponding sprite. So the particles can be treated like any other sprite within the PB world.

Using the system will be very straight forward. First you'll create your particle sprite, then simply launch new particles at will. The PB engine will control the particle through it's life cycle and motion, however you can control how frequently their updated by manually calling the particle refresh function yourself. This allows you to selectively halt particles when the object is knowingly off-screen, or being occluded.

Individual particles have their own properties. These properties can be thought of as a set of modifiers, where each modifier is designed to change the behavior of the particle over time. Currently we have modifiers to change the position and apply forces each update. These settings allow particles to travel in uniform speed, accelerate, decelerate and have local and global forces applied. We'll also be implementing scaling, rotation, colour and clipping modifiers. These should give the greatest possible flexibility while maintaining speed and simplicity for the user.

Draw Perspective Sprites

Up until now, if the user wanted to render a 2.5D or 3D scene in PB, they'd need to familiarise themselves with PB's various polygon rendering methods. While you can certainly do some interesting things with those controls, we needed something easier for users wanting to make the transition from flat 2D into 2.5/3D. Enter DrawPerspectiveSprites. This new render method allows you to draw the sprite scene in two different ways, those being perspective 2D and full 3D.

Perspective 2D mode allows us to render the sprite world in perspective, along the z axis; the X and Y axis are the same as the traditional 2D screen in this mode. The viewer can show the sprite world from any vantage point in 3D space, but the camera can only rotate along the Z axis. This means sprites that are further away from the camera will be rendered with perspective applied. So this mode is perfect for overhead or side-on style games.

Full 3D mode is exactly that, the camera can render the world from any vantage point and 3D orientation you require. Thus, the PB sprite system can now be used as a 3D Engine. This has become necessary as more and more 2D games are now nothing more than 3D rendered as 2D.

If you're confused, take a look around the Perspective Sprite Terrain thread. There you'll find various tidbits about sprite entities, perspective rendering and some very basic particle examples.

From the Play Basic Forums

This past month, we've seen more releases from the unstoppable Ian Price (B'lox!, Sorcery Plus Plus) as well as some talented new comers Enjoi (Space Game) and Gil (RND Asteroids & Virulent Strain). Two more noteworthy developments are Particle Sprinkler and FX Font Sample

Over And Out

Well, hopefully that's given you some insight into the changes that are taking place in the PB1.70 release. As for when it'll be available, that's pretty difficult to peg down at the moment, but it's not far away now!

From the Forums

A quick check of the forums reveals some old gems and new opportunities...

Level Design

This thread from tinkergirl has been around a long time, but if you've skipped past it, you should consider taking a look. It's packed with useful information, and it's from first-hand experience.

YouTubed DarkBASIC Projects

If you hunt long enough on YouTube you'll find a number of game videos created using TGC products. Alternatively, check this thread out for links. If you have your videos uploaded, add your own links too.

.

Free World Builder

One of the first questions every newcomer asks is: How do I build my game world? There are many answers, but one option is to try out this free world building application.

Stick Suicide 2

Skip past the first few troublesome posts and you'll find a game that immediately impresses. A no-media game complete with source code awaits you.

.

Outro

Share your news with over 13,500 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).
Issue 52 deadline - April 25th.

Missed the Videocast? Just in case you skipped over the videocast in the editorial, or are reading this on hardcopy, the Google Ads / Cashflow is in fact an April Fool!