AppEasy 1.4 available – New Lua API, Web View, Ad Support, Video Cam Streaming

AppEasy Version 1.4 is Now Available

AppEasy the cross platform mobile game and app development system for iPhone, iPad, Android and Windows that is aimed at all levels of experience releases latest update

AppEasy version 1.4 is now available for download from here.

Please upgrade to the latest version. Note that before updating, close down your current version of AppEasy, rename c:\AppEasy to c:\AppEasy2, install and run AppEasy 1.4 then copy any changes / certificates from c:\AppEasy2 to c:\AppEasy. Note that if you install the update before renaming c:\AppEasy then simply exit the AppEasy project manager, rename the folder and run AppEasy again.

Lua API has had a major overhaul

We felt that the Lua API was not going in the right direction and was starting to look messy so we rewrote it. Functions have now been split up into libraries to make the API more organised and easier to use. Heres a full list of the libraries we have planned:

  • actions – Deals with XOML actions
  • actor – Deals with actors
  • brush – Deals with brushes (coming soon)
  • camera – Deals with virtual scene cameras (coming soon)
  • facebook – Deals with facebook interaction (coming soon)
  • font – Deals with fonts (coming soon)
  • sys – Deals with general system interaction
  • http – Deals with HTTP communications (coming soon)
  • image – Deals with images (coming soon)
  • input – Deals with device input
  • market – Deals with in-app purchasing (coming soon)
  • media – Deals with audio and video playback
  • physics – Deals with physics (coming soon)
  • program – Deals with XOML programs
  • resource – Deals with generic resources
  • scene – Deals with scenes
  • shape – Deals with shapes (coming soon)
  • template – Deals with templates
  • timeline – Deals with timelines
  • variable – Deals with XOML variables

Over time new functions and even new libraries will appear

New Lua functionality has been added such as querying collision contacts, creating scenes, appending XOML arrays, controlling device vibration, disabling device power saving etc..

Web View

The Web View now works on iOS and Android. You can create web views of any size modal or none modal and either navigate them to a URL or write html / javascript content to them from actions, commands and scripts.

Video Cam Streaming

A new resource type called VideoCam has been added which enables streaming of the devices video camera to an Image, which can in turn be displayed via actors.

New Actor Properties

Actors have been given some new properties, including:

  • IgnoreCamera – Forces actor to ignore camera transform
  • Orphan – Allows child actors to sort via normal actor layers
  • UserData – A simple integer that can be used to store user data such as an index into a script table

Brush UV coordinates

Brushes got a new property called UV, which allows you to set the UV coordinates of the brush directly instead of using SrcRect. Currently only works with image brushes.

Ad Support Added

We decided to add support for HTML ads to AppEasy as they offer a wide range of features compared to basic text or banner ads. For example using HTML ads you have access to the following types of ads:

  • Animating banner and text ads of any size
  • Video ads
  • Interstitial ads
  • Interactive ads
  • Forms based ads
  • Offer walls

We have added information about ad integration to section 20 of the XOML User Guide. We have also added information showing how to get set up and integrated with Leadbolt. We will include additional integrations on the next release.

Complete list of changed in 1.4 include:

Changes to AppEasy Project Manager

  • If project is saved with no location then the location is set to the folder where the project is saved
  • You can now set the size of the XML pools used by AppEasy. Format is (max-tags,max-attributes). Note that these are preallocated data pools so they will eat into your applications memory, so you may need to increase the amount of memory available to your app. Each tag consumes 104 bytes and each attribute consumes 60 bytes plus additional space for parsed strings

Changes to AppEasy Core Engine

  • Lua API has been replaced with a more intuitive Lua API
  • If you now try to add a resource that already exists in the scope it is loaded then a warning will be displayed and the resource will be overwritten
  • WebView now supports new Html attribute which can be used to pass html to the web view to be displayed
  • WebView now works in screen coordinates and not virtual canvas coordinates
  • Actors now have new UserData property that can be use to store a single integer, can be used to store index into script table / array for additional data
  • Actors now have new IgnoreCamera property that allows them to ignore the scenes camera transform
  • All examples now have schema set
  • All examples have been updated to use new Lua API
  • Actors have new property called Orphan. When set to true, actor is taken out of the usual sprite parent / child hierarchy and moves into the normal layer system. This enables child sprites to sort using layers, however actor to actor clipping may be affected
  • New scene.create() method added to allow creation of scenes from lua
  • New actor.getStartContacts() and actor.getEndContacts() functions added to give access to actors that a particular actor has started or ended collisions with
  • New VideoCam resource added that allows you to stream the devices video cam to an image
  • New ChangeVideoCam action added
  • New Lua functions added to change video cam media.changeVideoCam(), can be used to stop and start feed
  • New Lua variable.add() function added to add a value to a XOML variable
  • New Lua variable.append() function added that enables you to append additional elements onto the end of a XOML array
  • New Lua functions sys.vibrate() and sys.stopVibrate() added to control vibration
  • New Lua function sys.changePowerSaving() added to prevent back-light from switching off
  • New Lua function input.touchInfo() which returns information about touches
  • Image brush now supports setting of UV coordinates directly
  • Ads are now integrated via the web view (see section 20 of XOML User Guide)
  • BUG FIX: Some Lua functions were displaying incorrect errors and warnings
  • BUG FIX: Web view now works on iOS and Android (does not work on Windows)
  • BUG FIX: AspectLock fixed
  • BUG FIX: None batched sprites now render correctly at edges
  • BUG FIX: Some examples were broken
  • BUG FIX: Deleting particle actor that was child of another actor crashed when removing particle actor
  • BUG FIX: Particle actor placed inside parent actor didn’t scale by parents opacity when UseParentOpacity set
  • BUG FIX: Empty Param2 in FromTenplate action / commands crash
  • BUG FIX: Fixed changing orientation resizing
  • BUG FIX: Touch panning glitch fixed

Example Changes

  • Added New VideoCam example
  • Added new AdvancedCollision example
  • Added new DynamicWebView example

AppEasy 1.3 Now Available

AppEasy Version 1.3 is Now Available

AppEasy the cross platform mobile game and app development system for iPhone, iPad, Android and Windows that is aimed at all levels of experience releases latest update

AppEasy version 1.3 is now available for download from here.

Please upgrade to the latest version. Note that before updating, close down your current version of AppEasy, rename c:\AppEasy to c:\AppEasy2, install and run AppEasy 1.3 then copy any changes / certificates from c:\AppEasy2 to c:\AppEasy.

iOS App Store Signing

You can now sign your apps for distribution using a valid distribution certificate and distribution profile. If you have an app ready for App store submission then please let us know how you get on.

Windows Platform Added

You will notice that the AppEasy project manager has got a few new options, including a new deployment platform (Windows). You can now deploy a native Windows application which you can commercialise or use for demo purposes. There is also an option for Apple Mac but that is not currently enabled. We are looking to offer Mac support by 1.5.

AppEasy Wizard

We have added a new feature called the Easy Wizard. This wizard is an app that provides a step by step process for new iOS developers. It walks the developer through 9 steps including creating a developer account, creating a signing certificate request (on Windows), getting certificates, adding test devices, getting provisioning profiles and more, all steps are explained with additional available help built into the program. We will be adding steps for app store submissions and an Android version of the wizard for 1.5.

Inline Scripting

Its now possible to execute raw script from actions and commands. The script can be included within the action / command parameter or provided from a XOML variable, allowing dynamic scripting. This also saves having to call script functions when not needed, embedding logic into templates etc..

Rendering Engine Upgrade

We have upgraded the rendering engine to use floating point, so you should notice an improvement in rendering quality.

Complete list of changed in 1.3 include:

Changes to AppEasy Project Manager

  • iOS App Store signing now implemented, you can now sign your apps and submit them to the Apple App Store
  • Deployment to Windows platform added. You can now build commercial PC apps and games using AppEasy
  • Advanced options have been moved up to the top of the options panel
  • Simulator screen size moved up to top of the options panel
  • New debug info selector which can be used to change how much debug info is shown in builds (does not affect simulator test as this always shows max debug info)
  • New Windows deployment options section added
  • Support for more video cards added to the simulator
  • Apple Wizard tool added
  • BUG FIX: Fixed screen size label misplacement
  • BUG FIX: Deployment of app with space in location filename fails
  • BUG FIX: Drop down screen size settings now applied immediately
  • BUG FIX: Can no longer deploy an Android / iOS app store app without the proper key store / provisioning profile information

Changes to AppEasy Core Engine

  • Rendering engine has been upgraded from fixed point to floating point
  • Raw script can now be executed inline using the new “Inline” action and “inline” command. P2 specifies scene in which to run the script (omit to run in global script space)
  • Actors that have Draggable set to true will also set Hittest to true unless you override it
  • Lua Change Program now has new restart, next, priority and goto commands. Also takes optional 3rd parameter which is used as name of command to goto
  • New getDistanceBetween() Lua function added which returns the distance between two parent actors (does not take into account transforms)
  • New getAngleBetween() Lua function added which returns the angle (in degrees) between two parent actors (does not take into account transforms)
  • New Lua getFreeMem() function added to get total free memory available
  • New Lua functions ScreenToScene() and SceneToScreen() which convert between screen and scene coordinates
  • If a script function does not exist in the scenes script space then the system will attempt to call the same named function in the global script space. This allows you to call global functions in the global script space from any scenes script engine.
  • Lua getVariable(), getProgram(), getActor() and getResource() now look to the script engines container scene if the scene is not supplied. If no scene is available (the script is declared globally) then the global script space will be used. if no valid scene is found for getActor() then an error will occur as actors can only exist inside a scene.
  • All files are now Preload and Blocking by default
  • BUG FIX: Template parameter case issue fixed
  • BUG FIX: Nop command now returns immediately
  • BUG FIX: Lua crash when garbage collector kicks in crash fixed
  • BUG FIX: Crash when not assigning brush a type. Defaults to Image with a warning
  • BUG FIX: When actor is created via Lua createActor() and parent is an actor then depth of child is set to 0
  • BUG FIX: WebView was not positioned correctly when scene origin was set to something other than centre

Example Changes

  • Added Complex UI example

IwGame Engine v0.370 Released – Marmalade 6.1 Compatibility

It’s been a while since we did an IwGame Engine update because we are so busy working on our new AppEasy service. Marmalade recently released 6.1 of the Marmalade SDK and unfortunately IwGame doesn’t compile against it. IwGame 0.370 will now compile against Marmalade 6.1. There are no other changes at this point as to release the very latest version of IwGame would take an incredible amount of time as well as major documentation updates which we simply do not have the time for at the moment.

You can grab the new version of IwGame from here

AppEasy Closed Beta is now Closed

Hi Everyone,

AppEasy closed beta is now closed to the general public. We may still consider a few exceptional cases such as those that have games or apps that have been released or are closed to being released that use the IwGame Engine as well as larger developers that may be looking to adopt AppEasy technology.

We’re hoping that beta is finished by the end of September 2012.

If you are interested in investing in Phase 2 of AppEasy (WYSIWYG game and app visual editor) then please get in touch at http://www.appeasymobile.com/register-interest

Also, apologies to any IwGame engine users that are still awaiting response to questions. We are currently prioritising AppEasy development and support until the end of beta, so IwGame Engine support will be very slow until after that point.

Thanks

Mat

AppEasy Sponsors Uni Jam 2012


Uni Jam 2012

AppEasy the cross platform mobile development system sponsors Uni Jam 2012

We are excited to announce that Nottingham Trent Development Society (DevSoc) at Nottingham Trent University (NTU) are hosting a 24 hour games programming contest between NTU and a number of other universities. 100 people, in teams of 3-5 members, will be invited to take part. It is hoped that this event will bring about a sense of friendly competition between universities, and create opportunities for further corroborative and competitive events in the future. The competition takes place at the NTU city campus in the Newton building

When the 24 hours are up the judges will choose a winning game for each of the following criteria:

  • Innovation
  • Gameplay
  • Accessibility
  • Graphics
  • Best Overall Game
  • AppEasy have donated 5 licenses and reserved spots in their closed beta for the winners of the most innovative game category.

    For more information about joining the competition or donating prizes please visit the Devsoc website

    To find out more about the AppEasy project please see http://www.appeasymobile.com

    AppEasy Beta Begins – The new Easy way to Create Mobile Apps and Games

    AppEasy Logo

    We have some wonderful news. Today we finally began closed beta testing of our up and coming Marmalade / IwGame powered cross platform app development system AppEasy. AppEasy allows you to develop games and apps using mark-up language similar to HTML but designed specifically for high performance native games and apps. You can also use the optimised Lua API to enhance apps and games developed using AppEasy. You can find out more about AppEasy by visiting our “work in progress” web site at http://www.appeasymobile.com/. AppEasy puts mobile app and game development into the hands of everyone.

    We have decided to double the number of users that can join our beta test program. If you would like to join then please register your interest at http://appeasymobile.com/register-interest

    IwGame Engine – Using Templates Tutorial

    New here? What’s IwGame? IwGame is an open source free to use cross platform game engine for iPhone, iPad, Android, Bada, Playbook, Symbian, Windows Mobile, LG-TV, Windows and Mac, built on top of the Marmalade SDK.

    A forum poster asked a question recently that made me realise that XOML Templates can quite easily be overlooked as a means for creating re-usable actors and such, so I thought to help make Templates more visible that I would create a very quick tutorial showing how to use them.

    To begin with, lets take a look at what a template actually is and does. A template is a XOML tag that allows you to define generic XOML that is not instantiated immediately, yuo can think of a Template as a blue print for something that you will later instantiate into your game or app world. A template also takes any number of parameters that can be passed when you instantiate the template.

    When creating items inside a Template, template parameters are defined using a template parameter name that is enclosed inside double dollar signs ($$), for example $position$. When you later instantiate the items within the template the parameters within the template will be replaced by values that are passed to the template.

    Lets take a quick look at creating an actor / child actor with a template

    [sourcecode language=”xml”]
    <Template Name="TankTemp">
    <TankActor Name="$name$" Style="TankActorStyle" Position="$pos$″ >
    <TankActor Name="$name$_sel" Style="TankActorSelectedStyle" Position="0, 0″ />
    </TankActor>
    </Template>
    [/sourcecode]

    Here we create a template called TankTemp that defined an actor with a name of $name$ and a position of $pos$. Note that because these two parameters are enclosed in $$ they are classed as template parameters.

    Now to instantiate this elements within this template in XOML we use the following:

    [sourcecode language=”xml”]
    <FromTemplate Template="TankTemp" name="Tank" pos="310, -120" />
    [/sourcecode]

    The above code will instantiate the following code:

    [sourcecode language=”xml”]
    <TankActor Name="Tank" Style="TankActorStyle" Position="310, -120″ >
    <TankActor Name="Tank_sel" Style="TankActorSelectedStyle" Position="0, 0″ />
    </TankActor>
    [/sourcecode]

    To instantiate a template from C++, we firstly need to find the template, build the parameters then instantiate the template passing in the parameters:

    [sourcecode language=”cpp”]
    // Find the tank template
    CIwGameTemplate* temp = (CIwGameTemplate*)scene->getResourceManager()->findResource("TankTemp", "template");
    if (temp != NULL)
    {
    // Create a set of XML attributes that will replace the template parameters
    CIwGameXmlNode* replacements = new CIwGameXmlNode();
    replacements->Managed = false;
    CIwGameXmlAttribute* attrib;

    // Set name template parameter
    attrib = new CIwGameXmlAttribute();
    attrib->Managed = false;
    attrib->setName("name");
    attrib->setValue("Tank");
    replacements->AddAttribute(attrib);

    // Set position template parameter
    attrib = new CIwGameXmlAttribute();
    attrib->Managed = false;
    attrib->setName("pos");
    attrib->setValue("310, -120");
    replacements->AddAttribute(attrib);

    // Instantiate the Tank template
    temp->Instantiate(scene, replacements);

    // Clean up replacement attributes
    delete replacements;
    }
    [/sourcecode]

    AppEasy – Coming Soon – Beta Testers Wanted

    I would like to mention a new service that we plan to roll out very soon called AppEasy. AppEasy is a game and app development system that enables anyone to develop cross platform games and apps for iOS, Android (soon Samsung Bada and BlackBerry PlayBook) without the need for C++, Objective-C, Java or compilers / other SDK’s etc.. The AppEasy system involves using XOML and Lua (other script languages to be added soon) to create apps. To build an app you simply drag and drop all of your assets onto a web app, set some parameters for your game or app, such as icons, app name etc.. then hit deploy. Builds for each platform are then created that you can submit to the app stores. You can also hit a debug button to test your app locally. The system will be Windows only to begin with as we cannot gain elevated security permissions on Mac from Silverlight 5, we are still looking into options for Mac and Linux. If you are interested in beta testing this new service then get in touch with us at http://www.pocketeers.co.uk/?page_id=8. We are only offering a limited number of spots initially, so grab them whilst they are available. Now for a quick poll:

    [poll id=”6″]

    Whilst the pricing structure is not yet final, AppEasy will be priced competitively, although a free version will most likely be made available that embeds an Ad into deployed apps that generate revenue for us on start up. Money made from AppEasy will be spent on improving IwGame / AppEasy and other cool developer tool projects (such as the IwGame editor) that we have in the works.

    If there is anything that you strongly agree / disagree with then please feel free to comment.