On a recent flight to Linkoping (Sweden), I learnt many things. I am now proficient in carrying out everyday tasks without moving my elbows, I can resist the urge to imagine how nice it would be to stretch my legs, and even after ten years of flying and owning a mobile phone, forgetting to switch it off before stowing it away is inevitable for most passengers - including myself - and the primary cause of late take-offs. Rainbows are actually round from above, and the Netherlands put their wind farms miles out to sea where nobody is likely to complain about their detrimental effect on house prices.
On a more inspiring note, it gave me the chance to read Quests by Jeff Howard; my review can be found in this newsletter. It was fantastic to have an elevated RPG-view of the world out of my window, whilst reading about the design concepts and theories of such worlds. It is quite intriguing and revealing to see a top-down view of transportation layouts, power sources and other natural resources, especially when reading about their implementation in the realms of fantasy. Sweden is especially inspirational with it's many, many lakes.
In the last month, The Game Creators have been steadily working on both FPSC and DBPro updates in parallel, together with dedicated BETA testers on the forums to ensure they improve upon previous updates and deliver even more stability. At the time of writing the FPSC upgrade has been published and DBPro U7.0 is almost ready for release, and may already be available as you read this so check out the update sections of the FPSC and DBPro websites. The full details can be found in this issue.
In another packed issue, you can browse through new games including a Best Of The Best award-winner, a job opportunity for anyone with the right skills and time, updates on various products and the latest additions to The Game Creator Store. As the cover image reveals, we also have the winners of the NVIDIA PhysX demo competition, which has produced some very worthy pieces of work.
Until next time,
(1) Convention '08 (2) Competition (3) DarkBASIC Pro (4) Job Opportunity (5) Leadwerks (6) FPSC News (7) BOTB (8) DarkGDK.net (9) Social Arcade (10) Quests (11) Videos (12) TGC Store (13) Lee's Tip of the Month (14) PlayBasic (16) Winner (17) Outro
It's October, the convention is almost upon us. Here are some details on what you can expect from the TGC team.
Mike Johnson : The talk I'm preparing right now is aimed at giving everyone an introduction to shaders in DarkBASIC Professional. I will be going through the basics of what shaders are, explaining how they can be used in DBP and showing some examples of shaders in action. This talk should be helpful for anyone who doesn't know much about shaders or who knows what they can achieve but doesn't know where to start. I'll be helping people to get up and running with this valuable addition to games. There will be some nice demos and sample code to play with.
Grant Clark : I'll be presenting a dissection of a GDK powered game and demonstrating how similar DarkGDK can be to DarkBASIC professional if you follow some simple rules. I'll also be showing off the game I'm making for an upcoming webcast series. This centres around a first DarkGDK game from someone with no prior c++ experience, And how with DarkGDK you actually see very little in the way of heavy c++ code, busting a myth as it were.
Dave Milton : Firstly, I'll be talking about Social Arcade, the vision we have for it and how we developed it. I'll be giving some insight into developing an app for Facebook, the RASM assembler that Social Arcade uses and other interesting things.
The second half of my presentation will be looking at how to create objects from scratch in GDK and how to use that method and leverage the ability to stream in content constantly. I will be demonstrating a streaming terrain demo I wrote and showing how to make an endless world as is done in many MMOs such as World of Warcraft.
Lee Bamber will this year be offering everyone at the convention the chance of a lifetime. By the end of the convention there will be a new upgrade of DarkBASIC Professional, updated and enhanced with the requests that are put forward during the weekend. If you are attending and have a particular bug or feature that's slowing you down, start thinking about the best way to demonstrate how it works now, and how it needs to look by the end of the convention. Last year the community shaped the way DBP developed over the coming months, this time around the results will be instantaneous!
We have a nice collection of prizes to be won at the convention. All you have to do to be in with a chance is be there! Amongst the prizes we have:
Everyone attending will also get a complementary copy of MPL3D Solar System and EzRotate Enhanced. Thank you to everyone who has contributed so far to achieve this.
Convention Day Rate - £32.00 per day (£64.00) Convention Attendance | Full Weekend Rate - £180 Convention Attendance |
Most of the accommodation is en-suite, any bookings now will need to be checked and confirmed with the venue for availability. Other hotels are available in the area. You can fast-track your request using the Google Checkout system that has been set up here.
You can download the booking form here, and return it with the full payment 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.
It was a gruelling competition at the very edge of technology, and some very brave users stepped up to the challenge of producing the best Physics demo showing off NVIDIA PhysX technology. The judges made their decision based on the criteria of technology focus and scaling to CPU, visuals and interactivity. We can now reveal the winners of the five categories in the competition, each taking away an amazing prize, kindly provided by ASUS and EVGA:
An excellently presented demo that ticks all the boxes. We wanted to see a demo that used cloth in different ways, could be scaled between CPU and GPU, be both automated for passive viewing with the option of interactivity, and look awesome at the same time. Not only did this demo deliver, it added some great background sounds and had a very polished finish.
A hard fought category, and the final decision even harder. Congratulations to all that entered this very difficult fight in what was the most popular category to enter. Here is a demo that embodies all the fun of physics. How better to reveal the technology of rigid bodies than by giving them all to the user to play with. Simply select what you want to draw with and drop them into your simulation, and when you think you have created something interesting, hit play and watch what happens. The creative addition of elements produced intuitive scaling and the range of options made this a demo you spend a lot of time within.
From the very beginning, you just know that if you cut this demo down the middle it will have soft bodies running right through it. Even the main menu has soft bodies flowing through it! What we found unique about this entry was the quantity of different soft body simulations attempted, and given the nature of the technology, we felt James managed to demonstrate it very well. The scaling was good, and even pushed our monster machines to take full advantage of the GPU!
This was perhaps the toughest category of all, and Kenneth rose to the challenge like no other. His immediate grasp of the technology was instrumental in the range of fluid techniques demonstrated, and with professional ease, made the whole experience polished with a suburban graphical interface. He also provided a technique that even the judges did not consider possible. An excellent fluid demonstration!
To the victor goes the spoils, and Carlos walks away with the grand prize for a truly excellent all singing, all dancing demo. Sit back and watch it, or get involved interactively. The demo is set on an island paradise, in which you can conjure physics objects all day long. Rain from the sky using real fluids, soft and rigid bodies abound, cloth spawned like magic and everything in between. Do not be surprised if you get carried away creating lots of scenarios to play out on your very own physics island. The visuals are awesome, the help a welcome addition and the whole experience really speaks about the emerging fun to be had with physics.
For a demo with atmosphere, look no further than the second place winner written by Waldemar Medina, depicting a spooky and haunted graveyard. Visuals are perfect, and the audio backdrop really adds to the scene. The scaling is good, and all the features we looked for can be found in the form of a dense downpour of fluids, soft body snakes, cloth ghosts and a rigid body simulation that pulls it all together. A very slick demo that shows how you can combine high end technology without sacrificing your theme or style. An excellent effort!
The idea of a physics museum is great, and allows the user to tour the different techniques of physics and the help guides explain to the user what it is they are seeing.
When this came in, it had all the makings of a winning entry, and if it was not for the devastating attack by Kenneth's demo, it would have! With a great menu system, lots of techniques demonstrated and polish, it was amazing to see such a complete beta so early in the competition, and deserves first prize in the feature demo beta category.
Another demo that ultimately fought for the top cloth spot was Adam's entry, which came in as a very good beta version. Had it evolved further, it would have seriously contended against the present winner of the Cloth category.
We would like to thank everyone who entered the competition, and shared their ideas and demos with us.
- Michael MacCuaig had a great idea of simulating an avalanche of boulders tearing down a mountain side and right through a line of cloth banners.
- Gareth Moss had fun tearing PhysX cloth into a million pieces!
- Daniel Vagg used a great technique to simulate a large body of water with cloth, rendered with a great reflective effect.
- Hoyer Andreas came very close to winning his category with an excellent demonstration of wind tunnel simulations, and responded very well to the feedback given after the beta deadline.
- Dorian Bugeja produced a very cool demo, which amongst other features allowed the end user to draw a shape and have it constructed as a real physics object.
- Jonathan Hinge demonstrated some great scaling options in his entry, and had there been a pure force field category, he would have won it.
- Jonathan Stichbury had a demo called 'something' in a folder called 'tgcentry', but what he produced was extremely cool; a fully articulated crane that could grab spheres out of a container. I would very much have liked to see this one finished off (and perhaps renamed).
- Pogorelov Andrey Valerevich also had a panache for his demo entry, calling it simply !NEW!.
- Frédéric Cordier offered a great idea for the rigid body category, that of a meteor strike on planet Earth, but due to the ambitious nature of the project and tight deadline, was not able to finish it.
- Martin Dobes created a very cool demo, showing off a duel between two PhysX controlled vehicles bashing a ball around a physics environment, and driving through cloth banners, great fun!
- Kevin M. Schuster was another close contender for a prize, with his first person physics shooter that had you exploring spooky corridors of an abandoned NVIDIA H.Q whilst trying to avoid the roof mounted cannon. Very well presented and polished!
- Alexander James Reed had a very neat idea of spawning a violent tornado and dropping innocent structures in its path, just for the fun of watching them get destroyed and pulled into the air.
- Andrew J. Meyer produced a great demo that placed you in the ground floor of a flat and put you in mind of a Sims game. Every piece of furniture was a real physics object, and the plasma screen with the video streaming through it was an especially nice touch!
Dark Basic Professional is almost ready to step up to Upgrade 7.0, after a long BETA phase and plenty of feedback from the DBPro forum users. The most significant addition for this version is the replacing of the old help system with one which looks better and contains more help. The new help system also includes all the old undocumented commands plus keyword entries for Advanced Terrain and the FPSC free DLLs including MultiplayerPlus and the ODE commands. The GameFX module has also been completely covered in the new help system with its own help category. In all over 150 commands have been promoted from undocumented to official. Read on to get a preview of these help files, and the new improved layout.
The compiler has been modified so it no longer flashes a task bar window when the executable begins. Small fixes for matrix, image and bitmap have also been made. The update now accepts a more advanced form of X file which is typically exported in the new TrueSpace 7.6 version, ideal if you want to import your modelling efforts directly into your project. Some performance work has been done in regards to excluded objects and a bug fix ensures that multiple cameras render the correct objects in their field of view. Finally a new parameter has been added to SET CAMERA TO IMAGE which allows you to create a render target in any of the D3D formats, ideal if you want to implement more advanced forms of shadow mapping or HDR rendering. Keep an eye out in the forums for users experimenting with this new capability!
The latest version of DarkBASIC Professional includes the new-look help files. They have been revamped, and those of you familiar with the Dark Physics help will recognise the format instantly.
The commands are described in a consistent format, allowing you to pinpoint the information you require quickly and efficiently. Following the syntax of the command comes a description of the necessary parameters and their data types. If a value is returned, this is explained in the next section, continuing with a full description of the command and any other pertinent information. Finally, a code example is provided before linking to other related help pages.
Each page is headed with the important links, including the main menu, index page, examples section and a list of technical documents. This last section provides information for third party developers, model file formats and how the effects system integrates into DarkBASIC Professional.
The examples section now provides categorised demos of the main features of the language. For anyone wanting to understand how a program is constructed and the essential components are implemented, this is a good place to start.
As always, your feedback is appreciated. Let us know what you think of the new format, any issues you may have encountered, and ideas on how it could be improved further. The forum thread relating to U7.0 is the ideal place to provide your thoughts.
We are looking for an experienced DBPro user to produce a set of instructional videos on using the language and creating games. The videos need to be produced quite quickly so the ideal person is someone with quite a bit of spare time, and who is already set up to record video with voice-over (for example - a copy of SnagIt and a microphone that produces good quality sound). If you are interested in earning some extra cash, produce a small sample video with voice-over and send to lee@thegamecreators.com attaching the video with the email, ensuring you rename the compressed file to ._zip. For an idea of the type and style we are after, check out the FPSC Tutorials.
We are looking to have these videos produced in time for Christmas so if you are interested get in touch now!
Josh Klint has informed us of the release of the Leadworks Engine Evaluation Kit. Downloading the package will unwrap the following features:
You can download the evaluation kit here,
to investigate all of the above features
Tutorials are available in PDF and video format here,
a handy online reference for the product.
There is now a Leadwerks Wiki online here,
with a wealth of additional information.
Finally, you can find the full details and purchase Leadwerks Game Engine 2.0 on the product page. Leadwerks Game Engine 2.0 is a fully-featured next-generation rendering platform, suitable for the latest games as well as architectural visualization, simulations, and other 3D applications.
Josh Klint has given a copy of Leadwerks Game Engine 2.0 as a prize for this year's convention.
FPS Creator V1.13 has been in BETA for some time and is now released as the latest official upgrade. One of the things you can find in the update are changes to the shotgun reload system and rapid fire features, courtesy of AIRSLIDE.
We have also added 100 global and 100 local variables per entity to the engine as well, and these values are saved and loaded via the game save system. The upshot is that those users who are into FPI scripting will have access to an invaluable ability to store information on a per game and per entity basis, to implement such things as security locks, in-depth story elements, scores, additional statistics for entities such as count-down mines, behaviour modes for robots and anything else the scripter's imagination can come up with.
Finally we have increased the maximum number of bones per mesh supported in an FPSC model to 60 from 32, which means more ambitious bone based models can now be added to the Game Creator Store, one of the first being a Mark Blosser creation; a new chainsaw wielding maniac, which actually uses individual bones for the chain!
Here is a more in-depth look at the changes:
The new update can be found on the FPS Creator download page.
ID Tech Camp featured in Fox News earlier this month, highlighting the Summer Camps they run for the more tech-oriented children looking for something to do over the holidays. Amongst the various skills acquired, FPS Creator features as one of the tools at their disposal. These camps are sponsored by The Game Creators, providing the software and a range of model packs, and anyone interested can be rest assured that FPSC will feature again next year. Click the screenshot opposite to watch the report.
Dennis Borruso has joined the Best Of The Best, with his alternative FPS Creator game named Froggy Shoot Out. In a break from the dark, dungeon-like games that are a long-standing favourite, we see our mission start in the open-air scenario of a Wild-West town. You can forget the menacing stampede of zombies and aliens too, for the more cartoon-like frogs that inhabit the town. In fact, the whole environment is bright and more reminiscent of Toontown than Amityville. Naturally, the scenery is custom-made for such a unique production. Dennis is skilled in Truespace, which has allowed him to create some fantastic props and background details.
In this game your objective is to kill all the frogs that have taken over the town. You have to find the keys to open the doors to the next level where you will explore different environments and fight different frogs. There is the main outdoor level, the stables, the general store, the bank, the saloon, the blacksmiths, and finally the jail where you battle the frog sheriff.
The demo version, available now, is limited to the first two levels. The final game will have 5 more levels and more advanced gameplay. Froggy Shoot Out is planned to be released in December 2008. In the meantime, download the demo and explore the town square and stables.
In his own words, Dennis reveals the secrets of custom modelling for FPS Creator, and some inspiration for anyone struggling to finish their masterpiece:
"I have had a fascination with frogs as long as I can remember. I just find them the funniest little creatures. I like to use them in my work when I can and even named my business 3dfrog. When I first got FPSC I knew I wanted to make a game but didn't now what. I played around with it a while having fun and learning how to use it with custom media. Then not too much longer after I decided I wanted to make a froggy shooter. I modelled a frog and thought 'Hmm, just a frog isn't enough, he needs a theme'. Then I had the idea of making it a western and Froggy Shoot Out was born.
"I worked hard on this for a while and made pretty good progress, but other things in life took priority after a while and I lost sight of Froggy Shoot Out. I thought I would never get to finish it. Then more than a year later I found myself back into this game with even more enthusiasm than before. The amount of work it takes to make a full featured game gets intimidating at times. But I love doing this kind of work and have a great time making the game a reality.
"I started making the models for this game with Animation Master. There was a very good DirectX exporter for it back then but it is no longer supported in current versions. So now I use TrueSpace for my models. To get FPSC skeletons into TrueSpace I turn the .x models provided with the software, then import them to Fragmotion, export as bvh and import the bvh skeleton into TrueSpace. Rigging in TrueSpace is very easy. I then export as Collada or DirectX and run it through Ultimate Unwrap Pro to correct the texture and make a FPSC compatible model.
"I get a lot of tips and encouragement on the FPSC forums, and my nephews love the game. My family and friends give me tons of encouragement and support too. These are the things that keep me going. I am very happy when someone takes interest in the game and enjoys it. It's what it's all about."
You can provide feedback in the forums, where there is a progress thread. Later in this newsletter, you will also find a preview video of the game in action.
DarkGDK.NET is near completion and will be released very soon. The DarkGDK.NET toolkit supports the following compilers -
Several major changes have occurred with the toolkit. You no longer require the need to authenticate your applications. This will be a familiar ring to developers using previous versions of the toolkit. The toolkit comes with lots of examples and tutorials to get you started straight away using your favourite .NET language. Both CSharp.NET and Visual Basic.NET use a project template allowing you to start developing your program without the need for object library referencing and setting up. You can now place a ctlDarkGDKViewport control straight onto your Winforms application and setup the properties to configure your application without any required programming. The toolkit now unifies all of the original functionality of previous versions into a neat and powerful set of .NET classes allowing you to program using modern OOP principles. And no need for remembering Object, Image and Bitmap ID numbers. Also, this new version provides a standard Merge Module for your application deployment requirements allowing you to build Setup Projects for your applications without any need to know where components have to be installed. Finally, the new version comes with detailed help documentation on all of the supported classes and tutorials, making your adventure into the new toolkit, easy and productive.
Watch out for the impending announcement in the near future.
Social Arcade is going from strength to strength, with over 200 games being created by its inventive audience of more than 240 people in the first month. If you haven't yet tried Social Arcade, and you are looking for inspiration then why not play some of the already published games, such as Billy Bomb, Cool Egg and Mad Lifts? Remember, once your game is complete you can display it to your friends and the world on your own Facebook page. If you want a quick way to look really popular, try making a viral game to draw in the crowds!
Features are being added daily by the team. Recent additions have included conveyer belts, springs, spikes, blockers, poisen darts, tons more graphics and new music themes.
Social Arcade can be found at http://apps.new.facebook.com/socialarcade/, add it now to your Facebook applications and get creating, it's a cinch!
There is no confusion over the subject of this publication from its title, that I can guarantee. However, you might be surprised as to the breadth of material covered by the book, and indeed just how much needs to be covered in order to comprehensively understand the topic.
For the casual game player, understanding what makes their game interesting, compelling and enjoyable is a long way from their thoughts. The actual thought that ensures all of these attributes are encapsulated in a game is intensive and deserves recognition. Quests identifies and acknowledges many of the great thinkers that have shaped the way games have evolved to become what they are today.
The book starts with an age-old debate over Quest Literature and Quest Games, whether they influence one another and indeed whether they enhance or detract from the value to their distinctive audiences. Most of the Role Playing Games we enjoy today have their roots embedded in the great fictional works of authors such as J.R.R Tolkein and C.S Lewis, that is a fact. How they are nurtured and grow determines just how far they stray from their roots, sometimes for the better and other times not so. This debate opens up many avenues to explore, and provides a great introduction to the proceeding chapters.
For me, this book is an invaluable resource, as it poses many questions that I haven't considered, and then continues to answer them. There are many tried and tested structures, alongside methodologies for implementing the necessary logic and algorithms. Quests has carved a unique place amongst the other titles in the same space, with a combination of literary history and analysis (including a wonderful insight into Sir Gawain and the Green Knight), theory of the subject in games, and the application of this combined knowledge using practical exercises. The Aurora-based scripting engine is used to bring all of this together into a package that will leave the willing reader with a complete episode set in the landscape of NeverWinter Nights 2.
Putting all of this into the context of tools that the readers of this newsletter are familiar with, it covers the entire spectrum. My emphasis would be on the owners of FPS Creator; it is well within the realms of the toolset to take the average search and kill game to a new level, with better immersion through emotion, belief systems and moral dilemmas. Achieving the same goals through different styles of play is also something to consider and very possible. In fact, the new variable system introduced through FPSC V113 perfectly complements the quest systems one might want to consider introducing.
I fulfilled my own quest and tracked down Jeff Howard, asking him to put his research into a context that is relevant to the hobbyist game-maker. Here is what he has to say:
"Your quests will be better if gameplay and story allow players to interactively explore ideas about human relationships, politics, spirituality, and society."
"Be original, but don't re-invent the wheel. Literary authors have told stories about quests, called quest narratives, for thousands of years. One of the things that makes these stories and games so popular is the mystery of decoding their meanings, expressed through symbols. For example, the authors of classic quest narratives like Sir Gawain and the Green Knight and The Faerie Queen represented the challenges of living a virtuous life through symbolism and allegory, in which each aspect of the story stands for something else. Similarly, the Ultima games were constructed around a virtue system in which each component of ethical behavior was tracked through programming and corresponded to a color, a town, and a character class.
"Create non-player characters whose conversations motivate players to embark on quests, while offering choices about what tasks to accept and for what reasons."
"Drawing on examples like these, think about how all aspects of your quests (their spaces, objects, characters and challenges) can convey meaning through symbolic gameplay. In terms of level design, construct labyrinthine spaces that encode meaning while conveying a sense of challenge and progression. Design iconic objects that are functional in gameplay and game economy but also suggest a larger set of ideas, whether through a rod of eight parts or a shield inscribed with mysterious runes. Create non-player characters whose conversations motivate players to embark on quests, while offering choices about what tasks to accept and for what reasons. Use event-based programming, or scripting, so that players can shape the meanings of the challenges they overcome. Allow for choices that change the game world in keeping with individual players' values and inclinations, whether through alignment systems, puzzles that players re-configure, or landscapes that morph. Remember that, while quests have some underlying patterns in common, each person is on a different quest unique to them! Just as each person shapes a story by how she interprets it, so each player will be able to experience the meanings of your quests individually if you carefully balance thematic meaning with fun gameplay."
The publishers of Quests have provided a copy of the book to be awarded as a prize at this year's convention.
This is a fun rendition of Asteroids, with a couple of added features. I've never been great at controlling the spacecraft in the original, the combination of rotation and unidirectional thrust always caused me too much confusion. This has been alleviated in this version, by using the mouse to control the rotation, and by including reverse as well as forward thrust. The different weapons are interesting (especially when they affect your speed!), and there is the bonus task of collecting valuable jewels.
Download this game from the forum thread
As mentioned earlier in the newsletter, this is the latest recipient of the BOTB award. This preview illustrates some of the fantastic scenery and carefully crafted game models.
Each month the Game Creator Store grows. There are a huge number of new additions since the launch of the standalone version of the store, here are just a few of those. Start up your store (through FPS Creator or the standalone version) to see these and many more.
FPS Creator character.
This grotesque, deformed monster is a standard character that can use the standard range of arms. His weapon of choice is the minigun.
An old, rusty gas cylinder.
Within FPS Creator, this is a dynamic object which will explode when shot at. It can also be made to be static.
One of a series of three transporter models.
Use this conveyor belt in your industrial environments. It includes normal and specular maps to enhance the detail.
FPS Creator character.
This elven character works in melee mode with a sword, but is also able to hold any standard weapon. Melee attack and chase scripts are included.
A very simple way to add roads to your scene. Straight, side and corner pieces are included in the pack.
All of the above models are available to purchase and download through the inbuilt Game Creator Store in FPS Creator, and also using the standalone store for other game-making tools.
The sample code from this tip can be downloaded here
You have been able to output text to the screen, and to an optional bitmap for many years, but until now you have not been able to send text to a render target such as a camera. Well thanks to Upgrade 7.0 you can!
The technique is so simple it boils down to a single command. First we will look at the basics of drawing text to the screen with the sample code below. This snippet clears the screen, sets the attributes of the font and completes by writing a simple phrase to the screen:
rem Simple text to screen
cls rgb(255,128,0)
set text size 20
set text font "Verdana"
text 50,50,"HELLO WORLD"
wait key
The second step to revealing this technique is to create a camera, normally used to provide different points of view within your 3D application, but can also be used as a handy render target for off-screen images. The code below will create a camera and prepare it as a handy off-screen image:
rem Create a render target camera image
make camera 1
set camera to image 1,1,256,256
sync
paste image 1,100,100
wait key
In the above code snippet, the SYNC command is very important as the image will not be created until it reaches a SYNC or FASTSYNC command. Running the program so far we can see the standard text, then hit any key to see the result of the camera rendering as a pasted image to the screen. The final trick is to fill that image with some text and draw the new image to the screen:
rem Draw text to the camera
set current bitmap -1
cls rgb(0,0,255)
center text 128,100,"NEW CENTERED TEXT"
set current bitmap 0
paste image 1,100,100
wait key
The single command that makes this whole technique possible is the rather odd line that reads:
SET CURRENT BITMAP -1
Surely there is no bitmap number in the negative range, and you would be correct. What this command is really doing is tapping into the bitmaps reserved by the cameras render target. The value you specify here is the negative version of the camera number you are interested in writing your text to. For example if camera three was used to render your in-game statistics panel, you would use a value of -3 to specify camera three. Sometimes there is no substitute for true type fonts in your real-time applications, and now you have it!
No more pasting text to a bitmap, using GET IMAGE and suffering extreme performance drop as the program tries to read back from the GPU, now you can paste your text directly to the image and retain full performance for your game menus and HUD systems!
September has been a fairly productive month for PlayBasic development. To be honest though, a few weeks in programming language development is just a drop in the ocean. Even so, we've been able to make some solid progress towards the translation to our second generation runtime technology (known as VM2), Which is approximately 80% complete, but more on that below. In other news, with the conclusion of the month sees the end of our 2008 'Heroes Quest' PlayBasic programming competition . Even though the competition hasn't ended yet (it will have as you read this), we're already seeing some fun looking platformers posted on our board. Next month we'll bring you the complete results.
There's no getting around it, discussions about programming languages are often laden with lots of jargon. So it's no big surprise that readers (in particular those fresh to programming) get lost in a sea of acronyms. So to try and counter this, I wanted to quickly take you through what VM2 is and how the new model all fits together..
PlayBasic, like most programming languages is built around a three stage process. During the first stage, the programmer enters and refines their program code using the editing environment, also known as the IDE. Stage two is the compilation process. This stage takes the source code, (the text the programmer entered during stage one) and translates it from something that's meaningful to us humans, into something that's easier for the computer to understand. This translation is often referred to as "creating a binary". The final stage is execution. Execution in PlayBasic is handled by what's called a Virtual Machine. Alert - jargon Ahead! What's a Virtual Machine ? While there's a number of different flavours, the PlayBasic Virtual Machine is what executes the binary presentation of your program. So it takes the information that the compiler outputs, and deciphers it, in order to act the program out.
While this is a pretty broad view, hopefully you can see that the VM is basically the underlying heart and soul behind the PlayBasic language. Now given the VM is what actually executes our program, then it stands to reason that any improvements that are made to the VM's performance, will in turn make our programs perform better also. This is exactly what's been happening over the years with the original VM, whereas today's edition is some 4->5 times faster than it originally was. But there's only so far the old VM design can bend, before it becomes clear we need to start afresh. Introducing VM number 2, otherwise referred to as VM2. What is it? It's simply our second generation of the PlayBasic execution technology.
"it's becoming clear that VM2 is on average another 2-3 times faster than the most optimal VM1 edition"
Those following the growth of PlayBasic over the years will know that VM2 is not a new idea, we realized early on that VM1 wasn't going to cut it in the long term vision, therefore we started writing & designing a replacement some two years ago. The plan was to introduce VM2 with our second generation of PlayBasic, known as PlayBasicFX. However with obligations to continue PlayBasic support, development of VM2 just wasn't a priority. However, over time many of the new design ideas from VM2, have in fact been retro fitted back into VM1, which is a big reason why we're able to improve it's performance. In fact current editions of the PlayBasic run on a hybrid of the two editions. But not any more.
With the move from PlayBasic towards PlayBasicFX starting Earlier this year, moving to the new VM2 clearly became a priority again. However it's not a matter of just including the new runtime and off it goes; VM2 uses a completely different instruction model to its baby brother. As such, in order to use it with any current edition of PlayBasic, the compiler and command libraries all need to be changed. To this there's two basic approaches, we could either start totally afresh, or migrate (section by section) from one to the other. We chose the latter, while it's a bit messier in the short term, it does mean we can build versions that include the old command set today. Registered users of PlayBasic can download these from our PlayBasic maintenance forum by the way.
So what new features does VM2 offer that we can't already do? Well, without getting into specifics, the primary goal is to provide a smaller base that includes faster execution and more flexibility. We'll get to the execution speed in a second, but in terms of flexibility, we're referring not only to how we build the PlayBasic Products, but being able to build your own projects in a more modular friendly way. If you think back to the 3 stage process that PlayBasic follows, which can be summarized as
What modules will allows us to do, is keep common parts of our program in a pre-compiled format. These compiled parts could then be distributed separately, or you can use them to further accelerate your own development time. The approach also makes the maintenance and expansion of the PlayBasic virtually infinite. You'll be able to attach any graphics engine you want to it. For example, you could use LeadWorks or even DBPro's graphics engine with it.
Ok, so the big question is how much faster is VM2 execution? Well, given that (at the time of writing) we're just about above 80% of the way through its official introduction, it's becoming clear that VM2 is on average another 2-3 times faster than the most optimal VM1 edition, found in PlayBasicV1.64 for example. This is all lovely, but without some type of context that's a pretty abstract value. In comparison to a number of compiled Basic languages, it is now matching and sometimes outperforming them under certain circumstances. I should point out the benchmarks are designed to be a real world representation rather than the standard brute force for variable=variable+1 type loops you'll see as the compiler selling point, although that's included also.
If you're wondering how that's possible, it's simple. While VM2 uses a much better instruction set model, the real reason is that most basic compilers tend to focus on the structural code performance and ignore the speed of the command set. So they're often pretty good at brute force operations, but when you peel away the hype and check them running some real world code, they're often slower than you might expect. So things tend to balance out. That's not to suggest VM2 has anywhere near the brute force performance of native machine code, it isn't ! Just that the gap to our main competitors in a real world sense, is closing.
If you're curious about our VM2 progress, then wander over to the VM2 translation thread and make sure you read my private blog for the nitty gritty.
By the time you read this the Heroes Quest competition will have just closed. However, given this article was written with a few days remaining, we don't have any final games to show you just yet. However, some participants have been kind enough to submit some screen shots prior to the closing date. We'll obviously dissect all of the entries and bring you the results next month. If you can't wait until then, then make sure you check the http://www.UnderwareDesign.com home and forums for the result announcement. Best of luck to all who participated!
Not familiar with Heroes Quest ? - Head over to http://HeroesQuestCompetition.UnderwareDesign.com to refresh your memory.
Until next time, I'm off to continue bashing bits in some other dimension. Other wise known as sitting at my dev PC.
Each month we pluck one lucky subscriber from the newsletter mailing list and award them a free copy of DarkBASIC Professional. The email address of this month's winner is: luxbu**er@**ail.com If this is you then send us an email to claim your prize.
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 70 deadline - October 27th 2008.
Are you bored with life? Then throw yourself into some work you believe in with all your heart, live for it, die for it, and you will find happiness that you had thought could never be yours.
Dale Carnegie.