Goji game editor for Marmalade 1.7.2b now available

Latest version of the free Marmalade compatible game IDE the Goji Editor is now available for free download

Changes include:

  • Added New Project dialog with support for creating wireframe projects
  • Update to AppEasy Core to work with Marmalade SDK v7.4
  • Fixed export of extra app.icf settings
  • Fixed missing app_id for Facebook extension when deploying device builds

Made with Goji Editor games Shuffle Match and Shuffle Match for Kids now on iPhone, iPad and BlackBerry

Pocketeers has announced the release of two of its new memory game titles aimed at adults and children, Shuffle Match and Shuffle Match for Kids. Both titles were created using the Goji Editor game IDE and the AppEasy cross platform game engine.

Shuffle Match is a fun endless challenge memory game that starts out with an easy two grid and progresses up to a ten grid over time, ramping up the difficulty the longer you play, guaranteeing a great memory workout. Features include:

* Endless challenge, go as far as your memory will take you
* Easy and hard play modes
* Track your progress
* Play up to 10 x 10 memory grid in hard mode
* Very colourful graphics
* Great sound track
* NO IAP so no chance of kids running up huge bills

Shuffle Match for Kids is a version of Shuffle match that is optimised for children and has been tested on children of different age groups to optimise grid sizes and round times to ensure that the game does not become too difficult too quickly. 3 game modes are available based on age range, including younger than 6, 7 to 10 year old’s and 11+. Features include:

* Designed for 3 age ranges (6 and younger, 7 to 10 year old’s and 11 and over)
* Very colourful graphics
* Perky sound track
* Your child can track their progress to see how they improve
* NO IAP so no chance of children running up huge bills

Both titles are also available on Android, Blackberry PlayBook and BlackBerry 10 phones and tablets.

Shuffle Match and Shuffle Match for Kids were created using the Goji Editor which is a powerful game and app creation IDE that is compatible with AppEasy, Marmalade Quick, Corona and Gideros engines.

Shuffle Match – Made with the Goji Editor

I’ve just released a new game for Android called Shuffle Match that is entirely created with the Goji game editor exported to AppEasy. Its currently available on Google Play and will be available on other stores sooonish, including Apple. I will be releasing the entire project for this game in the near future, so that others can learn from it.

The game was inspired by my youngest daughter, who likes to play matching games.

Heres a few details about the game:

Put your memory through a fun workout that starts with an easy warm up and progresses to a gruelling challenge worthy of any memory master.

  • Endless challenge, go as far as your memory will take you
  • Easy and hard play modes
  • Track your progress
  • Play up to 10 x 10 memory grid in hard mode
  • Very colourful graphics
  • Great sound track
  • NO IAP so no chance of kids running up huge bills
  • Compatible with phone and tablet

Game play is simple and casual, remember the numbers on the left board then shuffle the board and find them on the right board. Earn big bonuses by chaining guesses together. Track your stats from game to game to see how you improve.

Goji Editor 1.4 is now available – Corona support added

The newest shiny version of Goji Editor the game IDE is now available for download, now with support for Corona, Gideros, Marmalade Quick and AppEasy.

Changes include:

  • Export and test support for Corona added
  • New property added called Object that enables you to specify the tag or object type that is exported for Gideros and AppEasy
  • Gideros and Quick now export shapes and geometries as tables
  • Named joints are now exported if a name is specified
  • Added collision events to Gideros export
  • Fixed Gideros “Show” action
  • Fixed SVG import crash
  • Fixed docking issue
  • AppEasy circle shape radius was double what it should have been
  • XOML files with XML extension are now recognised as XOML files when imported
  • Fixed various issues with goji lua engine

More info and tutorials etc can be found at http://www.gojieditor.com/

Goji Editor v1.3 is out with support for Gideros

Gideros export and testing support has been added to the Goji game IDE. Features include:

  • Create and organise game levels / maps and app layouts into scenes and actors
  • Complete game and app creators integrated development environment (IDE)/li>
  • Export to many different game and app engine / programming language formats, including AppEasy / IwGame Engine, Marmalade Quick and Gideros/li>
  • Export in multi-resolution friendly format, allowing exported data to be used on any sized display/li>
  • Assisted layout editing, including tools to enable easy layout / layout management, bookmarking, edge / vertex snapping, directional cloning and so on/li>
  • Full drag and drop support, drop entire folders of resources onto Goji and Goji automatically sorts them all for you/li>
  • Support for import of SVG, Texture Packer, audio and other formats/li>
  • Support for physics including shapes, fixtures, joints and the ability to test physics/li>
  • Support for Meshes via Geometries/li>
  • Definition of gaming logic and play using events and actions lists/li>
  • Support for Lua / Javascript and other language editing, includes syntax highlighting, code folding and search / replace/li>
  • Interactive play mode that launches the game using the built in engine or other engines, also shows coloured debug output/li>
  • Goji engine which extends Gideros adding functionality such as depth sprites for parallaxing, touch panning, camera follow target, draggable sprites etc../li>
  • Create complete working / runnable projects/li>
  • Support for user properties and whole bunch of other stuff/li>

More info and tutorials etc can be found at http://www.gojieditor.com/

AppEasy Core SDK is now open source!

If I remember correctly I promised a while back that I was going to open up the source to the AppEasy Core SDK. if you don’t know what that is then its a FREE open source cross platform game and app engine for mobiles and desktop that can be re targeted to work on anything you like as long as you implement the platform abstraction layer. At the moment, a Marmalade SDK layer is implemented so you can use it right out of the box. You will however need a Marmalade license to use it, although having a Marmalade license will give you deployment access to a vast range of platforms so its well worth it. if not then simply implement the platform layer for whatever platform(s) you desire. If you dont fancy any of that and just want to use Lua and XOML then you can always give the AppEasy service a try, which lets you deploy apps to iOS / Android and Windows desktop without the need to compile and re-write code etc..

AppEasy Core SDK is basically the big professional and powerful child of the old IwGame Engine. The IwGame Engine started as a tutorial project that I started a few years ago that was meant to teach developers how to use the Marmalade SDK. However, Marmalade has no out of the box game engine so IwGame evolved into a fully fledged game / app engine to fill that gap, although it was hastily developed and built directly on the Marmalade platform. I’m very much a recycler, so that’s not how I generally like to write an engine, I like to have a clear separation between engine and platform so it can be re-targeted at different platforms quite easily. I also wanted to get rid of the obscenely long names and add some proper structure / documentation to make the whole thing more easily understandable.

Well I think I accomplished all that and more, I also added many new features and fixed a mass of bugs along the way. When I get the time I will be replacing the old IwGame Engine page with an AppEasy Core SDK page, for me IwGame needs to be buried now I think.

I also developed a game / app editor called Goji Editor that lets you develop full on games and apps within the editor and export to AppEasy, Marmalade Quick and other engines coming soon, including HTML 5.

AppEasy Core SDK has the following core features:

General Features
- FREE and open source! (MIT)
- Can directly use data exported from the Goji Editor (http://www.gojieditor.com)
- Can be targeted at any development system / SDK by implementing the platform layer
- Marmalade SDK platform already implemented, giving you access to many platforms out of the box
- Develop using XML, Lua and / or C++
- Easy to learn mark-up driven language called XOML that enables rapid development
- Support for Lua scripting
- Styles and Templates
- Local and web based assets
- Proportional sizing and positioning
- Auto screen sizing and device orientation lock
- Local storage access
- Multi-touch input
- Accelerometer and compass support
- Smooth sub-pixel rendering and batch rendering for speed
- Touch panning and pinch zoom
- Persistent data
- HTTP POST / GET defined declaratively
- Access to video camera streaming
- Define actions that can be carried out when events occur

Game Features
- Polygonal based sprites and sprite depth
- texture atlases and batching
- Support for Scenes (game world / app canvas) and Actors (game / app objects)
- Images, fonts, compressed WAV sound effects and and MP3 music
- Animation
- Box2D Physics (fixtures, shapes, materials, collisions and joints)
- Video Playback

App Features
- Create simple or complex user interfaces
- Full support for simple and complex data bindings
- Data definition and organisation
- Access to local and remote data
- Support for SQLite

User Interface Features
- Text input boxes
- Buttons / Check boxes
- Labels
- Icons
- Sliders
- Panels (StackPanel, WrapPanel, Canvas)
- Grids
- Image / Text View – Support for pinch zoom and pan
- Web View (display web content)
- Tab Bars
- Video Overlays
- Sliders
- XML data bindings
- Multi-touch based user interface (up to 5 simultaneous touches)

Monetisation Features
- Ad integration
- In-app purchases

Advanced Features
- XOML Variables
- Modifiers
- XOML Programs and commands
- Inline scripts

Social Features
- Facebook API support

API documentation
API documentation is located at http://www.appeasymobile.com/appeasy-api/

The AppEasy Core SDK comes complete with:
- PDF documentation located in the Docs sub folder
- Extensive doxygen code documentation
- An example app that contains 70 examples demonstrating many parts of the SDK
- An example game
- XML schema for XOML

Whilst free support is not provided, a community support forum is available at AppEasy Community

You can download AppEasy Core SDk from Github

Goji Game and App Editor beta is now available

The Goji Editor has finally entered beta and is now available for download from www.gojieditor.com.

What is the Goji Editor?

One of the more difficult processes involved in developing applications and games is how to create and organise the content. By organising content we refer to managing all of the elements that make up the game or app, such as images, sounds, brushes, physics materials, level layouts, user interface layouts, scripts and so on. The Goji Editor primarily helps you to quickly create and test game levels / app layouts and organise the lifetime of resources as well as test in real-time across different screen resolutions.

Goji’s secondary function is to enable full game and app production using available game and app development systems such as AppEasy / IwGame Engine, Marmalade Quick, Corona, GiderOS, HTML5 etc,.,. Goji aims to be as platform and development system agnostic as possible to ensure that exported data can be used by any development system and on any platform.

What does the Goji Editor look like?

Goji Editor Screenshot

Who is the Goji Editor for?

Goji has been designed primarily for designers and developers that create apps and games for mobile and desktop systems. However, Goji is flexible, supporting a huge canvas area and could be used in any capacity that involves organising and laying out graphical information spatially. Goji is also a great learning tool for students that are interested in learning the process of putting together apps and games in an environment where they can make changes and see the results of those changes very quickly.

What are Goji’s features? 

  • Create and organise game level levels and app layouts into scenes and actors

  • Export to many different game and app engine / programming language formats, including AppEasy / IwGame Engine, Marmalade Quick, JSON, XML (HTML5, Corona and GiderOS coming soon)

  • Export in multi-resolution friendly format, allowing exported data to be used on any sized display

  • Assisted layout editing, including tools to enable easy layout / layout management, bookmarking, edge / vertex snapping, directional cloning and so on

  • Full drag and drop support, drop entire folders of resources onto Goji and Goji automatically sorts them all for you

  • Support for import of SVG, Texture Packer and other formats

  • Support for physics including fixtures, joints and the ability to test physics

  • Definition of gaming logic and play using events and actions lists

  • Support for Lua / Javascript and other language editing, includes syntax highlighting, code folding and search / replace

  • Interactive play mode that launches the game using the built in engine or other engines, also shows coloured debug output

  • Create complete working / runnable projects

  • Support for user properties

Notes:

  • TexturePacker is a tool that is used to combine many images into a single image, usually referred to as a sprite / texture atlas. Packing images into a single image improves rendering performance.

  • SVG (Scalable Vector Graphics) format is an XML based format that is used to represent two dimensional vector art work. Goji imports the following tags svg (scene), g (layer), image (actor), rect (shape) and path (shape or geometry). SVG is used by packages such as Inkscape and Adobe illustrator

Future features

Features that are currently in development or will be available in the near future include:

  • Export for Corona, GiderOS and HTMl5

  • Complex actions lists

  • Support for animation creation using timelines

  • Deployment to iOS and Android devices

  • Support for audio, video, web views, in-app purchase, ads and many more additional services

How do I download the Goji Editor?

At the moment the Goji Editor is in open beta and is free to use, however the Goji Editor will eventually become a paid product in the future. To download the Goji Editor please register and sign in then click the download menu to be taken to the download area where you can download a beta copy of the Goji Editor.

 

Goji Editor Game and App Editor is Born

Hey everyone, its been a long while since I posted anything to my blog that I would class as benefiting many developers. Well, that is about to change.

I posted some details about a game / app editor that I had started back in May 2013. Well, I decided that I was going the wrong way with that so I scrapped it and started again. Well, when I say started again I mean I created something else and decided to expand on it. I created a simple tool for AppEasy that allows the user to convert TexturePacker and SVG data (as exported from the likes of Inkscape) to the XML format that AppEasy could understand. The tool proved pretty useful for my own projects so I decided to expand on it and turn it into a full on game editor. Of course, once it became a game editor I wanted to expand on that further and turn it into a game editor that could also be used to create complete games and apps (essentially a complete integrated development system). Out of that was born the Goji Editor.

The Goji Editor can be used as a generic game / app layout editor and / or a complete development system. Here’s a quick shot of the editor in its current state:

Goji Game and App Editor screen shot

Goji Game and App Editor

And a quick list of its current feature set:

  • Export to many different game and app engine / programming language formats
  • Export in multi-resolution friendly format, allowing exported data to be used on any sized display
  • Assisted layout editing, including tools to enable easy layout and layout management
  • Full drag and drop support
  • Support for import of SVG, Texture Packer and other formats
  • Support for physics including. fixtures, joints and the ability to test physics
  • Definition of gaming logic and play using events and actions lists
  • Support for Lua / JavaScript and other language editing, includes syntax highlighting, code folding and search / replace
  • Interactive play mode that launches the game using the built in engine or other supported engines
  • Create complete working / compilable projects

And other features that are currently in the pipeline include:

  • Support for animation using time lines editor
  • Particle system editor
  • Geometry creation and editing
  • Export support for all major game engines
  • Intellisense / autocomplete for all supported API’s
  • Support for audio, video, in-app purchase, ads and many more additional services

I’m currently using the Goji Editor in the production of an Angry Birds style game that I’m working on. The project for this game will be released at the same time as the editor providing a working commercial game as an example.

Closed alpha testing will begin soon. If you want to take part then get in touch here

Interested in export support for your format? Get in touch here

AppEasy 1.4.9 Now Available – Polygonal sprites, multiple fixtures, sqlite and SVG, TexturePacker tools

AppEasy Version 1.4.9 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.9 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.9 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.

New Tools:

  • New tool added that converts Texture Packer and SVG data to XOML

Core Engine Changes:

  • Timeline has new property called AutoDelete which if set to true will auto delete the timeline when its finished. Be careful not to delete timelines that are shared across multiple objects
  • Animation has new property called AutoDelete which if set to true will auto delete the animation when its finished being played by a timeline. Be careful not to delete animations that are shared across multiple timelines
  • Actors now support multiple physics shapes (fixtures) using the new Fixtures inner tag
  • Actor Shape property is now write only. Setting a shape will remove all previous shapes
  • Support for new Geometry type which enables creation of actors that are built from collections of triangles, quads or a polygon
  • Actor has new attribute called Geometry which defines a geometry that the actor will use to render itself
  • New example (Tes68) added that shows how to use Geometries
  • Removed Video OnStopped event as its no longer needed
  • Support for sqlite added
  • Added Test69 which shows a sqlite test
  • BUG FIX: Fixed VideoOverlay OnEnd and OnStart events

Polygonal Sprites

One of the most exciting changes we have brought to 1.4.9 is the ability to step outside of the rectangular sprite based actors system using our new versatile geometry system. Using the new geometry system you can create any shape you like. Actors can now be built from polygons, triangle lists and quad lists. You can also specify your own UV texture coordinates as well as per vertex RGBA information. AppEasy will handle taps and intersection of this new type of geometry including disconnected geometry. Here are a few examples of geometries:

<!--Create a single triangle-->
<Geometry Name="Geoms1" Vertices="-200,-200,200,200,-200,200" UV="0,0,1,1,0,1" Type="TriList" />
<!--Create two triangles-->
<Geometry Name="Geoms2" Vertices="-200,-200,200,200,-200,200,-400,-400,-200,-400,-200,0" Type="TriList" />
<!--Create a house shape -->
<Geometry Name="Geoms3" Vertices="-200,-200,0,-300,200,-200,200,200,-200,200"  Indices="0,1,2,3,4" Colours="255,0,0,255,0,255,0,255,0,0,255,255,255,255,255,255,255,255,255,255" Type="Poly"/></pre>

Once you attach any of the above geometries to an actor the actor will take on the new geometric shape:

<Icon Name="Sprite1" Position="200,0" Background="bg1" Geometry="Geoms1" />

Physics Now Supports Multiple Fixtures

Actors now supports the new Fixtures inner tag that enables you to specify multiple shapes and materials etc that are attached to a single actor, e.g:

<Icon Position="0,0" Background="Land" Box2dMaterial="FixedHeavy">
	<Fixtures>
		<Fixture Shape="LandScapeBase" Box2dMaterial="FixedHeavy" CollisionFlags="1,1,1" COM="0,0"/>
		<Fixture Shape="LandScapePeak" Box2dMaterial="FixedHeavy" CollisionFlags="1,1,1" COM="0,0"/>
	</Fixtures>
</Icon>

SQLite Added

Due to popular request we have added lsqlite3 to 1.4.9 which enables SQL interaction via Lua.

Asset Conversion Tool

A new tool has been added that facilitates conversion of Texture Packer and SVG data to XOML. In particular the tool enables you to use SVG editors such as Inkscape to layout game levels and app layouts as well as create complex geometries easily.

Finally Game / App Editor Started

Note to self, update my blog more often. These days my blog seems to have turned into an AppEasy update feed, well I want to change that and start blogging about other things (besides AppEasy).

Well, this blog post is not completely devoid of AppEasy news as the game editor will target AppEasy to begin with.

Today I want to blog about a new game editor that I have started work on (its a bit of a pet project because I’m getting fed up of writing game or app specific editors). The editor is tentatively called Groove Game Editor which will have the following features when finished:

  • Completely customisable – You can define all of the types of objects that can be edited along with all of the properties for those objects using an input XML file
  • Placement, scaling, rotation of game objects on a large virtual canvas
  • General layout, tile and zone maps
  • Automatic atlas generation
  • Resource management
  • Music and sound effects
  • Physics
  • Actions, events and triggers
  • Key frame animation editor
  • Lua scripting
  • Support for all XOML types out of the box
  • Support for HTML5, Marmalade Quick, Cocos2d-x, Corona, Gideros and other game / app development SDK’s and systems
  • Binary, xml and JSON export

Thus far I have implemented the customisation system which enables developers to create a single XML file that describes the following elements to the editor:
Enumerations – You can use these to define sets of possibilities, e.g.

Here’s an example that shows an enum for the Joint Type used by XOML joints:

<Enum Name="JointTypeEnum" Info="Physics joint type">
	<Property Name="weld" />
	<Property Name="distance" />
	<Property Name="revolute" />
	<Property Name="prismatic" />
	<Property Name="pulley" />
	<Property Name="wheel" />
</Enum>

You can later use this as a type for object properties

Object Types – These represent specific types of objects that can be edited, for example Actors, Scenes, Images, Programs, Actions etc are each single types, e.g.*

Heres an example of a Box2D material:

<Type Name="Box2dMaterial" Base="Common" Info="Box2D material resource" Colour="#ffe4ff00">
    <Property Name="Type"            Type="Box2dMaterialTypeEnum" Category="General"  Value=""	  Info="Type of material" />
    <Property Name="Density"         Type="double"                Category="General"  Value="1"   Info="Material density" />
    <Property Name="Friction"        Type="double"                Category="General"  Value="1"   Info="Materials coefficient of friction" />
    <Property Name="Restitution"     Type="double"                Category="General"  Value="0.1" Info="Materials coefficient of restitution / bounciness" />
    <Property Name="IsBullet"        Type="bool"                  Category="General"  Value=""	  Info="Treat object as moving at high speed" />
    <Property Name="FixedRotation"   Type="bool"                  Category="General"  Value=""	  Info="Prevent rotation of body" />
    <Property Name="GravityScale"    Type="double"                Category="General"  Value="1"	  Info="Amount to scale gravity" />
</Type>

As you can see you can define the name of the type, the base, which is kind of like a base class in C++, the type inherits all properties of the base. Info is used for tool tips and the colour is the colour that will be used to display objects of this type in the resource view. There are other properties but I wont go into them right now. Within the TYpe tag is the properties, thee define the properties that can be edited along with their types, the category they appear under and the tool tip

Type Groups – Type groups are used to group together types that share similar function, e.g.

<Group Name="Basic Actors">
    <Type Name="ActorImage" />
    <Type Name="ActorConnector" />
    <Type Name="ActorText" />
    <Type Name="ActorParticles" />
</Group>

Here we group together four different types into a group called Basic Actors. We can later use these to set up menu groups and other interesting stuff

Menu Groups – Finally we have Menu Groups. These are used to define how the user can create hierarchical data. Each menu group defines a list of types that can be creayed when the user attempts to create a child object within its hierarchy, e.g.:

<MenuGroup Name="NewAnimationChild" Context="Animation">
    <Section Name="">
        <Type Name="Frame" />
        <Type Name="Atlas" />
    </Section>
</MenuGroup>

Here we create a Menu Group called NewAnimationChild that contains two possible types (Frame and Atlas), these are the only two possible types of objects that an Animation object can contain. The Context attribute specifies what type of object will use this menu for creating new child objects in its hierarchy. The Section tag specifies the name of the sub-menu that the type should appear under. In this case the section name is blank so Frame and Atlas will appear in the root.

Most other items and other parts of the editor will be defined in this customisable editor file.

The editor is not currently in a usable state and only has the following functionality:
* Allows editing using all custom types, enumerations and menu groups that are specified in the editors definition XML file
* Loads files that are based on the editors definition XML file
* SUpports all AppEasy XOML types and enumerations using colour coding

Next on the list is export to XML. However, before I do that I need to get objects that are specified inside templates working. The problem I face is that the editor creates UI that allows you to edit specific types. For example, a bool type will use a check box and an enumeration will use a drop down list. Problem with this is that objects that are defined inside a XOML template can have parameters that are template parameters (strings), so the UI needs to change for all objects that are sat inside a template to allow these parameters to be modified. Problem is that Windows Presentation Foundation (WPF the technology that I am using to create the editor) uses data binding to specific types. I need to figure a way around this. I have a few ideas that I can try.

Once I have export working I will release a version for those that are interested in taking a look to play around with. For now I will leave this screen shot that shows my porgress so far:

Groove game editor

Groove game editor