If you cannot view this newsletter correctly, click here to view it online
What a time to bring back the newsletter, I have Olympics to watch! Reading this, you'll already realise it's back; we didn't appreciate that the newsletter can almost be considered institutionalised in the lives of so many of our community members. We have listened, and your monthly dose of TGC news has been restored. If you are enjoying the new format then don't worry, this will run alongside the newsletter too.
Returning to the Olympics, it obviously brings great pride to the British nation, and great privilege. It also holds so many more sentiments. Hundreds of men and women from around the globe come together, to forget differences and to overcome all known barriers in order to share their successes and achievements. Behind the scenes technology is breaking new ground, with masses of data pouring into our living rooms, telling us everything we wanted to know, and even more about the things we didn't even realise we could know. The BBC brings 46 extra channels of Olympic events; we can watch many sports in 3D, and for the first time ever Super Hi video images are being recorded with 16 times more detail than current HD standards. Amongst all of this, the motto of the London 2012 Olympic Committee is to Inspire a Generation, and it certainly seems to be succeeding.
There is one message that I have grabbed from what has been seen so far, and that is from the opening ceremony. After the Beijing celebrations it seemed that it would be impossible to match, and anything else would pale by comparison. Independent game makers can learn from the approach taken this year; if you can't be bigger, be different. The ceremony will not be forgotten, but for totally different reasons to Beijing; each one stands on its own merits.
Success breeds success, and this month we want to inspire you too. We have news on a new AGK book that will arm you with knowledge, tutorials to help you think around problems, new community team members to give you support, a new TGC team member recognised by his achievements, and a whole lot more. Enjoy!
Until next time,
(1) App Game Kit (2) Hands-On AGK (3) Baxslash (4) Berps (5) Android Publishing (6) Gallery (7) Swipe me (8) Pascal AGK (9) DBP (10) Testing Team (11) From the Forums (12) FPSC News (13) TGC AppUp Dev Group (14) 3D Compo (15) IDF 2012 (16) Winner (17) The Game Creators News
Intense work behind the scenes keeps most of the TGC team very busy. We can't reveal much at this stage but expect the announcement of something cool mid-September. In the meantime I can reveal some of the features we have been adding as part of our own internal wish list. With build 107 out of the door we have stepped up our internal version to 108 and have already fixed many issues from the Issues Board. In addition we have also tentatively added iOS commands for Facebook, Twitter, In-App Purchases, AdMob and a few other nice to haves. We will be extending these social commands to Android soon, and then work out how many of them will work under Windows and Mac.
Much of the engine and interpreter have been ported to HTML5 and already we have positive signs of life. All of the sprite and physics examples are running in Chrome and Firefox.
Recently recruited are our five AGK Community Testers, whose mandate it is to reproduce every bug reported in the Issues Board. When fixing time comes, we'll have everything we need to eliminate the bugs quickly and move on swiftly to the next. They have been given exclusive forum badges; next time you are in the AGK forum why not say hello?
We may have hinted at browser support in the past, and we can extend that anticipation with a few more things that are happening in the depths of TGC. Much of the engine and interpreter have been ported to HTML5 and already we have positive signs of life. All of the sprite and physics examples are running in Chrome and Firefox (HTML5 WebGL enabled browsers). There are numerous more commands to port, and some optimisation to finalise, but progress is going great and it's extremely exciting to see T1 BASIC apps running in a browser without any plugins!
The App Game Kit solves many problems caused by mobile device fragmentation. With it you can code your game once and then deploy your game to multiple platforms. Different resolutions and input systems are all handled by AGK.
With its own BASIC script language App Game Kit makes it a cinch to code your games. Game designers, artists and many more budding game makers can start creating their own apps.
Look no wires! Compile your BASIC games in the IDE, then transmit them over your WiFi to multiple devices for instant testing. Creating games with this new cross-development model will result in your productivity increasing significantly as you instantly target multiple platforms.
The TGC team has a wealth of experience in creating game creation tools spanning well over a decade. Taking that knowledge and working with our loyal and enthusiastic community we set to work on creating AGK
The TGC team has a wealth of experience in creating game creation tools spanning well over a decade. Taking that knowledge and working with our loyal and enthusiastic community we set to work on creating AGK.
This phase one of AGK is just the beginning. We aim to spread AGK across as many different platforms as possible. Meaning games you code in our AGK BASIC will instantly work on other supported platforms as we bring them into the AGK portfolio.
We're very excited about AGK, we feel it's the foundation of a great game making platform and we're 100% behind its evolution and development. We will continue to work with our community to ensure the AGK meets their needs.
Every AGK command statement (upto V1.07) in the language is explained in fine detail and accompanied with easily understood coding examples. Existing AGK owners will learn new techniques and gaming ideas with complete game examples.
If you have purchased previous Hands On books, you already know how easy they are to understand, how effective the in-book activities are at reinforcing information, and how useful it is to have complete solutions available to all the tasks.
You can download a free chapter now, to appreciate the detail and the comprehensible format in which it is delivered. Click here to read this chapter in PDF format.
Get Hands On AGK BASIC now and fire up your imagination! In just a few weeks and months you could be earning real money selling your own apps across multiple platforms!
The Game Creators are pleased to announce that a new member of the team takes up his post this week. Steven Holding, known to many as Baxslash in the Community Forums, has accepted our invitation to work full time for the company, bringing his numerous strengths to the fold.
Steven will be doing what he does best; making games. Having already worked with the team for many months now on a freelance basis, his role, time and efforts will be dedicated to making our games great. As a prominent user of our own products - specifically AGK - The Game Creators have a significant catalogue of projects in various stages of development that will now be brought to the market much faster than previously planned.
"I have been working with Steve for many months on a range of projects", says Rick Vanner, Financial Director of TGC. "He is a very talented AGK developer and we have a wide selection of cool AGK projects for him to work on. The first of these projects will come to light early next month, so watch out for that."
Steven has already pushed AGK to various extents, through the many tutorials and extraordinary projects such as Hackathon. "I'm looking forward to hammering AGK to its limit over the coming months. Working on it full time will also give me some useful insights that can help the rest of the community too."
Sometimes, a good game or app can be let down by the simplest of things. Users expect that thin layer of polish, the part that as a developer can represent a large chunk of your time for what seems to be very little improvement. As a result, menus can look bland, informative text can wither into obscurity and transitions can be uninspiring.
There are many ways to add sparkle to your game. In terms of time and effort, there is one extremely easy and painless way to do it fast. Tiny algorithms can change the way to introduce entities to the screen so that rather than just appearing and disappearing, interpolating the transition can add a little spring to their step. Let's start by introducing the Berp.
A Berp is a 'Boing-Like Interpolation'. In short, it takes a transition from start to finish, but overshoots the mark before settling down. You can think of the effect like a sci-fi spacecraft landing, and bouncing softly on a cushion of air as it nears the platform.
To implement the effect, we can wrap this algorithm in a small function. We'll use the code that has been provided by Scraggle in the AGK forums, where he has kindly converted this and other algorithms from C++ to AGK Tier 1, although you can apply the same effects in DarkBASIC Professional.:
function Berp( startValue as float, endValue as float , curValue as float )
curValue = (sin(curValue * 3.14159 * (0.2 + 2.5 * curValue * curValue * curValue)) _
* (1.0 - curValue ^ 2.2) + curValue) * (1.0 + (1.2 * (1.0 - curValue)))
result# = startValue + (endValue - startValue) * curValue
This looks quite complex, but we don't need to know very much about it. The mathematical wizards have created the complex part and all that is now required is 3 values:
SetDisplayAspect( 4.0/3.0 )
` Create some text, centre it, size it and position just offscreen
myText = createText("Let's Play!")
` Set up the Timing parameters
myTime# = Timer()
startTime# = myTime#
` Introduce the text over 1.5 seconds
while myTime# < startTime# + 1.5
timeLapse# = (myTime# - startTime#) / 1.5
yPos# = Berp(-40, 220, timeLapse#,3)
size# = Berp(0.2,1.0,timeLapse#,2)
setTextSize(myText, 40 * size#)
myTime# = Timer()
` End when mouse/screen clicked
while getPointerPressed() <> 1
` ********************* ` *** BERP FUNCTION *** ` *********************
function Berp( startValue as float, endValue as float , curValue as float, _
overshoot as float )
curValue = (sin(curValue * 3.14159 * (0.2 + 2.5 * curValue * curValue * curValue)) _
* (1.0 - curValue ^ 2.2) + curValue) * (1.0 + (overshoot * (1.0 - curValue)))
result# = startValue + (endValue - startValue) * curValue
The video below shows a few examples of how a simple Berp interpolation changes the way text, sprites and anything else can be presented.
Many other transitions are available with alternative algorithms, including easing in and out, bouncing and more. These can be found in the Community Functions Project, found here on the forums.
Building best-selling games can be tough, but at the same time it's fun, and it's very rewarding. Publishing your AGK-developed game is the ultimate reward, and we want to make sure this is as pain-free as possible. For the main part we have provided step-by-step instructions within the AGK helpfiles to get you up and running on various platforms. We also realise that making this process as easy as possible can leave you wanting to understand what you did, and why you did it. This has been deliberately left out of the basic instructions, to prevent confusion.
The Game Creators have released a video tutorial that adds far more detail to the process. Almost 2 hours in length, this video has been broken down into manageable sections to take you through the full process, using the Android platform. It covers all of the technical details involved, from packaging your app, through to getting it into the marketplace.
Just as importantly, we have included much more non-technical advice and helpful tips:
Get started with this video tutorial now, by watching the first chapter and discovering how to get the best out of the material provided.
Take your stress out on Rag Doll Ninja. It's an exhausting task, but somebody has to have the pleasure of doing it! The developers, Papple Studios, have created many fun and simple ways to destress yourself, using sports equipment, balloons, grenades, balls, vortices, and much more.
Stress Ninja is developed using AGK and already available on two platforms from:
A Neon Prime has entered our solar system. We sent our main fleet to engage it but contact has been lost. Now you are our only hope to defeat the Neon Prime and save our planet!
David Carr has released this retro-styled invaders game on Playbook, Android and imminently on iOS. Developed with App Game Kit, it utilises the touch-screen to control your craft as you battle the onslaught of enemy ships. With ten challenging levels, you will need to plan your strategy differently through every wave. From a classical Space Invaders approach, to a Phoenix formation and even surrounded on all sides, no one strategy will get you through every attack.
You will also find global online scores, already populated with a number of community members all desperate to reach the coveted number one spot. Community feedback has been fantastic, and the game has rocketed (pardon the pun) up the Paid Apps chart on PlayBook. You'll find a favourable review of the game on Crackberry.com.
Neon Prime is available here on Android
The Game is also available here on PlayBook.
endtype global gInput as tInput
` Our code
function setInput(iClick, iLeft, iRight, iUp, iDown)The checkInput() function will be called in any part of the program that needs to monitor for swipes. It will return a value:
` Our Code
Building up the function one part at a time, we firstly need to detect when the pointer is pressed; this is the first action we detect and we record the time that it happens (assume that gTime is our global variable for recording the current time). We also need to record where on the screen the pointer was pressed, and initialise the other values in the global variable:
if getPointerPressed() = 1
gInput.pressed = g.time
gInput.pressTime = 0
gInput.clicked = 0
gInput.swiped = 0
gInput.startX = getPointerX()
gInput.startY = getPointerY()
ret = 1
If the pointer is already in the depressed state, we must update the time it has been depressed for
if gInput.pressed > 0The third action we must detect and react to, is releasing the pointer, and this is the crucial action. Here are the steps we must follow to check the outcome of the full suite of actions:
gInput.pressTime = gTime - gInput.pressed
AGK for Pascal is a big step forward for programmers familiar with Pascal and Delphi. I've used a whole range of programming languages over almost twenty-five years, but the most productive has always been Pascal, particularly since Delphi arrived on the scene. Where Visual C++ was a labyrinth of intertwined .h, .cpp and countless other files, Delphi's easy ability to have a range of visual components that could be dragged onto a form and just work remains far superior to any other programming system I've come across. But the language has evolved too, with classes and inheritance. It's a nice, clean way of working, full of power but at the same time, easy to write and read.
Erik van Bilsen's port of the AGK libraries is excellent. You can either code directly with the AGK-based language itself, or use the very neat scene-based system. A Scene is like a level; it can have its own resources or share them with other scenes. When you leave a Scene and go to another, the resources are automatically freed (unless you choose to preserve them). In this way you can easily have a Menu “scene” plus two, three, or one thousand and three levels, moving transparently and smoothly between them. All of the AGK demos have been ported to the scene system, so there's no shortage of example code.
People are almost religious in their adherence to their favourite programming languages, but it's always worth having a look at something else. I learned to program using Basic on an Apple ][ but abandoned it, never to return, when Pascal arrived. I've used Forth, Lisp, C/C++, APL, Modula-2, Oberon and a host of other flavours, but to get the job done quickly and efficiently Pascal is hard to beat while being easy to learn. Once you discover how powerful Sets are, you'll be hooked.
All of this comes for nothing if you already own AGK. You can use the free Lazarus IDE, the Free Pascal compiler, and the free AGK for Pascal system which you'll find in your Order History. Lots of errors you might have made in Basic will be pointed out by the compiler before you even get to the crash and burn stage. Add to this the vast amounts of powerful functions you can include with ease. Want to sort your data as fast as theoretically possible? No problem. Want to find a word in a list of 100,000 very quickly? No problem. There's a universe of great stuff available.
AGK for Pascal is now updated to version 1076 of AGK, and adds Android support. Due to the limitations of the Free Pascal compiler, ARMv7 on Android is not yet supported, but is due to be available soon.
We'll be producing a load of useful tools and goodies, and some tutorials; a beginner's guide to programming in Pascal; visual project management; and eventually a visual level designer. There will also be some powerful server-side stuff for online games. Get on board!
Since the release of U7.62 back in May, work continues on the infamous U77 update, currently aiming to squash some of your most annoying DBP runtime bugs. This upgrade includes fixes to:
In the meantime, we pose a question for the DBP community, and that is whether you would like a third product in the DarkBASIC range; namely DarkBASIC Elite. The cost of this version is likely to be $99 USD. The broad strokes for the product would be that it includes support for the latest DirectX and Windows 8, includes a faster compiler that takes advantage of multi-core systems and includes all the popular DBP modules as part of the core so they don't need to be installed separately. We're just blue sky thinking at the moment, and want to know if this development would be of interest to you. The question for the poll, would you buy Dark Basic Elite?
Sergey K has made all of his plugins available for free, here is the full list for you to browse and pick up any that will help you polish your projects to perfection.
simple and fast ftp commands.
Create your own HTTP website using DarkBASIC Professional. Deliver HTML and PHP-scripted documents from within your program. This plugin is capable of creating chat programs, or anything else you can script.
This plugin includes dialogs:
Listen to live, streaming music stations in-game. Imagine switching radio stations in your driving game and always having the latest music!
If you need the abilitry to download files as a background task, then this plugin wil do exactly that. You can also check the download progress and speed with the commands provided.
Load files from within Zip files, as well as creating your own compressed files from with DarkBASIC Professional, including encryption.
Everything you need to know about both DarkBASIC Professional and FPS Creator development can now be found via Lee Bamber's Tweets. You'll get to hear about every bug fix and feature as it's implemented.
Start following Lee now to get the latest news about your favourite development tools as it happens.
This highly popular Special offer is still available to you, proving to be the best package deal we've ever created: Dark Game Studio, Dark Physics, Dark Lights, Dark AI, Extends and a whole lot more for an incredibly low price of $49.99. Save over $170!
Creating your own PC games is now easier than ever with this special compilation of game making tools:
Save over $170 on this special deal. Be sure to check out the screen shots and the online videos. You can of course order safely and securely online, for delivery via postal mail.
The Game Creators are pleased to announce the formation of the new AGK Testing Team, selected from the dedicated community of coders. Their role is to work with the game and app developers who have experienced issues with their endeavours, confirm that the problems are genuine, and to faithfully reproduce them. This naturally frees up the core AGK development team for rapid deployment of the solution of the reported problems.
The new team is made up of community members who are themselves users of the language. They represent the three nodes of the global polygon that are Australia, Europe and the United States:
We wish all members of the team every success in their new roles, and their contribution to making AGK an even stronger force in the mobile development arena.
Japan at the end of the 15th century. States are warring over the rule of Japan. Samurai Legends is an action adventure game. On the technical side, the game is of course being created with DBPro, Evolved's Advanced Lighting shaders are responsible for the lighting of the game. This WIP is something we'll be keeping an eye on over the coming months.
WLGfx has got DarkBASIC Professional to run both openGL and DirectX at the same time. The API used is Irrlicht; it has a lot of features that can easily be adapted for DBP. Being able to transfer meshes to and from irrlicht and DBP allows more 3D file formats than DBP currently has. Read the full technical details in the forum thread and follow the progress.
For those of you watching the latest beta version of FPS Creator, it's probably old news that V120 is being worked on and refined, with the next beta looming for release. For that do not know, we have taken V119 and really hammered it to find out if there was anything we could do, both stability and performance wise to improve things a little more.
It turns out we could, and V120 will be an update that improves on where V119 left off. For a detailed list of what has been added, you can check out the FPSC Issues Board for a run down of all the issues resolved and remaining.
We also finished the V119 competition and declared a few deserving winners who showed off what V119 can do. Scene Commander and his accompanying judges have given their results and comments below, congratulations to the winners.
To celebrate the release of V119 into the world, we announced the official V119 game design competition. We're wanted to see the best use of all of the new features. Scene Commander headed up the judging panel which also included Bruce 3371 and Bugsy, here is the verdict.
It felt as if there was a lot to do, although it would have been nice if it had been a little more challenging.
Ched80 wins any 5 official TGC model packs.
This game really did look as if it had potential and I would love to see it developed, but while looking very good, it failed to meet much of the criteria for the competition fully because of the very limited use of V119. However I look forward to seeing what becomes of it in the future.
ASTEK wins his choice of any 3 official TGC model packs.
Overall a good start, this game could be a lot better with some more imaginative scripting and longer game play.
This entry wins any 1 official TGC model pack.
This offer has proved so popular amongst new users of FPS Creator and those that simply want 9 new model packs at a fanatstic price, that we just let it run and run! Get FPS Creator and 9 Model Packs for an incredibly low price of $29.99 USD (€22.00 EUR, £19.99 GBP). This deal includes:
Click here to purchase the Bonanza pack, including FPS Creator
for just $29.99 / €22.00 / £19.99
This month we'd like to share with you a Coding Tip to solve a common problem.
A question I find reiterating over the forums is how to point a sprite at the mouse, another sprite or at a set of coordinates using DarkBASIC Pro or App Game Kit. Here is how it's done. The language used for this tutorial is App Game Kit; however, it can easily be translated for use in DarkBASIC Pro.
Before we begin, you'll need this image or one similar to it (pointing up).
Create a new project, create a sprite from our image and set it up so that it's offset is at the centre of the sprite. Like so:
// set the resolution
// load in an arrow and create a sprite
img = loadImage("arrow0000.png")
spr = createSprite(img)
// position the sprite at the centre of the screen -
// the default offset is at the centre of the sprite.
setSpritePositionByOffset(spr, getVirtualWidth()/2, getVirtualHeight()/2)
Next, we'll need 4 variables to hold the set of coordinates we're pointing from and pointing to.
// declare a set of variables
toX as integer
toY as integer
fromX as integer
fromY as integer
Finally, we create our loop, retrieve both the ‘from' and ‘to' coordinates and set the sprite's angle.
// retrieve the coordinates to point to ie the mouse coordinates
toX = getPointerX()
toY = getPointerY()
// retrieve the coordinates to point from ie the sprite's position
fromX = getSpriteXByOffset(spr)
fromY = getSpriteYByOffset(spr)
// set the sprite's angle
setSpriteAngle(spr, atanfull( toX - fromX, toY - fromY))
// update the screen
That's it! Now for the explanation. The ATanFull command will return an angle based on an' X' value and a 'Y' value. We calculate both of these with the formulas:
X = toX - fromX
Y = toY - fromY
However, when applying the angle to the sprite, you may have to apply an offset depending on which way your sprite is ‘pointing' in the image. For example, if your sprite points to the right in the image, you will need to subtract 90 degrees from the value that ATanFull returns; so you would end up with something like this:
setSpriteAngle(spr, atanfull( toX - fromX, toY - fromY) - 90.0)
This is because 0 degrees is returned when the coordinate (toX, toY) is directly above (fromX, fromY) and then increases in a clockwise direction.
Enjoy making use of this simple but very handy technique. This tutorial was presented in Issue 9 of the ADG newsletter.
As a professional archaeologist you've seen and done it all. Battled and escaped Nazis, jumped over pits of bloody spikes, been chased by giant rolling boulders, drunk from sacred wooden cups and then there was that one crazy night with aliens. But nothing before now could prepare you for what lies in THE CHAMBER OF ARTIFACTS!
The 3D combo for Month's July to August is to build an artifact to put in this chamber. It can be anything from human remains, to evil traps or a steampunk watch. Anything flies as long as it can be considered an artifact.
Anyone entering can upload a final model and the judging team plan to do a huge render of all the artifacts in the chamber room. You can build multiple models but only one will be considered for judging.
We look forward to seeing what everyone comes up with, good luck!
The Contest will run through to August 31st, 2012, the official Forum thread is here.
The accolades for the winners are retained until the next competition winners, and are as follows:
3DMaster - Champion awarded to the overall winner in the competition, an entry which displays both modeling and texturing excellence.
3DMaster - Best Model awarded to the runner up who demonstrates the finest modeling skills in the competition.
3DMaster - Best Texture awarded to the runner up who demonstrates texturing wizardry in the competition.
The awards will cling to your Avatar until the results of the following competition are announced. So to keep your award, you must defend your honour in battle once again!
For those who are reading our newsletter State-side, you may be pleased to learn that TGC will be at the Intel Developer Forum this year (IDF) from the 11th September through to the 13th. You will find us at various stands throughout the three days, and of course we will be Tweeting at every bar and restaurant so you can track us down for a quick pint and a chat.
Join over 4,500 TGC fans on Facebook for the chance to win a $100 gift voucher each month. Simply add yourself as a TGC Fan using the "Like" button and then actively participate in the discussions at least once a month. We'll pick a random winner from all who input into the TGC Facebook discussions. The voucher can be spent on any of the products on our site. Sign up now, and good luck!
All of the newsletter articles, tutorials and announcements are now online, and available as soon as it hits the press.
You can subscribe to our newsfeed using RSS, making delivery of our featured articles even more slick and efficient. The address for your reader of choice is:
Add the feed to your mobile device, the example shown here is the News App that comes as standard on the Blackberry PlayBook; Read your news on the move!
Alternatively, use Google Reader on your Netbook or Desktop computer to browse the headlines at your leisure. You can use the monthly archives to review older information, and tutorials that will be as valuable in 12 months as they are today. You'll find numerous ways to browse by category and keywords, and even catch up with Lee Bamber's Tweets in the same interface!