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

Editorial - June 2014

Issue 136 cover

All too often technology and the internet are given a bad name, with a multitude of reports on the bad things they are used for. This week I set out to look for a few of the good things, and it's not too difficult to find them, especially if you have access to BBC Click. Things I didn't know last week include the use of the XBox Kinect to help disabled, injured people and stroke victims back to health. Software both instructs and monitors the patient through their exercises, and can detect where the focus is needed far better than a human can. Kinect cameras are also used in operating theatres, where the surgeon can swipe through his patient data in mid-air, thus preventing contamination by touching equipment.

We are on the verge of flying unmanned ambulances which will be able to access patients in inaccessible areas. The vehicle is essentailly an enclosed stretcher capable of bringing the patient back down a mountain or out of a warzone.

The most fascinating find is open source medical equipment. Amidst all of the hype around Pfizer, Astra Zeneca and the billions of dollars floating around their merger plans, there are organisations creating open source life saving technology. There is a handheld cancer detector that can be 3D printed using downloadable plans, utilising a mobile phone for the screen. Nursing staff can now reach people almost anywhere in the world and download the equipment when they get there. They then upload the results to a doctor elsewhere in the world for diagnosis.

So if you're looking to take your skills and do something life-changing, there are projects out there already proving that it's very achievable.

We've seen in the last few weeks that there are many talented people in our community, and the results of the competition are in. You can read about these and the ongoing FPSC Reloaded contest too. There's also a roundup of AGK and FPSCR developments and much more to inspire you.

Until next time,

 Steve Vink

contents

(1) Compo Results (2) FPSCR Competition (3) FPSC News (4) FPSCR Store (5) LUA (6) FPSCR Gallery (7) AGK Development (8) Tutorial - Data (9) TGC Channel (10) Social Feeds

The Competition Results

The results are in and as you will no doubt have seen on the forums, our winner is Save the Humans for Later by Mark Harrison!

Save the Humans for Later 

The one line description we were given sums up the game perfectly:

 "Blow up buildings and beam up as many humans as you can before you get blown up"

The judges loved playing this game which is an interesting take on the endless flyer genre. It's an exilarating mix of dodging the enemy in its varying forms, destroying both buildings and enemies, and trying to pick up the stranded humans all at the same time. The controls and concept are very simplistic, which is just what we asked for. However the skills and tactics you choose to employ make the game progression very varied. Finding the right mix of dodging, shooting and collecting is what makes the game addicitive. Combined with the highly visible scoreboard tempting you to climb the ladder, this entry was the one that lost the judges most of their time trying to be just one step better. Congratulations Mark, and we hope you enjoy your well-deserved prize!

Thanks and Gratitudes

Before we list all of the great entries into this competition with a little feedback on each, many thanks go out to everyone who made this competition a success. Naturally, all of the contestants made it a memorable competition with their enthusiasm and eagerness to help one another along the way. Our thanks go out to Rick Vanner and the TGC team for providing the prize, the incentive and the tools to make it happen. Finally, my personal thanks go to Sean Mann who stepped up to the task of judging admirably (and at the expense of not being able to enter the competition himself!), making judging both easy and enjoyable.

So many entries, so little time 

Here are all of the entries and the feedback. We ask all of our readers to visit each of the games, and support them by downloading, playing and giving feedback. The judges feedback is below, and each entry includes the area we believe the games would benefit most from with a little improvement. There is nothing to criticise with any of the entries, we simply hope you can take the games to the next level.

Battlezone Royale

Battlezone Royale

by  nz0

This game has a huge amount of potential, from concept to style. We hope this game is being developed further and probably beyond the realms of the simple theme of this competition.

The biggest benefit would be a less cluttered HUD that it easy to understand, making sure the player knows how much ammunition is remaining and how to reload.

Battlezone Royale

Find out more about Battlezone Royale here

 

Chicken Run

Chicken Run

by  Jammy

The gameplay on this entry is the main focus for our attention, playing well. It is very responsive to user control, and similar in play to games like Temple Run.

With some better animation and improved graphics, the game could fare well.

Chicken Run

Find out more about Chicken Run here

 

Chompski

Chompski

by  mdgunn

This game has opted for the pixel-art approach, and it works well for the style. The music complements the game well.

We'd recommend making the game much easier, with a rotating Chompy but static melons. Once the small number of bugs are ironed out this should be released again as an improved version.

Chompski

Find out more about Chompski here

 

Comet Bird

Comet Bird

by  east

Once again this game is presented well with fantastic, smooth scrolling graphics and smooth controls to match. The leaderboard was very well implemented in this entry.

Although the tilt controls are well implemented, it would be a good idea to add an option for tap controls for those who aren't as comfortable with tilting. Some simple spinning variation of the asteroids would also add an extra dimension.

Comet Bird

Find out more about Comet Bird here

 

Dawn

Dawn

by  BMacZero

This game was nicely presented. The parallax effect in the background and the dark style is well composed. The music adds a nice atmosphere.

Making the game easier in the early moments would encourage the player to keep trying. This could be achieved with larger gaps and being a little more forgiving on accuracy of the jumps and slides.

Dawn

Find out more about Dawn here

 

Diablo The Prawn

Diablo The Prawn

by  Van B

The judges couldn't help but be impressed by the graphics and animations in this fun take on the Flappy Bird theme. In fact it even triggered a few laughs along the way.

The game could take a leaf from Worms, and add death-sequence voice overs to complement the on-screen messages. It's a good candidate for conversion to mobile.

Diablo The Prawn

Find out more about Diablo The Prawn here

 

Green Hat Helper

Green Hat Helper

by  Jimmanator

This is an interesting variation on Mario's Cement Factory, with Christmas presents and sacks being the focus of this game. The idea is good and would be worth improving in time for the festive season.

The mechanics of dropping off the presents could be made smoother, and ensure that the pause button doesn't get in the way of the gameplay.

Green Hat Helper

Find out more about Green Hat Helper here

 

Holey Cow

Holey Cow

by  Ched80

The main impression of this game is its procedural generation of the hole, it ensures no two levels are ever the same. It's not so far from the Flappy Bird concept, yet at the same time it's a unique take on the genre.

We'd recommend removing the minor frustration of the cow's limbs flailing around quite so much. The ragdoll approach is fantastic, he just needs a little less panic in his movements! We hope it does well as one of the published games in the competition.

Holey Cow

Find out more about Holey Cow here

 

Jet Lag

Jet Lag

by  SamKM

This is a nice combination of flight sim and endless runner. The controls were generally good and there was certainly replay value in the game.

We'd like to see the next version of the game with improved occlusion and a more user-friendly colour scheme. A bit more polish and a little more play testing will greatly improve this interesting title.

Jet Lag

Find out more about Jet Lag here

 

Mine Climb

Mine Climb

by  thenerd

It's always good to see a retro 8-bit styled game, especially with a graphics theme that was popular back in the day - blocks and fire! It also has a complementary soundtrack to match.

It would be nice to see the levels being randomised, and a small number of sound effects for the actions and events for player feedback.

Mine Climb

Find out more about Mine Climb here

 

Moving Blocks

Moving Blocks

by  SunSatION

This game takes the Flappy Bird idea and flips it, with moving controllable blocks, exactly as the name implies! Thinking outside the box comes up with interesting slants on everyday concepts.

We'd suggest reducing the vertical movement of the bird just a little to improve your chances, especially earlier in the game. This feature could be ramped up as the game progresses to increase the challenge.

Moving Blocks

Find out more about Moving Blocks here

 

Run Forest Run

Run Forest Run

by  The Zoq2

This is a unique take on the endless runner, and a refreshing style. The tiliting of the screen angle adds depth to the gameplay, and each game appears to be unique.

Improving the logic to ensure all obstacles are achievable and only those in the field of view have an impact will make this a very playable game.

Run Forest Run

Find out more about Run Forest Run here

 

Skyway

Skyway

by  CodeMonkey

Although just an alpha version of the game, there is a good WIP thread accompanying the game progress with full design document, which is good to see. The animation and controls are effective.

We hope to see this progress with improved graphics, a death animation and perhaps a back story.

Skyway

Find out more about Skyway here

 

Smash Smiley

Smash Smiley

by  miguetrek

This tap-based idea is sufficiently challenging to want to improve, and play again. It has the feeling that more playing will improve player skill. It's also has a clean presentation and is simple enough to pick up and play.

As the game is about happy and sad, a mood bar might be a better way of presenting the progress. With this themed approach to scoring it could be a successful game in the marketplace.

Smash Smiley

Find out more about Smash Smiley here

 

Soaring Blue Jay

Soaring Blue Jay

by  Aviles22

This entry has already been released to the general public, and as such is a stable and well-polished game. The weather effects add to the scene, and the obstacles have their own quirky personality in their design.

The game may stand up well against the competition by making it slightly easier in the early stages, and ensuring there are no near-impossible scenarios with consecutive gaps being vertically very far apart. Again, we wish this game every success as a published entry.

Soaring Blue Jay

Find out more about Soaring Blue Jay here

 

Spacy Spaceman

Spacy Spaceman

by  Space Dream Studios

Overall this is another great entry, crossing classic space shooters with a Flappy Bird concept. Graphics are good, music is nice and the voiceover is funny.

With just a little more polish and finetuning of the controls to ensure the spacebar reacts immediately this will be a winning game.

Spacy Spaceman

Find out more about Spacy Spaceman here

 

Super Footie

Super Footie

by  _Pauli_

The presentation of Super Footie is great, and the concept is very different from the other entries. Getting the ball down the field is the aim, whilst avoiding your opponents.

Adding instructions is the key to making the game a success. It can be tough to understand the mechanics, and perhaps making it easier at the beginning will help too.

Super Footie

Find out more about Super Footie here

 

Swiped Out

Swiped Out

by  Java Man

Joining the band of published games, this one is refactored to fit the competition criteria. It has a nice relaxing start and progressively increases the stress as the game progresses. It is nicely animated and sufficiently addictive.

The music would benefit from being more varied as a game can last a few minutes. The graphics are good and would be improved by being higher resolution for larger format devices.

Swiped Out

Find out more about Swiped Out here

 

Tap Tap DIE

Tap Tap DIE

by  easter bunny

Following the Flappy Bird theme very closely, it is a rendition with nice graphics. The controls are responsive which is essential for this type of game.

The game is somewhat harder than the others out there of this genre, making it slightly easier at the start will ensure it can compete alongside the others in the market.

Tap Tap DIE

Find out more about Tap Tap DIE here

 

Tap Tap Tap

Tap Tap Tap

by  Simwad

We liked the graphics in this game, and the performance, the smooth animation certainly added credit.

We'd look forward to seeing a death animation to add polish, and perhaps a sound track that is befitting of the great graphics. As with many of the games it would also make the game more addictive to give the player a good chance to improve over time.

Tap Tap Tap

Find out more about Tap Tap Tap here

 

The Bird Game

The Bird Game

by  Yodogs5

The first thing to strike the judges was the great implementation of Google Achievements and High Scores. The GUI was also nicely presented, making a good first impression

This game could be improved by giving the player a better chance to survive at the beginning of the game, by increasing the bullet size and making the AI less accurate.

The Bird Game

Find out more about The Bird Game here

 

The Worm Game

The Worm Game

by  Matty H

This game stands out for it's well presented, crisp graphics. The gameplay can be summed up as the rope mechanics in the Worms franchise, but with less time to think about your next swing.

With a little more playtesting to perfect the firing of the silk rope this will be a fun and addictive game. It should also increase in difficulty a little more to keep the player hooked.

The Worm Game

Find out more about The Worm Game here

 

Tricky Hop

Tricky Hop

by  Satchmo

Tricky Hop is Flappy Bird meets platformer, as you hop from one pad to the next. The graphics are perfect for this style of game, and it is certainly a challenge to keep the frog hopping.

We'd like to see the game simplified, in order to make it a successful and addictive game. Moving the screen in time with the frog would be less confusing and a better challenge.

Tricky Hop

Find out more about Tricky Hop here

 

We We Ghost

We We Ghost

by  Cliff Mellangard 3DEGS

This entry is one of the games that took the 3D approach, in the form of a ghost working it's way through rooms and avoiding obstacles. It has a unique take on the concept and uses a fan to blow the ghost around.

Making the fan more responsive would help the player immensely at the start of the game and give them an opportunity to familiarise themselves with the controls. Replacing the graphics with a higher resolution would also be ideal.

We We Ghost

Find out more about We We Ghost here

 

FPSC Reloaded - The First Ever Competition!

We are pleased to be able to announce our very first FPSC Reloaded level design competition. The deadline for submission is Sunday June 15th,
so if you haven't already started, now is the time!
 
FPSCR Competition 
 

Win your Share of: 

$750 Cash prizes!

$750 of Graphics cards!

33,000 Store points!

We're offering some excellent prizes and competition is already fierce with a couple of entries already in. To be fair to everyone, we won't be looking at any of the completed levels until the competition submission deadline has passed. Once the deadline closes on 15th June, we will decide the final chosen 10 games and announce the 10 winners no later than the 20th June.

These ten winners can then spend another couple of weeks polishing their games up to the 6th July. It will be the versions submitted on the 6th July that will enter a final judging phase. The winners will be announced on Monday 14th July. 

The Rules

We're asking FPS Creator Reloaded users to create a single level game of any genre to win prizes and see their game in the final release. The aim of the competition is to find ten demo level games to help showcase FPS Creator Reloaded. The top 10 winners will receive:
 

1st Prize


2nd Prize


3rd Prize

4th to 10th placed winners each receive

The full details, terms and conditions can be found here.

FPSC Reloaded Blog

FPS Creator Reloaded by The Game Creators

  

By Lee Bamber

Each month we'll update you 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 our main focus and we aim to constantly develop it to make it into a world class game creation tool. With great support from people who have made pledges to the project we are able to evolve and build our best game maker ever!

Lee Bamber, FPS Creator Reloaded Developer summarises the May achievements for himself and the FPSCR development team. 

Dave is the go-to guy for ensuring the game play is top draw and my work will hopefully allow him to focus on behaviors rather than the boring stuff like animation and movement


Lee Bamber

 

Fairground Antics

Sometimes thinking outside the box generates new ways to test your code. In order to test the AI scripting of defensive characters, the traditional Duck Shoot scenario was constructed. Placing about ten guys behind sand bags and told them to duck down, the pop up and fire, then duck back down again when they felt it appropriate, then gave the player some sand blocks and some weaponry, and the stage was set. Giving him 5000 health points helped too!

A day in the life of the Three Dedicated Coders

Reflecting on what has been achieved is always motivating. Once again here is a rundown of some of the current achievements of the three-strong coding team:

Features
  • Flashing heartbeat death haze when you are low on health
  • Better flinching of characters when you shoot them
  • Better jump heights
  • Improved rocks and textures
  • Fixed the terrain shader to reflect true texture assignments
  • New detail map layer to retain the look and feel of the pre-fixed version of the shader
  • More character choices (same characters but pre-assigned defense and peek logic for quicker level creation)
Stability
  • Fixed a crash with MEMBLOCK on new optimized grass generation
  • Fixed Slow AI with new DarkAI tweaks
  • Ensure correct levels are loaded
  • Resolved issues with old levels loaded into new engine then saved causing animation speed and cloning problems
  • Closed seams in skies when scrolling
  • When health is recharging, use a yellow strobe effect on the health panel until charging stops
  • Optimised the vegetation process when building test levels
  • Enemies now run away less
  • Improved Magnum and Colt fire sounds
  • AI Bot jittering resolved
  • Added code to calm the artifacts of the AI BOT/VIS OBJ changing angle too rapidly
  • New code to prevent player pushing into any character
  • Changed FLINCH reaction so it's backward for hit from front, and forward when hit from back
  • Checked that the sniper at very close range can take out characters in one shot
  • Hid the crosshair for the rifle when shooting from the hip to reflect bad accuracy
  • Resolved issues when saving standalone the sky is not retained

New HOT Fix on the way soon!

FPSCR NewsletterWith V1.007 released in May we soon realised that we needed to optmise the engine even further. The team are happy to report that preciouse frames per second have been saved in the latest build that will soon be going out to all the pledgers. We've optimised the AI system, the rendering shaders and the occlusion system. This all means that users games will be much faster when run under this new build. We're not leaving any stone un-turned in our goal to create the easiest and best game maker for the PC!
 
  
If you want a summary of the blog details, don't forget you can get the FPS Creator Reloaded newsletter too, simply by registering on the site.

 

Preparing for the Intel Q&A

Those of you that frequent the FPSC Forums will no doubt have seen our CEO Lee Bamber will be interviewed by Intel on June 4th. Many of you posted your questions here, many thanks for your contributions. We'll hopefully provide a link next month to the full interview. It will focus on Indie development and be scattered with a mention or two of FPSC Reloaded. If you want to watch the interview live on the Internet then sign up here before the event.

 

Reloaded Discount Deal 

Pledge Now to support FPSC Reloaded development 

gold pledge

Crowd funding provides a way for Indie Developers like The Games Creators to pre-fund their projects. It's also a thumbs up from customers to show the developers the market wants and needs their new idea.

By pledging you are helping The Games Creators to build the most exciting and revolutionary game creator. With your pledging support you can strengthen our team as we build this amazing technology. You are essentially becoming part of our family as you share in it's development and ultimate production.

All pledge levels grant the backer access to all betas, with other bonuses, including free model packs valued at between $18 and $39 for Gold and Silver pledge levels.

Pledge

So, if you'd like to help fund Reloaded development and join us on our journey, please support us with a pledge. The most popular and best value deal is the Gold level pledge, but you can find details of all pledge levels here.

 

The Store - Relaunched for Reloaded

The Game Creators Store
 
The new FPS Creator Reloaded store continues to expand after last month's launch, with over 480 game ready assets already available. Take a look now at the new standard of media available to you directly from the web based interface. New models are coming soon:
 

Sneak Preview: Zombie Clowns! These will be part of the new zombie pack (available FREE to all Silver and Gold Pledgers!)

Zombie Clowns 

Calling all Artists

Sell in the Store
 
The Game Creator Store connects creative artists and musicians with enthusiastic FPS Creator Reloaded game developers. Can you create game ready 3D models or themed atmospheric music for the Reloaded community?

Artist's benefits

You'll receive 70% of all sales revenue earned from your published assets.
The agreement is non-exclusive so you are free to sell your assets elsewhere.
Payment is made monthly via PayPal.
 
How to sell your assets

It's easy to become a seller on the store:

 

FPSCR::AI::LUA

LUA
Work has continued unabated on adding more LUA commands to FPS Creator Reloaded.
 
These LUA commands provide a powerful way to control what happens in an FPS Creator Reloaded game. It means you can push the boundaries and do cool stuff during your games.  We know not eveyone will want to do this and in the near future you will start to see LUA scripts being published in the store. For now you can visit the forums and see what some scripters are doing with Reloaded already.
 
Not just for the new AI, but with a careful eye on the requirements and request of end users. Not everyone wants to get engrossed in creating complex LUA scripts, but this doesn't mean you're excluded from the advantages of this latest addition to the FPS Creator Reloaded technologies. Many of the assets will have embedded LUA scripts controlling their AI and other aspects, all of which are included each time you use the asset in your game level.

Of course, we're aware that there are many hundred possible commands you'd like to see, and work has begun on compiling and prioritising a list of actions and conditions for inclusion. Here are the commands so far, all specific to FPS Creator Reloaded and in addition to the already comprehensive scripting language.
 
Prompt(string) - Display the string for several seconds at the bottom of the screen
SetFogNearest(distance) - set the start distance of the fog
SetFogDistance(distance) - set the end distance of the fog where it's opaque
SetFogRed(red) - set the fog's red component from 0 to 255
SetFogGreen(green) - set the fog's green component from 0 to 255
SetFogBlue(blue) - set the fog's blue component from 0 to 255
SetAmbienceIntensity(percentage) - set the ambient intensity from 0 to 100
SetAmbienceRed(red) - set the ambient's red component from 0 to 255
SetAmbienceGreen(green) - set the ambient's green component from 0 to 255
SetAmbienceBlue(blue) - set the ambient's blue component from 0 to 255
SetSurfaceRed(red) - set the global surface's red component from 0 to 255
SetSurfaceGreen(green) - set the global surface's green component from 0 to 255
SetSurfaceBlue(blue) - set the global surface's blue component from 0 to 255
StartTimer(entity index) - resets the timer associated with the specified entity index
GetTimer(entity index) - get the timer for the entity in milliseconds
Destroy(entity index) - destroy the specified entity
CollisionOn(entity index) - create a physics body around the specified entity
CollisionOff(entity index) - destroy the physics body around the specified entity
Hide(entity index) - hide the specified entity
Show(entity index) - show the specified entity
Spawn(entity index) - if the specified entity was not 'spawned at start', spawn it
Collected(entity index) - mark the specified entity has having been collected
MoveUp(entity index,amount) - move the specified entity upwards by amount
MoveForward(entity index,amount) - move the specified entity forward by amount
MoveBackward(entity index,amount) - move the specified entity backward by amount
ModulateSpeed(entity index,speed) - alter the move and animation speed of entity
SetAnimation(entity index) - set an animation index value for later use
SetAnimationFrames(entity index,v) - set an animation range for later use
PlayAnimation(entity index) - play the animation index or range as previously set
LoopAnimation(entity index) - loop the animation index or range as previously set
StopAnimation(entity index) - stop the animation for the specified entity
SetAnimationSpeed(entity index,speed) - set the animation speed of the entity
GetAnimationFrame(entity index) - get the animation frame number from the entity
CharacterControlUnarmed(entity index) - switch character to unarmed state
CharacterControlLimbo(entity index) - switch character to limbo state
CharacterControlArmed(entity index) - switch character to armed state
CharacterControlFidget(entity index) - switch character to fidget state
CharacterControlDucked(entity index) - switch character to crouched state
CharacterControlStand(entity index) - switch character to stood state
SetCharacterToWalk(entity index) - set the character to walk when moving
SetCharacterToRun(entity index) - set the character to run when moving
RotateToPlayer(entity index) - rotate the specified entity to face the player
AddPlayerWeapon(entity index) - trigger player to collect the weapon entity
AddPlayerAmmo(entity index) - trigger player to collect the ammo entity
AddPlayerHealth(entity index) - trigger player to collect the health entity
WinZone(entity index) - trigger player to win this level and move to next level
Checkpoint(entity index) - trigger player to record checkpoint for later use
GetPlayerInZone(entity index) - return 1 if the player is inside entity zone area
PlaySound(entity index,slot) - play the sound stored in the specified slot 
LoopSound(entity index,slot) - loop the sound stored in the specified slot 
StopSound(entity index,slot) - stop the sound stored in the specified slot 
SetSoundSpeed(speed) - set the speed of the last sound handled in hertz
SetSoundVolume(volume) - set the volume of the last sound handled 0 to 100
FireWeapon(entity index) - cause the specified entity to fire at the player
Include ("ai_cover.lua") - Use within the init function to ensure the script is pre loaded
SwitchScript ( e,"ai_cover" ) - Switch AI to use a different script
SetCharacterToStrafeLeft(e) - AI to strafe to the left
SetCharacterToStrafeRight(e) - AI to strafe to the right 
RotateX(e,v) - Rotate an entity on it's X axis
RotateY(e,v) - Rotate an entity on it's Y axis
RotateZ(e,v) - Rotate an entity on it's Y axis
Scale(e,v) - Scales an entity to V%
SetCharacterVisionDelay(e,v) - Sets the speed at which a character will react on seeing a target
 
 

FPS Creator Reloaded Gallery

The Gallery can now support Video uploads. So if you've made a gameplay video or a tutorial then please share it with the community via the Video Gallery. 

Here are some more of our favourite images screen shots from the FPSC Reloaded User Community. 

mountain stroll by wizard of id 

Mountain Stroll by Wizard of Id

 Desert Pack by RickV

Desert Pack by RickV

OffTheMap by RazorNet7

 OffTheMap by RazorNet7

 Dead Town 3

Dead Town 3 by KajoCat 

Waiting for the Zombies pack by Gervais 

Waiting for the Zombies pack(!) by Gervais

AGK V2 Developments

AGK has arrived

Interpret and Compile

Our AGK expert Paul continues to dedicate his time to AGK V2, with many challenges presenting themselves, but which will ultimately make a better and more verstaile product. These past few months the development has been focused on the new Compiler and Interpreter. Paul explains some of the deeper issues he's faced this past month;

Working on the parser involves making sure it's backwards compatible with existing code, which has some interesting edge cases that need handling. For example when calling a gosub from within a function the gosub loses access to the function local variables and gains access to non-global variables outside the function. This has been dealt with by implementing a new variable handler that can deal with the various scopes (global, local, and function local). The parser can now recognise all the possible variable declarations:

 

 

AGK V2 can also now parse expressions like "a = 5+func()*b[5]" checking that every function, array, or variable is properly defined. 

Code has been added to validate function calls matching parameter count and types for AGK commands and user functions. There are also more expression rules added for types and arrays so it can now parse expressions like:

   mytype.x = othertype.arrayoftypes[a].somevalue

Arrays can be resized with:

   array.length = myType.num + 5

At this point testing was started on the bytecode output and it was soon realised that AGK V2 would also have to handle type casting. Expressions like "a = 6.5" would function correctly if "a" is defined as an integer and promoting integers to floats in mixed expressions like "6.5 + 7" producing a float result. The changes to support this are now completed. AGK V2 now handles AGK commands that have multiple compatible types. For example Str(int) and Str(float) would take Str(6) as an integer, where as Update(float) would take Update(6) as a float.

Function parsing is well under way, handling local variables and arrays. These are now placed on the stack instead of in global storage, and passing arrays and types by reference so that modifying their contents affects the original copy or passing by value so any changes remain inside the function. Essentially, variable handling is really working well.

The compiler and interpreter work has been a tough but rewarding ride, and we're now through the hardest part. We should be looking to release a new Alpha in June for you all to start playing around with.

 There's a blog in the forums should you want to follow the development progress.

AGK Tutorial - App Data

agk mastery

with Sean Mann

The question of transferring data from your mobile app to a server was brought up by Parry on the forums and I thought I'd share my process for getting app data from a device. The problem is that Android and iOS put app data in a protected folder on the device. If you want to root or jailbreak the device it is easy to get at, but this process can be dangerous and complex. If you just need a peek at your app's data then there is an easier way: add all of the files to a ZIP file and send it to a server.
 

Setup

To start you'll need a server. You can use your hosted account or a server of your own. If you're on Windows I highly suggest using XAMPP. The setup is quick and they provide ample information on how to get things going (like allowing outside connections to your server). The next thing you'll want to do is set up some PHP code on the server to accept files as well as the code in AGK to send the files. 

AGK code for sending file:
 
fileID = OpenToWrite("test.txt" , 0)
WriteLine(fileID , "this is a test")
CloseFile(fileID)
cid = CreateHTTPConnection()
SetHTTPHost(cid, "1.1.1.1" , 0) 
SendHTTPFile(cid , "uploadfile.php" , "" , "test.txt")
SetPrintSize(1)
repeat
    if GetHTTPResponseReady( cid ) = 1
        print (GetHTTPResponse( cid ))
    else
        print ( GetHTTPFileProgress( cid ))
    endif
    Sync()
until done = 1
CloseHTTPConnection(cid)
DeleteHTTPConnection(cid)
END
Ensure that the IP Address 1.1.1.1 is replaced with your own IP address or domain.
 
PHP code for receiving file:
 
<?PHP
if ($_FILES["myfile"]["error"] > 0){
        echo "Error: " . $_FILES["myfile"]["error"] . "\n";
}
else {
    echo "Upload: " . $_FILES["myfile"]["name"] . "\n";
    echo "Type: " . $_FILES["myfile"]["type"] . "\n";
    echo "Size: " . ($_FILES["myfile"]["size"] / 1024) . " Kb\n";
    echo "Stored in: " . $_FILES["myfile"]["tmp_name"] . " \n";
  if (file_exists("upload/" . $_FILES["myfile"]["name"]))
    {
        echo $_FILES["myfile"]["name"] . " already exists. \n\n";
    }
    else
    {
        move_uploaded_file($_FILES["myfile"]["tmp_name"], "upload/" . $_FILES["myfile"]["name"]);
        echo "Stored in: " . "upload/" . $_FILES["myfile"]["name"] . " \n\n";
    }
}
?> 

It's as simple as that. Just make sure that the "upload" directory is created on your server before trying to send the file. Now that you have all of that set up and tested we're on to a simple set of code that will get all of the files out of your app's directory:

AGK Code:
 
function ZipDirectory(sZipFileName$)
if GetFileExists(sZipFileName$) = 1
DeleteFile(sZipFileName$)
endif
doOnce = 0
makeZip = 0
repeat
if doOnce = 0
doOnce = 1
thisFile$ = GetFirstFile()
else
thisFile$ = GetNextFile()
endif
if thisFile$ = “”
done = 1
else
if makeZip = 0
makeZip = 1
zipFileID = CreateZip(sZipFileName$)
endif
if GetFileExists(thisFile$) = 1
zipLocation$ = GetFolder() + “/” + thisFile$
AddZipEntry( zipFileID , thisFile$ ,  zipLocation$)
endif
endif
until done = 1
if zipFileID > 0
CloseZip(zipFileID)
endif
endfunction

 
As you may imagine you can also do this for every directory and subdirectory for you app's media folder. It is important to note that the directory you are working with is the write directory for the AGK app and not the read directory. The read directory for apps is where all of the media files exist that you package in with your app. On Android and iOS you do not have access to this directory without rooting/jailbreaking the device. This shouldn't matter because these files are the same that you packed with the app and you already have those. The write directory is a “sandbox” area where the app is allowed to write data. This is where any file you create with the app will be stored such as data files, debug logs, etc. 
 
This method is extremely helpful when developing your app and when it is actually live. When developing your app you can use this to zip up any debug logs and quickly send them to yourself. When the app is live this can be used to send error reports to you when the user experiences issues. In Wordspionage we use this to send error logs whenever a fatal error occurs. This was extremely helpful in the first few months of our release because a few bugs appeared that did not appear in our extensive beta testing. It allowed us to receive data from our users automatically so they didn't need to be bothered or actually need to hit a button to send the report. When these error reports are sent to us they also include a screen shot of the game so we can see any visual clues to the issue. This method was paramount to smoothing out the flaws in the game.
 
About the Author 
This tutorial is presented by Sean Mann, a regular contributor to The Game Creators forums (as Naphier) and author of Shape Time,  Wordspionage and Dfenz. You can read more about his company and Wordspionage in this recent interview.

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.

Keep up to date with TGC on Facebook & Google+

Find us on Facebook to discover more about The Game CreatorsJoin over 6,200 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 2,000 fans discussing Reloaded on our Facebook page right now will you take us beyond 2,000? 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 570 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+ 

 

 

 

"We can't help everyone, but everyone can help someone".
 
Ronald Reagan