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

Editorial - March 2012

Issue 110 cover

If you understand some of the complex ways in which the human mind operates, you can change the way your customers play your game, and the level to which they'll keep on playing. Here's a great example of how the same outcome can be presented in two different ways. Firstly, give your player 1,000 gold pieces. Next, offer them a further guaranteed 500 gold pieces, or allow them to take a challenge (puzzle or roll of a dice) where they have a 50% chance of winning 1,000 gold pieces. Most players will take the guaranteed bonus, especially if that bonus equates to a significant piece of kit, or a few more places up the leader board.

Now let's look at a second way of doing the same thing. Give your player 2,000 gold pieces. Next set them the same challenge, where they can lose a guaranteed 500 gold pieces, or take the risk and stand a 50% chance of keeping everything. Unknowingly, you have just changed the attitude of the player, this time it is almost certain that they will take the risk, pushing them into taking the more exciting route through your game.

So what is the difference? Quite simply, people don't like to lose. In example one, there is a guaranteed win scenario of 500 gold pieces, a very enticing option. In example two, you have the choice of a guaranteed loss of 500 gold pieces (although the outcome is identical in both cases), or an opportunity to prevent the loss (the same outcome as the gamble in example one). The risk aversion that we are pre-programmed to seek out will take effect, and the gamble is on! What's more, any losses will drive the player to seek recompense later in the game, and the 2,000 gold pieces became more precious when they were protected. The summary of this method is to add excitment and intrigue to your game by giving freely and then threatening to take it away again.

Having said all of that, this issue contradicts the theory by giving freely and not taking away. We have news of upcoming new commands for AGK, alongside the impending V119 update for FPS Creator, and updates for DarkBASIC Professional. The ADG Group have been working hard to earn their free Blackberry Playbooks, and there are more free games from the community of developers. Of course we have the usual roundup of news from across the product range, and the AGK tutorial to get you working with physics.

Until next time,

Steve Vink

This month's cover is taken from the Gallery, and is an FPSC screenshot entitled "Twin Worlds Port Tiranee".

contents

(1) App Game Kit (2) AGK meets .Net (3) DBP (4) Shmup Kit (5) Dark Occlusion (7) TGC AppUp Dev Group (8) AGK Bitesize (9) FPSC News (10) V-Packer (13) From the Forums (14) Winner

AGK V107 Expands

AGK has arrived

It's been a busy month down in the engine room of AGK as we implement and prepare the biggest AGK update to date. As you know from the previous newsletter we have sketched out over 50 new commands to be added to the language, and along the way during the last month we have increased this number further.

One of the most exciting additions we are putting the finishing touches to is the Image Creation commands which include such favourites as GetImage, ChooseImage, CopyImage and SaveImage. You might be able to guess at their functionality, and you would undoubtedly be correct. By allowing AGK apps to create, select, grab and save images dynamically the possibilities for new functionality and game effects soar. As this functionality is backed by the incredibly fast OpenGL hardware accelerated architecture, you will be free to build these commands into the heart of your apps.

As we develop and test build 107 (the next AGK update), we continue to find ways to make small improvements to the language and command set. In addition to the occasional new command, we also found time to ask ourselves the question, ‘how quick could we write a debugging tool'? The answer was just under four hours! It has a way to go, and will not be part of the 107 build, but almost immediately we saw the huge benefit when developing AGK test apps, and we're sure you are going to love what we are working on. More news on the debugger in the next newsletter when we hope to have it ready for some internal beta testing, and maybe a screenshot or two.

As we tinker with the latest version, we are always impressed and excited to see very cool unique AGK apps appear in the different stores around the ecosystem. If your motivation is waning while working on an app, just nip to the Gallery and get inspired by authors who have their apps selling right now.

 

Another internal component that's coming along a treat is the AGK for Browser platform which now has the whole interpreter, AGK framework and basic core functionalities including arrays and a few image and sprite commands. We've continued to run our performance tests on the player and have been impressed with the speed Java provides. We have also made sure the player reports when the installed Java version requires updating, so you are only a click away from playing AGK apps online. We are basing the platform on Java 1.6 or above (the same minimum specification as Runescape) so you will be guaranteed an audience of several hundred million when you choose to deploy your AGK creations through a browser.

As we tinker with the latest version, we are always impressed and excited to see very cool unique AGK apps appear in the different stores around the ecosystem. If your motivation is waning while working on an app, just nip to the Gallery and get inspired by authors who have their apps selling right now.

One final item of news that landed on our desk at the last possible moment was the opportunity for AGK users to grab a free Blackberry Playbook. If you follow the twitter feeds from us, you would have received the alert to register as a Playbook developer and submit before the end of February. Thanks to the write-once AGK system, developers could almost immediately deploy their creation to Playbook for the chance to get a free tablet and we hope many of you took up the opportunity in the few days to register. We'll try to find out who got a tablet in the next edition of the newsletter. It is rumoured that Lee Bamber, that overworked fool, came up from the engine room, knocked up two apps for the Playbook store, submitted them before the deadline and then went back to work. We'll report if he won one too.

Here is a reminder of some of the new commands you can expect:

The AGK Survey

AGK SurveyIn order to move AGK forward in the direction that you want us to take, we have put together a short survey. If you want to shape the product as it evolves through 2012, we urge you to take the survey and let us know what is most important to you. The survey is available now, and after taking it you can take the opportunity to review what other users are looking for.

AGK SurveyThe survey is available here. It comprises of a series of multi-selection responses, followed by an opportunity to put into words your issues and desires.

AGK in Develop Magazine

Develop MagazineBoth the printed and online versions of Develop Magazine feature The App Game Kit this month. The interview with Rick Vanner focuses on the simplicity of coding for the hobbyist developer, while providing the complexity that hardened coders would like to push the engine to its limits. You can read the online article here, Develop Magazinewhere it features alongside many other documentaries on gaming industry activity.

AGK Player Service

As many of you are aware, to run your AGK app on an iOS device is not as straight forward as AGK Player Servicerunning it on an Android device. The main reason being that Android marketplace allows apps to be listed on their store which download and interpret code. Apple does not allow apps that download arbitrary code to be placed on their app store, and so we created the AGK Viewer as a solution. The AGK Viewer (which is available from the app store now) will accept a stream from your desktop, with the app running from there instead. This creates a good simulation of what your app might look like and play like on the device, without it actually running the actual code inside the device. The downside is that the streaming process degrades visual quality and raw performance, and often you have to tip the scales one way or the other to experience either.

In pursuit of bringing you the best experience across all devices, we have devised a solution that stays within Apple rules and allows you to run your Tier1 BASIC apps at near native speeds with your own fully fledged AGK Player running on all your iOS devices. We call it the AGK Player Service and you will find the product available from the TGC and AGK websites. The product provides a process whereby you can build your own AGK Player for your devices without owning a Mac and without any specific iOS experience. The process works like this:

The process, not including the time it takes you to register with Apple, is about 10-20 minutes during normal working hours, and we explain each step carefully so you don't get lost. We also have email support throughout the process so you'll have help going through it.

Ask anyone who already has built their own AGK Player for iPhone and iPod and they will tell you, it's a world apart from using the AGK Viewer. Playing the app you just created in Windows running at full speed on an iPad is a great feeling, and we're pleased to offer a service which enables this. For more information, you can contact our service guy directly at agkplayer@gmail.com

This service will enable you to install the AGK Player on your iOS devices (iPhone, iPad, iPod)AGK Player Service OS 3.2 or above. The product price does not include the $99 you will need to pay directly to Apple to purchase the iOS developer account. You can purchase the service now by visiting the the product page.

The AGK Gallery - New Entries

Double Pinochle

Pinochleby Steele Studios

Double Pinochle is a revolutionary take on the classic Double Deck-style card game. Double Pinochle allows the player to play Pinochle the way it was meant to be played, with an intelligent partner and challenging opponents. 

Additionally, Double Pinochle offers the opportunity for players to customize their deck with three different themes. The game is available on iOS and Android.

 

Features:

 

WaterWater

by Bukket Games

With an addicting premise, Water is easy to learn but difficult to master. What do you do? Collect water droplets. Carve these twenty-five selected levels to make a route for your water to flow through towards the goal. Sounds easy enough - however, both your time and bombs are limited.

Go to AGK GallerySo, the real question is: Will you be able to remain strong under pressure and earn the highest rankings in Water?

 

Cats Eyes

Cats Eyesby Burlpony

A fun Little Marble Maze game. Tilt your iPod, iPad or iPhone to guide 20 marbles to the exit. 

Go to AGK Gallery

 

 

 

Get into The Gallery 

If you have published a game written in AGK - Tier 1 or Tier 2 - then you can use the Gallery to show off your creation. Link your Game listing to all the major marketplaces and use it as your own personal Sales channel. AGK Gallery for your mobile gamesAdd your content now, and be one of the first to enter the Gallery. Here is what you can include in your entry, the Gallery will do the hard work of presenting it perfectly as a web page dedicated to your game.

  1. 1. Application Name
  2. 2. Short Description
  3. 3. Application Description
  4. 4. Developer Name
  5. 5. Preview Screenshot
  6. 6. Up to three more game images
  7. 7. Game Category
  8. 8. YouTube Link (where available)
  9. 9. Supported Platforms
  10. 10. Availability

AGK GalleryThe Gallery is here, log in to add your Game (or Application) Listing. We have also provided some hints and tips on how to write a good description of your game here, to make sure you attract as many new customers as you can.

AGK - Write Once, Deploy Everywhere

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.

Easy to Use

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.

AGK Magic

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.

More About 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

 

AGK was developed out of our own need to create a one stop solution for making game apps for mobile devices. In the past TGC had developed games for one device and then wanted to port them to other platforms. The process of conversion was costly and repetitive. The team wanted to spend more time creating new games and not burdened with laborious conversion work.

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.

Go to AGK WebsiteWe'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.

Main Features

AGK meets .Net

If you are a fan of the .NET family of languages - C#, Visual Basic, and so forth - and you own a copy of AGK, then you've got a new toy to play with.

The AGK Wrapper for .NET is an open source project that provides a coupling between the AGK library and the Common Language Runtime (the source can be found here, the compiled binaries are available from your order history). This wrapper is Windows only due to various aspects of the .NET platform. If you are planning on making the next cross-platform blockbuster, you may want to get dirty with C++ or stick to Tier 1 Basic. But if your target is Windows, or you want the rapid prototyping power of C#/VB, then read on.

For this example I'll be using C#, but most of what I'm doing applies to VB as well, you'll find some VB specific notes in as well).

Getting Started

AGK and .NETFirst, you need to create new project.  I'm going to start with a Console project, because it is a nice minimal setup with few dependencies and only a couple settings that need to be adjusted.

Once we've created the console project, we need to change a few things. For one, we need to change it from a console application to a normal Windows application (since I assume you don't want a command line popping up with your game window!).

AGK and .NETOpen your newly created project's properties page (right click the project name and select "properties") and change the "Output Type" field in the "Application" tab from "Console Application" to "Windows Application".

 

Next we need to add the wrapper as a dependency. Right click on the "References" folder in your project tree view, and select "Add Reference". Browse to wherever you have installed/saved the AGK Wrapper and select it.

AGK and .NET

You are pretty much ready to go, but if you run the project now, you'll find that nothing pops up. The "Main" method in the template generated "Program.cs" file is executed, but nothing is in it!

Now you might think that, like Tier 1, you could just jump in and start adding AGK commands here. Unfortunately it isn't so simple - you haven't got a window yet! If you've used AGK in Tier 2, you'll know that your game sits inside of an "app" class with "Begin", "Loop", and "End" methods. The wrapper provides an abstract base class for this, aptly named "App". You'll find it in the "TheGameCreators.AppGameKit" namespace. You should create a new class to derive from this - I called it "Game".

The first thing you should do is create a constructor that sets some of the initial settings. Most of these properties won't do anything after the game begins running, you'll have to use the relevant AGK commands. Particularly, you should set your device width and height. It's probably not a bad idea to center it either.

.NET TutorialThe Next Step

If the tutorial to this point has whet your appetite for developing using both AGK and .NET, then download the full PDF version here. You will find the App Game Kit Website.NET package in your Order history if you already own AGK. If you don't yet own AGK but this new addition to the toolset is your new must-have development platform, go to the AGK website for full details of the kit and to purchase.

 

DarkBASIC Professional Update

DarkBASIC Professional

Frequenters of the DarkBASIC Professional forum will have been tracking the DBP Bugs List‘Three Most Annoying Bugs' thread with some interest, and watching the Top Twenty Chart grow as contributions are suggested and confirmed by fellow members. The idea was to identify the three niggles you did not want to see in the next version and have TGC sort them out for you. We are almost ready to start working through the final list, here are the top twenty identified by the community:

1. Shadow Color Issue (already fixed)

4. System dmem available()

5. Duplicate label error not showing up

6. Screen invalid bug

8. Create light maps crashes DBP

9. Instanced objects animations stop updating

10. Fix object pivot collision problem

13. Turn camera angle problems

14. Set shadow shading broken when shader flag used

15. Deleting cloned objects bug

16. Create memblock from image bug

17. Texture backdrop problem with fog

18. AddPCKToEXE compiler problem

19. Cube map stages

20. Get/save image bugs

21. Limb texture problems

22. load image/image exist problem

23. rendercolortarget shader problems

24. set object specular problem

25. sound volume problems

26. DDS file memblock bug

27. GameFX Help file example broken

28. Multiple camera bug

A special thanks goes to Green Gandalf for going through the entire post and producing reproducible zip files for the final entries. We will keep you informed on the progress of the work and more specifically, when a beta of the fixes becomes available.

Carnage - A DarkBASIC Developed Bloodfest

Carnage

Carnage -not for the feint of heart - is a top down death-fest shooter with an emphasis on brutal fast tempo combat. It is being developed in conjunction with The Game Creators for full commercial release. The demo is a single player deathmatch against BOTs, but the full version will be predominantly a multi-player game with many game modes, arenas, weapons, power-ups and even more gore.

Carnage is based in the near future. It is a time where technological advancement has reached a new plateau. Travel, entertainment and medicine have taken a sudden leap into the seemingly impossible, providing a whole host of new possibilities. It is a time where moral boundaries are more blurred than ever before. It is a time where society is constantly craving the new and extraordinary. Television networks do as they've always done - strive to entertain and shock their audience into parting with their subscription money. Displaying ever more expensive, elaborate and extreme television in search of high ratings, TV is always pushing the envelope. Now, one channel brings us a brand new programme, promising more than ever before. It fuses two components. One - a new technology known as Particle Based Manipulation and Reconstruction (PBMR), in the form of a machine called the "Reconstructor". And two - the people's growing obsession with combat.

Operating on the interim of the law, the new programme ‘Carnage' offers the audience the opportunity to see real warriors actually fight to the death. But how is this possible? How is it legal? Through the power of PBMR and the Reconstructor, combatants are brought back to life, right before the crowds' eyes. Their various splattered remains are molecularly located, transported across space, and reconstructed, just before the Reaper can get his bony mitts on them. Now how's that for cheating Death?

The magnificent Reconstructor also allows some experimentation with the molecules of our warriors. Through the same technology, our battlers can be ‘powered up' to possess super-human abilities, all for our entertainment. They can be made transparent, given incredible speed, or even morphed into something all together different - like a Reaper look-a-like for example! Who's laughing now, Mr Death?

Carnage promises true mortal combat with genuine fatalities, but in the final moments of total death, your favourite hero is brought back from the brink! He's ready to do it all again, all in the name of entertainment ... and of course, in pursuit of the biggest pay cheque in the industry. So the viewers are tuning in by their millions and arena tickets are selling out in seconds. And of course, the hardest warriors are lining up to do battle, fearless and greedy. But it's all in the name of good wholesome entertainment. If the crowds demand it, who are we to argue? After all, nobody is (permanently) harmed during an episode of Carnage. So, without futher ado - fire up the Reconstructor and let the Carnage begin!

Carnage DemoYou can download the demo here, please be aware that this game is rated 18+. Any feedback can be left in the forum thread where the discussion is already ongoing.

Lee Bamber on Twitter

Lee Bamber is TweetingEverything 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.

 

Dark Game Studio Bonanza

Bonanza 

Special offer while stocks last: Dark Game Studio, Dark Physics, Dark Lights, Dark AI and Extends 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:


Order Now

Order the BonanzaSave 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.

Free Products from The Game Creators
FPS Creator   -   DarkBASIC   -   2000 Store Points
 

Shoot 'Em Up Kit

Shoot 'Em Up Kit

 

Create your own videogame without programming 

The shoot 'em up kit allows you to create your own professional quality 2D or 3D shoot ‘em up using a powerful graphics and audio engine with just a few clicks of a mouse.

A simple game can be created in under a minute while lighting, camera views, behaviours, physics settings, shaders, particle effects and AI can be created and modified to fine-tune a complex game. The Shoot 'Em Up Kit is available for the PC (XP, Vista and Windows 7 - 32 and 64 bit versions)

Features

Create your own 2D or 3D shoot ‘em up using a powerful graphics and audio engine.  A few seconds and you have a game - creating a game can be as simple as choosing and placing a player model, choosing and placing an enemy model and clicking ‘Play'.

Design your own levels

Use professional graphics tools ... or a pen and paper

Create graphics and sound any way you want, including:Shoot 'em Up Level Design

Tools

Play and share your own creations

Share your own creations with the community and receive feedback, or be inspired by the games from other community members.

 

Feature List

Engine

Sprites

Particles

Lights

Level

Input

AI

Physics

Sound

Behaviour Editor

Front End and HUD

Shoot Em Up KitThe Shoot 'Em Up kit is available to purchase now from The Game Creators' website, along with full product details.

Dark Occlusion Updates and Tools

Dark Occlusion

Since the release of Dark Occlusion last month, a number of bugfixes have been applied and a new tool has been published to help with existing 3D World Studio maps. Firstly, many bugs are now dealt with including:

Check your order history for the updates being published. Map Converter for Dark Occlusion and 3DWSIn addition to this, the author has created a tool for converting 3D World Studio maps to a compatible format for Dark Occlusion. This tool rebuilds the map in a way that Dark Occlusion can perform its optimisations. Along with the tool (which can be downloaded here), you will need to include the following code to import the map:

Function import3DWSmap(file$, objID)
   
    obj = objID
    load object file$, obj
    limbNR = 0
    vertexLimit = 500



    while limb exist(obj, limbNR)
       
        properties$ = limb name$(obj, limbNR)
       
        objecttype$ = lower$(KeyValue$(properties$, "objecttype", ""))
        classname$  = lower$(KeyValue$(properties$, "classname", ""))
       
        if lower$(KeyValue$(properties$, "DarkOcclusion", ""))="true"
            lock vertexdata for limb obj, limbNR
                vertices = get vertexdata vertex count()
            unlock vertexdata
       
            OC_AddObjectLimb(obj, limbNR)
            OC_SetObjectLimbStatic(obj, limbNR)
           
            if vertices <= vertexLimit
                _obj = 0
                repeat : inc _obj : until object exist(_obj)=0
                make object from limb _obj, obj, limbNR
                OC_SetObjectLimbBounds(obj, limbNR, -_obj)
                delete object _obj
            else
                OC_SetObjectLimbBounds(obj, limbNR, 1)
            endif
           
        endif
   
        select objecttype$
            case "brush"
   
            endcase
            case "bspwalls"
   
            endcase
            case "mesh"
   
            endcase
            case "entity"
   
            endcase
            // etc.
        endselect
   
        inc limbNR
    endwhile
       
endFunction

function KeyValue$(properties$,findname$,defaultvalue$)
    pos = instr$(lower$(properties$), lower$(findname$), 0)
    if pos > 0
        endPos = instr$(properties$, chr$(13)+chr$(10), pos)
        if endPos = 0 then endPos = len(properties$)
        value$ = substr$(properties$, pos + len(findname$)+1, endPos - pos + 1)
        exitfunction value$
    else
        exitfunction defaultvalue$
    endif
endfunction defaultvalue$

Function instr$(source$, search$, startPosition)
   
    pos = startPosition
    if pos < 1 then pos = 1
   
    length  = len(source$)
    length2 = len(search$)
   
    firstChar$ = left$(search$, 1)
   
    for i=pos to length
        m$ = mid$(source$, i)
        if m$ = firstChar$
           
            match = 1
            for x=1 to length2
               if mid$(source$, i+x-1)<>mid$(search$, x)
                    match = 0
                    exit
               endif
            next x
           
            if match = 1
                exitfunction i
            endif
           
        endif
    next i
   
endFunction 0

Function substr$(source$, startPosition, length)
    newString$ = ""
    endPosition = startPosition + length
    for i=startPosition to endPosition
        newString$ = newString$ + mid$(source$, i)
    next i
endFunction newString$

What is Dark Occlusion? 

Dark Occlusion is a real-time occlusion culling library for DarkBASIC Professional. 
It will exclude objects that are not visible for the camera because they are obscured by other objects. This way less polygons have to be rendered and your game will run at a much faster speed.
There is no need to pre-calculate anything, everything is setup and calculated in real-time.

With Dark Occlusion it is possible to create larger and more detailed scenes for your games.
It is possible to retrieve the visible objects in the screen, allowing you to check if enemies are in the screen or to perform needed calculations on the visible objects.

Dark Occlusion


Features

Dark OcclusionYou can purchase Dark Occlusion now from the website, where you will find full details of the product.

More games and News from ADG

TGC App Developers Group  

by Steven Holding

It has been a relatively quiet month for the App Developers Group. There has been some discussion over the future of AppUp as the developers forum has gone very quiet over at Intel. I was personally worried enough to contact Bob Duffy. His response was very positive and he intimated that large changes were afoot. I asked him directly if AppUp was falling apart:

"Far, far, far from falling apart. The opposite. .. and I mean that seriously. Intel just created a $100million fund for AppUp. And there is going to be the largest campaign Intel has ever done for the last 10 years, around Ultrabooks, I agree activity from developers has dropped. And I understand why. We pushed MeeGo pretty hard last year, then had to pull back without a lot of communication. Then Ultrabook stuff was about to hit and we have 3 phases there, most of which are related to things not yet actionable for developers.

Ultrabooks are really really hot right now. There's a big internal push to get Appup shipping on as many Ultrabooks as possible. Then with Windows 8 you will see Ultrabooks and mobile devices start to blur lines. Also we are about to get some significant exclusive apps into to AppUp to drive demand.

Let me know your thoughts on what we can do to help get developers involved ...  Also look for some cool tools and API from us late February and March, lots going on. But I agree many lost interest latter half of 2011
"

A few of us have been working towards the Free Blackberry Playbook Offer Lee Bamber pointed out this month and some interesting games are coming out of this drive. My own effort "Flick Pong" has encountered a number of difficulties but I still hope to make the deadline tomorrow (2nd March). Perhaps this is the main reason for such a quiet month but with the latest version of AGK on the horizon I am certain we will see a flurry of new activity to test the new commands out at last!

New Game listings

Two new games have been added to the Games Listings on the ADG Site from probably our most prolific member jordi:

Strange and Dangerous Christmas Night

Strange and Dangerous Christmas NightThis original looking arcade game boasts 50 levels of gameplay, local and online scoreboards and several game modes to keep you hooked.

This Christmas will be very strange and dangerous. A wave of robberies are frightening people. Even so, children aren't going to allow anyone to take away their Christmas presents.They will use everything to protect each and every one of their presents. Are you willing to defend your presents until the sun rises? Strange and Dangerous Christmas Night is an arcade game with great humor, fun and a lot of hits.

Help the Scream Gang to protect their Christmas presents at their home.

Not suitable for thieves who attempt to appropriate the children's gifts. This game contains explicit images of violence and blood. It may offend the sensibilities of some people.

Operation Annunaki

Operation Annunaki

This is an updated version of jordi's classic stealth based game and as well as some great graphics and great scenery there is a great underlying story. The game also comes with a 3D stereoscopic option to bring the game into a new dimension.

Your objective is to rescue the Professor Nikolay Kozlov, a prominent archaeologist who devoted much of his life to the study of Sumerian and Akkadian deities related to Anunna. Kozlov has been hijacked by the Nazi army, Black Scorpion, a radical group led by scientist Frederich Heichman. Heichman was involved in the search for mystical objects during the Second World War in order to use their supernatural powers to dominate humans.

Based on the great hit of 2005, ANNUNAKI. This new action-adventure game has been completely reprogrammed. We dive into a new history with new characters, missions, scenarios and enemies. Stealth will be your best weapon, hide to avoid detection by the soldiers. Use all weapons to fight against the B.S army and supernatural creatures.

New Game Site

baxspace.comFinally the ADG admin have been working on a brand new website which we will be revealing soon. It will represent the "marketing" front for the App Developers Group where we show our games off to the public. "Baxspace.com" will be a much cooler place for our member's game listings and no expense has been spared in preparing the new site. We have pooled our resources to put together this site and we really hope you like the results as much as we do! Here is a sneak-peak of the front page layout (still in development).

AGK Bitesize - Let's get Physical

AGK Bitsize by Steven Holding

by Steven Holding

 

Introduction to input

One of the problems with trying to make a game adaptable for multiple platforms is the method of control. AGK helps out with a set of commands for creating "Virtual Joysticks" and "Virtual Buttons" that can be used to bridge the gap and make games work equally well on touch-screen devices and desktops.

This month we will create a virtual joystick and a button to control a character. We will create our character in a physics based world in order to expand our knowledge of using physics sprites and create a simple platform game engine.

Let's start with a brand new project and add a virtual joystick using the following command before our loop.

AddVirtualJoystick(1,10,88,12)

 

This will add a virtual joystick with an ID of 1 at 10% across the screen and 88% down (the bottom left corner of the screen) with a diameter of 12% of the width of the screen as shown below.

bitesize

To get an idea of the kind of output we get from the joystick add these lines within the loop and run the project.

Print("Joystick X:" + str(GetVirtualJoystickX(1)))
Print("Joystick Y:" + str(GetVirtualJoystickY(1)))

When you run the project try dragging the joystick with the mouse. As you will see we get a value between -1.0 and 1.0 for X and Y which directly relates to the position of the joystick from its centre.

We can change the images used and visibility of the joystick to suit our game and even set up a "dead zone" for the joystick to give us a minimum returned value. This means small movements are not picked up by the joystick allowing us to concentrate on only the more deliberate moves made by the player (if we wish).

For now let's add a character for us to move with the joystick. We will use a simple box shaped character for the time being and turn it into a dynamic physics object, this will simplify movement and dealing with collisions as you will see.

spr = createSprite(0)
setSpriteSize(spr,4,8)
setSpriteOffset(spr,2,4)
setSpritePositionByOffset(spr,50,96)
setSpritePhysicsOn(spr,2)
setSpritePhysicsCanRotate(spr,0)
boxman = spr

Most of the code above should be familiar from last month's tutorial but the last physics command is very useful "setSpritePhysicsCanRotate(spr,0)". This means our dynamic sprite will not rotate or fall over and will for the most part react something like a character controller. The sprite will still react to forces such as gravity but can stay standing at the same angle unless we change the angle of the sprite using "setSpriteAngle(spriteID, angle#)".

Our character sprite doesn't move around yet though so let's add some code into the loop to get it moving!

setSpritePhysicsVelocity(boxman,GetVirtualJoystickX(1)*30, _
getSpritePhysicsVelocityY(boxman))

Now compile the project again and you'll see "boxman" can run left and right. You may notice that we are setting the left / right velocity to 30 times the value from the joystick meaning it will be set between -30 and 30. The vertical velocity is being set to its existing value, why? Well we will be setting boxman's vertical velocity (jumping) separately. This just makes it easier to set the two velocities separately and shows how we can build up a combination of different velocities independently.

What we don't have at the moment is any way to jump. What's a platform game without jumping right? First we need a jump button so add the following line before the loop.

AddVirtualButton(1,90,88,12)

As you can see the settings are very similar to the joystick commands, we are creating button number 1 at 90% across the screen and 88% down. This time we are making it 8% of the screen width in diameter. It should look something like this when you compile and run the project.

bitesize

Below is some simple code to add vertical velocity to our character when the button is first pressed. Add it into the loop.

jump = GetVirtualButtonPressed(1)
if jump>0
    setSpritePhysicsVelocity(boxman,getSpritePhysicsVelocityX(boxman),-jump*60)
endif

This time we are setting the horizontal velocity to its existing value since we are editing it elsewhere (as before). The vertical velocity is being set only when the button is pressed.

This time when you compile and run you will be able to make boxman jump when the button is pressed. Of course when we are not running on a touch-screen device this control method would be rather difficult and un-intuitive so let's add keyboard control too and some code to decide which version to run. Take the virtual joystick and button creation commands and put them into a conditional statement like this.

keyboard = getKeyboardExists()
if keyboard=0
    rem create a virtual joystick
    AddVirtualJoystick(1,10,88,12)
    rem create a jump button
    AddVirtualButton(1,90,88,8)
endif

Now edit the loop so that we have a similar condition like this.

do
    if keyboard=0
        rem get jump
        jump = GetVirtualButtonPressed(1)
        if jump>0
            setSpritePhysicsVelocity(boxman,getSpritePhysicsVelocityX(boxman), _
-jump*60)
        endif
       
        rem move boxman
      setSpritePhysicsVelocity(boxman,GetVirtualJoystickX(1)*30, _
getSpritePhysicsVelocityY(boxman))
    else
        rem add keyboard control here!
       
    endif

 
    Sync()


loop

We will now add some code where I have added the remark "add keyboard contro

l here!" as the rest of the code will now only run on devices that have no keyboard. First it is useful to know the ID of the keys you would like to use. Here is how we can find that out. Add the following line of code after the remark "add keyboard control here!"

Print(str(getRawLastKey()))

This will tell us which key we have just pressed. Compile and run, then press the keys you would like to use for "left", "right" and "jump" and write down the ID's that are printed to the screen. I will just be using the left / right / up keys which are 37, 39 and 38 respectively. Here is a keyboard version of our "virtual" control system using those keys. Have a look and check the differences.

jump = GetRawKeyPressed(38)
if jump>0
    setSpritePhysicsVelocity(boxman,getSpritePhysicsVelocityX(boxman),-jump*60)
endif
rem move boxman
setSpritePhysicsVelocity(boxman,(GetRawKeyState(39)-GetRawKeyState(37))*30, _
getSpritePhysicsVelocityY(boxman))

We are using two new commands here "GetRawKeyPressed(keyID)" and "GetRawKeyState(keyID)". The first returns a value of 1 when the key is first pressed and 0 otherwise. The second returns 1 for as long as the key remains pressed and 0 otherwise. So using a similar version of the previous code we can create a similar kind of control system using completely different input methods.

Now we will add some simple platforms to jump around on. Add the following code before the loop to give us some static platforms.

spr = createSprite(0)
setSpriteSize(spr,30,2)
setSpriteOffset(spr,15,1)
setSpritePositionByOffset(spr,15,75)
setSpritePhysicsOn(spr,1)
spr = createSprite(0)
setSpriteSize(spr,30,2)
setSpriteOffset(spr,15,1)
setSpritePositionByOffset(spr,85,50)
setSpritePhysicsOn(spr,1)
spr = createSprite(0)
setSpriteSize(spr,30,2)
setSpriteOffset(spr,15,1)
setSpritePositionByOffset(spr,15,25)
setSpritePhysicsOn(spr,1)

Also add this code before the loop to add a single "kinematic" platform which we will animate in the loop later.

spr = createSprite(0)
setSpriteSize(spr,30,2)
setSpriteOffset(spr,15,1)
setSpritePositionByOffset(spr,50,15)
setSpritePhysicsOn(spr,3)
kinematic = spr
direction = 10

Remember that kinematic physics sprites can have velocity (speed) applied to them, to make our platform move simply add the following during the loop.

setSpritePhysicsVelocity(kinematic,0,direction)
if getSpriteYbyOffset(kinematic)>85
    direction=-10
else
    if getSpriteYbyOffset(kinematic)<15
        direction=10
    endif
endif

This just moves the platform up / down to within 15% of the top / bottom of the screen then changes its direction. Have a jump around on the platforms and try playing with some of the values to make boxman move faster or jump higher. As a further challenge why not try adding some images and animation too! Maybe you could try editing the jump button to make boxman fly like he's wearing a jetpack?

bitesize

This example of setting up different control methods for different platforms uses less than sixty lines of code to create a simple platform game. A full version of the code for this tutorial can be downloaded <here>

AGK Bitesize

The full code and a compiled version of this month's example can be downloaded here. As an extra challenge, why not try to build a more complex structure to demolish, using the simple techniques learned in this tutorial.

FPS Creator News

FPS Creator News

Dave, aka The Scene Commander, has been diligently hammering away at the FPS Creator source code to bring you a plethora of fixes and enhancements to the already bulging V119 beta. As probably one of the longest running beta updates, we will shortly be in a position to release this huge update officially in the coming weeks.

V119 Beta ProgramYou can keep up to date with the progress, and take part in the beta program by checking out this thread on the forums. We are currently on Beta 7, and receiving good feedback from the community to make this a milestone in the evolution of FPS Creator.

In a related note, we are also creeping ever closer to the magical 5,000 items in the Game Creator Store. We have started the process of uploading items from third parties that you could previously only get from premium model packs, so keep an eye out in the store for cool new items for your creations.

Defy FPS Creator Competition Results

The unofficial End Of Year Defy the Odds competition attracted some fantastic entries, here is a summary of some of the entries received.

SilenceSilence

by Bootlicker

Very nice custom texture work, reminded us of Left 4 Dead. Some levels looked great (like the scene with the D-head on wall through bars) although some other levels could of had some extra detail to blend a little more. Apart from that small suggestion, a nice wandering game.

Test TubesTest Tubes

by Ched80

Great Voice acting, made the player feel right in the testing facility. Really impressive use of cans with added abilities and pop up magazines (with penguins) added some extra humour to the voice over. One thing noted was a difference of clean intro screens/modern to a run down low budget/bloody testing facility. We liked the direction of the game and hope this game goes further, as it has great gameplay - testing the player to beat their score.

Touch of FearTouch of Fear

by Unfamillia

Really great effort with this title and it was very close to scoring the Design award. A complete packaged game, with great intro, GUI, audio (soundtrack and voice over work). Level design was a standard building feel, yet worked and looked good. The game resembled Another World (an 80's game) theme and it was the time machine level that really drew the player in to find out more. Hope to see this go to a complete release.

OutbreakOutbreak

by Kravenwolf and Hockeykid

What can be said...a game we were not expecting to see, taking an FPS engine and making an overhead title. And further more it was not just good, but great. Clean packaged game covering all elements in design, audio, technical and visual standards and going that one step further. Great features also added to the points for this title; package drops, GUI add-ons, great dev diary and video docs of progress. The developers on this one did miss out on the bonus early entrant points, however they did a great job on the release and we could see this being a commercial release in the future and a stepping stone for FPSC.

The overall winners were Outbreak (Grand Prize, Excellence in Design) and Touch of Fear (Audio Excellence). Congratulations to all participants in their efforts.

Outbreak - Top-down FPS

Outbreak

Kevin Arkely, established officer and newly assigned member of Task Force 341 is dispatched along with his team to help contain a bio-terrorism viral outbreak in an undisclosed city location. Arkely's team operation is to secure their assigned grid perimeters within the city by neutralizing all infected with the area. Once the entire city is secure by the various Task Force Teams operating along the island, sterilization teams can move in to contain the virus from reaching outside territories.

Hockeykid and Kravenwolf - the game developers - decided to work together on another FPS Creator game and see what they could come up with using the current source. After throwing back and forth ideas including rail shooter, 2D side scroller and a few others, they decided to see if they could create a 3D top-down shooter in FPS Creator. The result is Outbreak, and it won them the top prize in the Defy Competition as reported above.

The game mechanics involve the camera always remaining locked above the player character, and the enemy AI targets the character permanently. The game is wave-based; the player needing to survive as many rounds as possible in order to complete the mission. Airdrops and care packages containing new weapons and additional ammo introduce a reward scheme as the player kills specific numbers of infected zombies.

OutbreakDownload the game (including latest patches) in the showcase thread, where you can also feed back on the game.

Third Person Scripting Pack

Do you want to run your game in Third Person mode? 2Beastmode4U has written and published a Third Person Scriptscripting pack to allow you to do just this. It includes all of the functionality you need to implement cameras, running and crouching characters, targeting methods and Co-Op mode. Take a look at the video below, and make your way to the developer's website to purchase.

Features:

Special Offer while Stocks Last - $29.99, Save Over $150.00!

Take advantage of this whopping special offer! 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

FPS Creator V-Packer

 

Build a single executable from your FPS Creator game in less than a minute. No need to install; your V-Packed game runs in the virtual filesystem.

V-Packer for FPSC

Features:

V-Packer is available to buy now, directly from The Game Creators' website.

From The Forums

Complete Script Syntax List 

Ched80 has created a list of all the conditions and actions within Stock FPSC x9 v118 including the correct syntax for each command, the limits of its parameters and an example of how it is used. It's not intended to teach you how to script, the community guide does that perfectly well. This is simply a reference document for all the script commands.

Raspberry Pi

There is serious momentum growing behind a new £25 computer the size of a credit card called a raspberrypi . This computer is shortly to be released. It is a linux box, but with some awsesome graphical capabilites for a computer that runs on 1 Watt of power. It has an arm processor and the idea behind the device is to teach school kids how to program.

 

Monthly Newsletter Winner - $100 voucher up for grabs every month!

Find us on Facebook to discover more about The Game CreatorsJoin over 4,300 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!

It is every man's obligation to put back into the world at least the equivalent of what he takes out of it.
Albert Einstein