If you cannot view this newsletter correctly, click here to view it online

Editorial - December 2013

Issue 130 cover

Interest rates have been at all-time lows for a couple of years if not longer. We haven't heard that rates have increased by "half a percentage point" for some time. If we're completely honest, most of us aren't particularly interested. After all is half a percentage point worth worrying about? It all depends on your baseline.

Take the example of a high-performing student who always scores 95% in tests. If he increases his result by half a percent to 95.5%, the difference is minimal. In relation to the baseline - 95% - he has made a 0.53% improvement. This is calculated by setting 95 as 100%, his standard mark.

Now take the current interest rate of 0.5%. Let's assume this results in you earning £1000 interest per year on your savings account. If you increase it by half a percentage point to 1%, then in relation to the baseline of 0.5% you have doubled the interest. The net effect (ignoring compound interest for the sake of simplicity) is that you now earn £2000 in interest! Whilst the student with a high baseline is particularly unimpressed with a difference of 0.5%, the thrifty saver is planning an extra holiday this year. Yet the difference in percentage points was identical. The media use this idea in reverse to sensationalise stories. MRSA sickness rates in hospitals have been reported as doubling in certain hospitals. But if only one person got ill previously, then it now amounts to just 2.This can be feasibly put down to chance, and it's not a sensational story put in this context.

Back in the world of software development this is a very important concept. If I was to tell you that I added a character to my game and the frame rate was around 60 frames per second, it would seem reasonable. But you don't know what the previous frame rate was, or the baseline. If the baseline was 60 too, then it's a good result. If the previous frame rate was 300 then we just consumed 240 frames per second of processing power by adding one character. Finding your baseline is important and you should refer to it all the way through development and testing.

In Lee's FPSC Reloaded updates this month, he explains how he creates his baseline from which to ensure the many hundreds of elements in the game have the smallest of impact on performance. It's ingenious in its simplicity. There are many more FPSCR updates too, including news of a new gallery, and a place for sharing tips. We have AGK 2 updates and signs of the first beta release. Plus we have a mini tutorial and much more news to share.

Until next time,

 Steve Vink

contents

(1) FPSCR Beta (3) FPSCR Forums (4) FPSC News (5) AGK and WiDi (6) AGK2 (7) Approaching Infinity (8) AGK Tutorial (9) TGC Channel (10) From the Forums (11) Social Feeds (12) The Game Creators News

FPS Creator Reloaded - Beta Time

It's nearly a month since we first launched the first Beta. We've learnt a lot since then and have been working hard to fine tune and optimise the core game engine for Reloaded. If we have met our aims, our pledgers should be installing and running the new Beta1.003 about now rather than reading this newsletter!

The underlying engine has had a number of enhancements added:

 

Stunning Scenery

In the meantime, our beta testers continue to produce the most stunning screen captures of their creations. Here are some more to whet your appetite.

Port Scene from FPSC Reloaded
Port Scene

 

Pirate Cove, FPS Creator Reloaded
Pirate Cove

 

Moated Castle
Moated Castle

 

 Aztec Dream
Aztec Dream

 

 

The FPS Creator Reloaded Website

FPSCR WebsiteFor anyone that missed the news in October, the new FPS Creator Reloaded website has arrived! Everything you need to know about the upcoming release is in one place:

 

The Gallery

Image GalleryA new feature this month is The Gallery. With over 80 images already, this is a great place to look for inspiration and to see the capabilities of FPSC Reloaded. The images are being uploaded by early users of Reloaded. If you are inspired enough to create your own scenes but are not a pledger, you can join in by becoming a Pledger. Your pledge also entitles you to be one of the first owners of the final product when it is released.

FPSCR Gallery

 

The Forums

This is beyond doubt the easiest game creator I've ever used, yielding excellent results in a matter of seconds. The simple drag and drop system is a pleasure to use.

Dave Hawkins, FPSC Reloaded User.

 

The Apollo forums have now been fully reinstated on the FPSC Reloaded website, and enhanced with a few new features.

Firstly, they have a new look and feel. This is underpinned by an upgrade in the technology used; as robust as Apollo is, it has been a while since it had a service.

A major new function is Private Messaging. From any post - on the original TGC forums also - you can send a private message from the option at the bottom, alongside the existing profile and email buttons. At the top of every forum page is a button to click and review your sent and received messages.

 

FPSCR Forums

FPS Creator Reloaded FAQ

Reloaded FAQVeterans of FPSC will be familiar with the Community Guide, created by Nickydude. In a similar vein, he is now creating an FAQ for Reloaded. It will no doubt become the definitive guide over time and evolve just as the Community Guide did. The FAQ is available here, and already includes answers to questions such as:

 

FPSC Reloaded Blog

FPS Creator Reloaded by The Game Creators

  

By Lee Bamber

Each month we will be bringing you updates on the progress of FPS Creator Reloaded. You will find a running commentary on the development through the FPSC-R Blog, but right here you will find some of the selected highlights that deserve your utmost attention. You can also follow the development on the official Facebook page. Within the R&D offices here at TGC, Reloaded is now our main focus and we aim to constantly develop it to make it into a world class game creation tool. With a refreshed passion we're excited to be bringing the technology up to date so it'll make amazing looking games.

Lee Bamber, FPS Creator Reloaded Developer summarises his November achievements.

The end of November marks another significant milestone, with the third beta release now out. The plan for the past few weeks involved creating a solid version by Wednesday, on which plenty of testing could be performed Thursday and Friday. The old regime of releasing new updates that break old projects should really be put to rest here at TGC, and we do that by spending two days NOT adding features and JUST testing. The objective is stability, consistency, and THEN performance. You can then be at least assured that the update will not break stuff you have working right now.

Prior to the cut-off for testing, there was a lot of updates throughout November. Here are some of the highlights, be sure to read the blog for the full details.

Look up to the Skies

It is all too easy to be critical and non-critical of your work at the same time. There is always a sense of can-do-better when implementing features and wanting to stretch the capabilities. Yet when it comes to testing, one has to be aware of things being just okay rather than perfect. To ensure every component is running efficiently a very simple baseline is utilised. Pointing the viewport to the sky ensures that there is an absolute minimum of activity being rendered.

FPSC Reloaded Sky
 

As you can see, when looking up at the sky there are only seven draw calls being made. Four of those are sky box surfaces (one for each 'side' of the sky being rendered), one for the post process quad to render the main camera to the screen, one for the dummy terrain object which is needed to regulate the terrain shader system and finally one for the world sized water plane.

I also discovered the cause of the 'super high drain' from the post processing which was caused by the lightray camera rendering everything, even if you switched it off in a previous session, now fixed.

After hacking my last few singular calls out, and noticed no performance gain beyond the high 300's mark, I decided to leave them be.  I am now curious what FPS scores users will get from a blank scene looking at the sky with everything switched off. I agree it's not the makings of the next killer game, but it will be very interesting to see how low-end systems handle this little experiment, and if they DO perform badly, then we can start to look elsewhere for the culprit such as the CPU, swap files or even the panel that displays the score in the first place.

The differences that can be made

You can read the full details of the technologies involved and improvements made in the full blog, but it is worth pointing out here how much of a difference we can make to the FPSC Reloaded engine, and why so much effort pays off. Having had a serious knock due to a lot of effort in the occlusion and batching systems producing little gain, I decided to pick my confidence off the floor and start from the beginning. Occlusion is intended to improve speed immensely by not drawing what the player cannot see. Batching is designed to significantly reduce the number of draw calls each time the screen is drawn. My current Beta 1.002 update rendered the amazing vista of nothing but flat landscape and trees at 42 frames per second, with everything switched off. Switching on the essential functions of a good game engine reduced it to just 10 frames per second.

Now the new code was reinstated. This optimizes the terrain and uses the triple whammy of GPU occlusion, geometry batching and QUAD system. GPU occlusion draws everything from front to back, so only visible pixels are drawn. The Quad system converts complex but distant objects into 2-polygon billboard representations, indistinguishable from the real thing at long distances. The new statistics on the exact same level was increased from 10 to 100 frames per second with everything on and 42 to 155 frames per second with everything switched off. Essentially, this equates to a 1000% increase in performance.

The team continue to focus on performance issues as we move into December. TGC and the community see it as a vital issue that must be given the time it deserves.

 

Make your Pledge to the Project 

FPSC Reloaded is in constant development and the first Betas are with our diehard fans and newcomers . We continue to take pledges so we can continue to develop the product and add more features. If you want to be one of the key supporters of this amazing new game maker then click HERE to make your pledge.

 Thanks to everyone who has helped so far. 

Lee goes WiDi with AGK

by Lee Bamber

As some of you know before FPSC Reloaded, my chief concern and overriding project was AGK (App Game Kit) which allows anyone to code in a simple to use BASIC (or C++) language and then deploy to a wide variety of platforms including Windows, Mac, iOS, Blackberry and of course Android.  It was handed over at the start of the year to Paul, the real architect of the engine and current custodian of all things AGK flavored.

Since completing the initial run of Driving Test Success products at the start of the year, I have been pleased to see the proliferation of Android devices and the sophistication of what they can now do. The main reason I prefer Android over iOS is that Google kindly allow us to ship our AGK Player without undue restriction whereas Apple rules prevent the same app distributed through iTunes.  The AGK Player allows any developer to 'instantly' broadcast their app to the device and run natively at full speed, without the need for complicated debug setups or submitting the app to the various stores first.

I have also been lucky to obtain a few Android devices that sport the new x86 based architecture, and I have spent a day trying out various AGK apps to see how they performed.  I also had the opportunity to try out the new WiDi technology, which allows you to project the contents of your mobile or tablet screen direct to your TV.

Lee Makes a Video

I had always intended to make a video around Android and WiDi as it's a great way to demonstrate what the technology can do. As most of you know, I don't have the time these days to indulge in coding for the fun of discovery, but I had a few ideas and wanted to put them out there.  Hopefully someone in the AGK developer community will pick up the battens and run with them.

The video is over ten minutes long so I would make a cup of tea before pressing play.  I must confess to a little self-publicizing, but I am quite proud of the DTS app range currently riding high in the Android and iOS charts, and wanted to blow my trumpet.




AGK Factoids

Did you know that many tools that promise 'easy app creation for Android' are often built upon a succession of high level layers that degrade overall performance?  Many use Java/Dalvik or HTML5 style abstractions to fuel their particular engines, and your app creations sit on top of that.  By the time you get down to the metal, your app is so bloated you're lucky to get even 50% of the performance you could have had.

AGK is designed differently, with it's engine coded entirely in NDK (C++) and compiling down to pure machine code. Any AGK app created in C++ compiles right down to the native architecture of the device, so if you have an Intel x86 architecture running some impressive clock speeds, an AGK app would run as close to the metal as it's possible to get, providing a VERY fast app experience. If you use BASIC, the resulting byte code is processed through an insanely tight and uncluttered switch case, losing only a marginal drop in performance, and only then for extremely large programs.

It is for these reasons that AGK is an ideal language and developer platform for fast apps and games, and why it should be your first choice if speed is your top priority.  Not just the speed of the engine, but the speed of app development, helped along by its battery of easy to use commands, extensive app examples and helpful community.

A Successful Kickstarter

In case you missed the news, we also massively succeeded with our AGK kickstarter campaign earlier this year and as I type, the features are being coded thick and fast, and early prototypes are looking very cool!  

http://www.kickstarter.com/projects/tgc/app-game-kit-v2

You will notice from the kickstarter list that we also included full OUYA support, which is one of the first full Android consoles to hit the market. We anticipated demand for this, and had the device in our hands hot off the manufacturing line.  Watch the AGK forum and news feeds for the release of full OUYA store and controller support in a future AGK update!

AGK2 - Spine Tingling

2D animation was for many years dominated by the original sprite concepts. Anyone who grew up in the eighties will remember the 8x8 characters that cycled through a number of frames (just two or three!) to make a character walk and stand.

Jet Set SpriteJet Set SpriteJet Set SpriteJet Set Sprite

Technology has progressed immensely since then, with one of  the latest  offerings being Spine, at a price that is affordable to the hobbyist coder who wants to make professional looking games. Spine allows you to compose characters and entities from multiple components, animate separate parts using a boned framework, and bring them to life in your game. Limbs and machine parts can be animated independently of one another, or all together in preset sequences.

The Spine engine is now incorporated into the AGK 2 framework, allowing advanced 2D animation techniques. The following video demonstrates Spine in action. 

 

There are many videos showing how Spine animations can be constructed, like this one:

 

Spine is available directly from the cSpine Animationompany website.

 

 

Developers are actively publishing AGK games

More about App Game Kit 2

App Game Kit (AGK) 2 will be a new and enhanced version of our current App Game Kit product. AGK is already used by hundreds of developers around the world, helping them to quickly create games and utility apps that can be coded once and then deployed across popular mobile platforms.

We have an exciting vision of how we want to evolve the product and your help is already moving the development forward with confidence.

For those new to AGK, the BASIC scripting system is very easy to learn and start coding with. If you're a seasoned developer you can access the extensive AGK libraries and use these inside your C++ projects.

The BASIC language has lots of game based commands that make it a cinch to create sprites, play sounds, add physics, code multiplayer games and much, much more. Once your game is compiled  you can take the resulting project byte code and run that through special players that we have created for the support platforms (iOS, Android, Windows, Mac, Blackberry). 

So far we have outlined the new capabilities that have become a tangible path to AGK 2. Don't forget that prior to July, we already had our initial Kickstarter funded and Goal One reached. Here is a reminder of the features that are included with those levels:

AGK has a very strong 2D engine on to which we will add new commands and effects so your games can look even more awesome.

Additionally, the sound library will be expanded to allow finer control of individual sounds - the volume and pitch will be controllable. Where supported, we'll add seeking control of sounds and music files and the ability to read the current volume data. The new App Window Size feature will allow you to change the size of the app window at game run-time for Windows and Mac. 

AGK 2 KickstarterYou can still pledge! We have a PayPal option now that the Kickstarter Project has completed.

 

 

Approaching Infinity

Approaching Infinity

With over 222 backers and $4,700 in crowdsourced funding, this AGK project is set to have a successful launch for all fans of roguelike games. You can still back this project on Kickstarter, and ensure it reaches the $5,000 goal.

The team includes two respected members of the TGC community, namely Bob Saunders (IBOL) and David Gervais. Bob has spent many years working on and gaining a reputation for roguelike and space trading games, including Grail of the Gods in under 20 lines and 7-day creations such as The Destiny of Heroes and 88 Pages. David is renowned for his excellent graphical contributions, including his latest Sprite Sheets found in the AGK forums and the 2D Graphics Buffet

A Space Adventure Roguelike

Approaching Infinity is an immersive graphical sandbox roguelike game set in a hostile, war-torn universe. Take command of your ship and crew as you explore space, planets, shipwrecks, and other unique environments. Find, buy, and sell commodities, items, and mysterious artifacts. Defend yourself against aggressive space pirates and hungry planetary denizens. Try not to die! Complete quests for profit, or to change the very power structure of the galaxy! 

And the universe is infinite. There is no limit to the number of sectors and planets you can explore. There is no "level cap". Items, equipment, and monsters continue to get more powerful no matter how far you go. Approaching Infinity can also be played quickly. If you focus on pursuing game-winning goals, you can achieve them in a reasonable amount of time. There is no need to get to sector 1729, but it's there if you want it! You will continue to find new and interesting things.

What Is A "Rogue-Like"

Approaching InfinityRoguelikes are old-school games about exploration, combat, and loot; classic RPG! The world is represented as a 2D grid. Movement and combat are turn-based. The environments are procedurally generated (meaning you'll never see the same place twice). There are things in the game whose properties must be identified by trial and clever thinking. And it enforces Perma-Death. When you die, you die. And you will die! Just learn what you did wrong, and be more careful next time. When every move you make could be your last, each one becomes all the more precious!

But unlike many other roguelikes, Approaching Infinity strives to be accessible. Graphical tiles, simple controls, mouse support, availability of information. All of these contribute to a game that is easy to get into. And hard to walk away from!

Make a Pledge

Pledge to the projectIf you would like to support the success of another project from within our community, you can pledge now. Anything above $10 will reward you with the final game. Don't wait, there are only a few days left!

 

AGK Mini Tutorial - Console

Outputting data to the screen has been the core of debugging for decades. The simplicity of the commands and the small effort required make it a favoured technique around the globe. With a little more initial effort we can increase the value of this technique many times.

Console TutorialThis mini tutorial is suitable for all levels of ability, but will be most useful to beginners who need a little help to help themselves. It describes the creation of a scrolling console. It allows the developer to add debug messages wherever needed, and they will be added to a growing list of debug messages in the top left corner of the screen. When the console fills, the messages will scroll off the screen, allowing for the most recent to be always visible.

Firstly, we should set the standard text size and it's colour; this is the text used with the print() command. Throughout the tutorial if you need more information on the commands used, type them into your AGK editor and hit <F1> for the full description.

setPrintSize(16)
setPrintColor(232,232,255,212)

Here the text size is 16 pixels high, and is an off-white, slightly transparent colour.

Next, we need a simple array to hold our messages. This is an array of strings.

dim arrConsole[50] as string

The final element to make the system work is a global variable to keep track of the latest line in the message list.

Global consoleLine

We now have the setup completed. Let's put this into a function which we can call at the start of any program. When we have finished, the three functions we are creating will be able to be dropped into any program, including ones you have already written.

Function consoleInit()
setPrintSize(16)
setPrintColor(232,232,255,212)
dim arrConsole[50] as string
Global consoleLine
endfunction

The next step is to create a function that we can call at any time to add a debug message to the list. We'll look at the function first, and then explain the elements.

` ************************
function WriteConsole(text$)
` ************************
    if consoleLine = 50
        consoleLine = 1
    else
        inc consoleLine, 1
    endif
    arrConsole[consoleLine] = text$
endfunction

Whenever we call this function, our text will be written to the array. Although it would at first seem logical to always have the latest message in position 1, this would involve cycling the messages down through the array elements each time we added a new one, which is not very efficient. We use the consoleLine variable to keep track of the last message issued, and we will be a little smarter later on when we display the console. We add 1 to the variable each time and if we reach 50 then we return back to 1. The last line of the function uses this number to write to the correct array element.

The third and final function that we need to create will write the messages to the screen. Let's view the code and then explain it.

` **************************
Function OutputConsole()
` **************************



    for n = consoleLine + 1 to 50
        print(arrConsole[n])
    next n

    for n = 1 to consoleLine
        print(arrConsole[n])
    next n

endfunction

In essence, all we are doing in this function is reading each array element and printing it to the screen. The extra code is needed to ensure we print them in chronological order. Our latest message is at array element consoleLine. Our oldest message is at array element consoleLine + 1. This is easily explained with an example:

To implement this into any program, start by copying the three functions into your source code. Then at the start of the program call the first function:

consoleInit()

To add a message, call the second function:

writeConsole("We have reached the end of the level")

And finally, just before you sync() the game, call the third function:

outputConsole()

It's as simple as that!

Advantages and disadvantages

The primary advantage to this method is its simplicity and ability to adapt. As you traverse different parts of your code the relevant messages will be output to the console. At the same time you have visibility of previous messages in order to make comparisons and plot a history of events.

What you cannot do with this method is constantly monitor specific values each game cycle, such as the position of an object. The scrolling nature of the console is designed to output periodic values; at 60 frames per second a constant monitor would scroll past at a nauseous rate.
In a future article we will look at overcoming the shortfalls and creating a hybrid console to accommodate both requirements. We will also investigate other ways to improve the functionality of the console.

 

The TGC YouTube Channel

Youtube ChannelHave you visited the TGC YouTube Channel yet? You may be surprised:

Youtube ChannelTake a look at our channel now, and make sure you hit the subscribe button to stay up to date with new video uploads. Very often you'll get advanced previews of upcoming news.

From The Forums

FPSC FoumsBullet Physics in DarkBASIC Professional

Bullet PhysicsStab in the Dark Software are currently working on a wrapper for Bullet Physics in DarkBASIC Professional. This is the same physics engine currently being implemented in AGK 2, and includes some newer features such as Voronoi fracturing of objects. Here is a video of the early development phase and is already showing promising signs:

 

 

 

Keep up to date with TGC on Facebook & Google+

Find us on Facebook to discover more about The Game CreatorsJoin over 5,900 fans on TGC's Facebook page to keep bang up to date on news, user projects from the forums and discussions.

We're keen to hear from all our avid users and we always love to hear what you've been up to with the tools we sell. So if you have something you want to share with the wider TGC audience why not post it into the TGC Facebook page?

FPSC Reloaded

FPS Creator Reloaded on FacebookThere are now almost 1200 fans discussing Reloaded on our Facebook page right now. Whether you simply want to see the update and progress news as it is released, or get involved in technical discussions about LOD, Light and lots of other topics, sign up to this page today to be part of it.

 

App Game Kit 

You can join in the Facebook discussions in our AGK group page with over 550 members and we have a new AGK Facebook page.

 

Google+

You can also follow our products on Google+ 

TGC on Google+

FPSC Reloaded on Google+

App Game Kit on Google+ 

 

 

 

The Game Creators News

News, views, product launches, videos, tutorials, model packs,
community projects and competitions;
you will find all of them on The Games Creators News site.

All of the newsletter articles, tutorials and announcements are now online, and available as soon as it hits the press. 

Subscribe using your Favourite Newsreader 

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:

//www.thegamecreators.com/news/feed

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!

RSS Newsreader

 

Alternatively, use a service such as Newsblur or Skimr 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!

 

"A computer once beat me at chess, but it was no match for me at kick boxing."

Emo Philips