Booty5 – Free HTML5 Game Engine

August 17, 2014

I’ve finally branched out into HTML5 game development, I’ve been avoiding it for years but finally took the plunge. Funnily enough my first creation with HTML5 is the Free Games Bandit, a service to help game developers get their mobile games noticed. I found myself actually enjoying working with JavaScript, CSS and HTML5. I’ve changed my whole mindset regarding HTML5, where I once saw it as a tool for creating gimmicky web site widgets I now see it as a valid way to make games and proper slick interactive web sites.

With the previous paragraph in mind I have begun the long journey of creating an HTML5 game engine, which I have randomly named Booty5 and is hosted on Github. I’ve already made some headway putting together the basics of scene / actor management, support for sprite atlases / sprite animation, Box2D physics and animation via GSAP etc..

My plans for the engine in the future are to support a majority of features from the AppEasy Core SDK. I am also in the process of extending the Goji Editor to enable support for building, testing and deployment of HTML5 games.

You can find out more about the free game engine here

Compile Programs Online

August 15, 2014

On my travels I came across a brilliant tool that’s very useful, especially for programmers that want to learn a new language. The tool is called Compile Online. The tool allows you to write code into the browser, compile and run it. The main advantages of this type of service is a) You don’t need to install any tools or IDE’s b) You can try out a new language very easily. It supports all sorts of languages including the likes of C#, C++ 11, Objective-C, Lua, PHP, JavaScript, Ruby and a whole boat load of other languages.

New to the Marmalade SDK?

August 13, 2014

So you downloaded the Marmalade SDK, but you haven’t quite got around to using it yet. Maybe you plan on developing full on native speed games? Maybe you want to develop apps that run across a large number of platforms? Or you just want to avoid XCode and Mac to develop iPhone and iPad games. Regardless of why you downloaded it, why aren’t you using it yet? Maybe it seems a little daunting at first and you just don’t know where to start? Well I have some news that may just help you.

Marmalade are running a series of Getting started with Marmalade webinars which will help you get up and running quickly. The webinars are hosted by Marmalade expert, developer and support engineer Nick Smith and will cover an overview of how Marmalade works; a number of practical demos and examples that show you how to start a project in Marmalade, or import an existing C++ project. Members of Marmalade’s support team will also be available throughout the webinar to answer questions. The webinars will last for 30-45 minutes.

Marmalade are hosting three Getting Started with Marmalade webinars on Friday 15th of August:

  • 13:30 India ST / 16:00 China ST (09:00 BST)
  • 17:00 Central European ST (16:00 BST)
  • 10:00 Pacific DT / 13:00 Eastern DT (18:00 BST)

To register use the links below:

9am BST

Audience Log-in URL: https://www.anymeeting.com/651-699-060
Registration Form URL: http://www.anymeeting.com/PIID=EA58D78189493D

4pm BST

Audience Log-in URL: https://www.anymeeting.com/386-680-255
Registration Form URL: http://www.anymeeting.com/PIID=EA58D78189493E

6pm BST

Audience Log-in URL: https://www.anymeeting.com/268-006-473
Registration Form URL: http://www.anymeeting.com/PIID=EA58D78189483B

Free Games Bandit – FREE amazing new app discovery service for users and developers

July 16, 2014



I’m quite excited to announce a new free mobile games and apps discovery service called Free Games Bandit. Free Games Bandit was invented to serve two purposes:

App discovery from the users point of view

First and foremost, as an avid mobile app user and gamer I have a MASSIVE gripe with app stores such as Google Play and Apple’s App Store. When I visit Google Play and the iOS App Store I am ALWAYS presented with apps and games that I have seen before. Not only that these apps and games rarely change. I can log in every day for a week and see the same old stuff there. I am forced to drill down categories for hours and hours just to find an app or game that’s new or different. I feel very strongly that app discovery at the moment on the major app stores is stagnant and a mind numbing experience.

Free Games Bandit solves this discovery problem by presenting a collection of random games and apps to you the user. It also presents them in an exciting interactive format that feels very game like making app discovery FUN.

App discovery from the game and app developers point of view

So as a mobile game and app developer you created your latest marvel app or game and put it on the app store, did a little PR, posted to various gaming forums, told your friends, announced on Facebook / Twitter etc, maybe a little paid advertising, but where are the sales and downloads?

80% of most new apps and games for Android and iPhone / iPad get buried at the bottom of the app store under the immense weight of the app stores themselves. what are your chances of being discovered? That’s right, virtually 0, which is evident with how many apps are on Google Play / Apple App Store with fewer than 10 downloads. What would your downloads look like if you as a developer had the same chance of getting your app discovered as all other developers? Free Games bandit does not discriminate, all app developers that add an app have the same chance of being discovered

So if you are an app user / gamer looking for a new, unique and interesting way of finding new apps and games or a mobile developer looking for a fair and free way of promoting your apps then pop over to Free Games Bandit. Note that there is no sign up required to use or add apps.

Free Games Bandit on Facebook

Free Games Bandit is now available on Facebook as an app at https://apps.facebook.com/freegamesbandit. I’ve also added a Facebook page at https://www.facebook.com/freegamesbandit where you can keep up to date with development news.

Getting your app featured on Google Play – What to do and not to do

July 10, 2014

Looking at my recent app sales / downloads and feeling quite disappointed I sat wondering why none of my apps have yet been featured on Google Play. I searched around and around and finally found something that could explain why. A recent-ish (2012 to be exact) talk by Dan Galpin and Ian Lewis at the Google I/O conference offered up some dos and donts when it comes to “possibly” being featured on Google Play. The video of the Google I/O event can be watched here.

A basic summary is shown below:

  1. Make sure app works on latest OS release (hide soft buttons too)
  2. Do not enable copy protection in Google Play developer console (this has already been removed)
  3. Use back button to pop up pause menu or return to previous screen
  4. Respect Android life cycle. One tip, when game returns from paused state, pop up a game paused menu and never lose game progress
  5. Don’t use certain permissions if your app doesn’t really use them such as read / write SMS, change wifi state etc..
  6. Conserve system resources (memory, battery etc..)
  7. Follow Google’s rules such as a) dont use other 3rd party IAP API’s b) Do not upload apps that download others apps c) Do not bribe users for 5 star reviews
  8. IAP must be done correctly, including taking into account situation where purchase was not delivered because the app was paused or shut down
  9. Make sure game works and runs well across wide variety of different devices
  10. Get app store listing correct and make sure that the featured images are ok at a low resolution, such as text can be read. Don’t include keyword spamming or phrases such as “if you like xxxx then” or use over salesy type language

There are more tips, so its well worth watching the video.

Good luck with getting your app or game featured on Google Play.

HTML 5 Gotchas

July 7, 2014

On this page I will place all of the gotchas that I come across during my HTML 5 developments.

IndexSizeError: Index or size is negative or greater than the allowed amount

I got this error Firefox and a similar error in Internet Explorer whilst drawing an image to the HTML 5 canvas using drawImage(). The problem turned out to be trying to draw a portion of an image that was outside its bounds. I was drawing what I thought was an 800×600 image, which was actually 798×600 so the source rectangular area that I was drawing was off the edge of the actual image. Doh!

Marmalade SDK 7.3.1 is out now, Fortumo, FBX exporter and other cool additions

July 4, 2014

Yep that’s right, Marmalade 7.3.1 is smoking hot and fresh off the press. In case you have been developing games in a cave somewhere with no internet connection the Marmalade SDK is an awesome piece of technology that enables you to create games that run across many different mobile and desktop platforms with “one single code base”. I cannot stress how wonderful that is in mere words. You can develop products in C++, Objective-C, Lua or HTML / JavaScript, test under simulation on Mac / Windows desktop, deploy to device / store and whole raft of other cool stuff.

Anyways, sales pitch aside, lets take a look at some of the recent changes:

  • Fortumo now integrated with IwBilling and Quick Billing.
  • New FBX to Marmalade converter tool, making it easy to get your 3D assets from tools such as Maya LT, 3ds Max and others that support FBX format into Marmalade.
  • ideviceinstaller now available on Windows (goodbye iTunes!).
  • IwGx now supports the ETC2 and EAC compressed texture formats.
  • IwGx PowerVR texture compression efficiency improved.
  • Initial support for PowerVR Tools (PVRTrace and PVRTune) on Windows Desktop.

I’m majorly excited about three of the new features in particular. The first is the support for Fortumo integration into IwBilling and QBilling. If you don’t know what they are then they are a single unified solution that enables you to “very easily” add in-app purchasing to your app across multiple different app stores. The addition of Fortumo means that in-app purchases can now be accepted by a vast number of different app stores (Android in particular).

Second feature is not having to install apps to an iOS device using the infinitely despised iTunes client on PC. I have never come across such a bug ridden piece of software in all my years. I will be happy to be deploying directly to device from now on!

Lastly, a new FBX converter that converts Maya LT exported FBX files into a lovely Marmalade format, yummy yummy.

By the way, did I mention that the Marmalade SDK is now available on a FREE license!

Click here to download the latest version of the Marmalade SDK

HTML5 cheat sheet

July 3, 2014

This page is basically a dumping ground for all the useful bits of info that relates to HTML5 development.

Useful HTML5 semantic elements

    <article> – Defines an article in the document
    <aside> – Defines content aside from the other page content
    <footer> – Defines the footer for a section in the document
    <header> – Defines the header for a section in the document
    <nav> – Contains page navigation links
    <section> – Defines a section in a document

HTML 5 Journey Part 1 – What is HTML 5 tutorial

June 30, 2014

I’ve always liked web development (from a gaming perspective), but not to the same extent as I have good old solid native development with C++. The main reason being “JavaScript”. To be honest, I did JavaScript years and years ago and it terrified me, I couldn’t get used to not having pointers and variables that have a set type amongst other things. The main problem however for me has always been speed, if I want to make a game I want to provide a good interactive experience without loads of lag, slow frame rates and dodgy access to things like audio playback and input. So, for years I avoided client side JavaScript and the DOM and went with Java Applets, which seemed great, nice and quick, good frame rates, can render 2D and 3D, access to I/O etc.., but if I remember correctly there were browser security issues, oh and it crashed (or refused to load) across different browser versions. After a while mucking around with applets I went to Microsoft Silverlight, followed it for a few years, made some nice things with it but then Microsoft dropped support for it in favour of HTML 5! (How can I ever forgive you Microsoft!) Now everyone and their grand mothers seem to be bending over backwards to support HTML5, so I feel like its time to finally take a good look at this newish technology and see what I can do with it.

This blog series is going to cover my noobish attempts to learn how to use HTML5 / JavaSctipt with possibly a little PHP back-end junk thrown in. At the end o the blog series I will probably revisit the series and tidy up so I can mislead as few developers as possible!

Right waffle over, on with something useful.

What is HTML5

Well, I’ve purchased various HTML5 books and started to read them, missing my C++ and the Marmalade SDK already. I’ve come to the conclusion that HTML5 is a bunch of things:

  • Well it uses HTML5 mark-up to begin with, but some new cool tags have been added to provide access to stuff like a drawing canvas and video playback
  • Cascading style sheets (CSS3), this is a language that you use to add style to the various HTML page elements
  • JavaScript, this is the language used to manipulate the HTML of the page and what not

How do I create an HTML 5 page?

Simple, create a text file using any old text editor (I use Notepad++ as it has syntax highlighting for HTML, CSS and JavaScript) and called it something,html. You can open this file in a browser to view the page which as Mrs Brown says is nice.

Here’s an example HTML5 page that does absolutely nothing useful:

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
     <title>HTML5 for absolute noobs (I appear in browser bar)</title>
</head>
<body>
     <h1>HTML5 for absolute noobs header</h1>
     <p>
     HTML5 for absolute noobs paragraph
     </p>
</body>
</html>

What does all this junk mean? Lets take a look at it in sections.
Line 1 – This tells the browser that this is an HTML 5 document
Line 2 – The html tag tells the browser that the stuff in this section contains HTML
Line 3 – The head tag contains things like the page title, which scripts and style sheets to include
Line 4 – The meta tag describes metadata such as the character set that the document uses
Line 5 – The title tag is the title of the page, this is usually displayed in the browser title bar
Line 6 – Closes the head tag
Line 7 – The body tag contains the main body of the document, basically all of the text, images and so on
Line 8 – The h1 tag designates whatever is inside it as a level 1 header and will be styled as such, usually large and bold unless redefined with a style
Line 9 – The p tag begins a new paragraph on the page
Line 10 – Some content to display in the paragraph
Line 11 – Ends the paragraph
Line 12 – Ends the main body
Line 13 – Ends the html document

How do I add some style to my web page?

Well to begin with we will add some style to the previous example to make it look a little colourful. We will use what’s called inline styling. This is when you are too bone idle to create a style sheet and link it into your document. Lets take a look at an impossibly useless example:

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
     <title>HTML5 for absolute noobs (I appear in browser bar)</title>
</head>
<body>
     <h1 style="color:green;">HTML5 for absolute noobs header</h1>
     <p style="color:blue;">
     HTML5 for absolute noobs paragraph
     </p>
</body>
</html>

if you are as observant as I then you may notice that two lines in the code have changed:
Line 8 – We have added an attribute called style then stuck some stuff into quotes. We basically tell the browser to change the colour of the text in the h1 tag to green
Line 9 – We have also added the style attribute here, but changed the text colour to blue instead

How do I style stuff using CSS instead of inline styles?

Most web developers prefer to use a style sheet to style elements of the web page, which I am guessing when my web page becomes bulky and very scarey will make it much easier for me to change the look of my web page without having to go through and change every single style that I set. A style sheet is basically a text file with the extension .css that you include in your html document. You include a style sheet like this:

<head>
     <meta charset="utf-8">
     <title>HTML5 for absolute noobs (I appear in browser bar)</title>
     <link rel="stylesheet" type="text/css" href="styles.css">
</head>

Inside our header tag we have added a link to a style sheet called styles.css. When the page is loaded this style sheet will be loaded and all styles within it will be applied to elements of the page. If the style sheet does not contain styles for elements that are on the page then they will get the good old default ugly style. Lets take a look at an example style sheet:

h1 {
    color: green;
}
p {
    color: blue;
}

In the above style sheet we list the h1 tag and then place a bunch of attributes that we want to redefine along with their values separated by the colon character inside braces. The only problem with this is that it will change the colour of all h1 and p tag content that’s on the page, which is great if that’s what you want, but not so good if it isn’t.

To get around this you can name your elements and then simply define a style for the named element. Lets look at an example:

     <h1 id="header1">HTML5 for absolute noobs header</h1>
     <h1>I refuse to have style!</h1>
#header1 {
    color: blue;
}

We have named the first h1 tag header1 using the id attribute. We can refer to this named element in the css file by placing a hash character in front of the name.

There’s a ton of other stuff that you can do with CSS from what I understand, but I’m not clever enough to go into that just yet, maybe in a later article.

How do I get some JavaScript code into my web page?

There are two ways, you can use inline JavaScript, this is code that you write directly into the html document, which can get rather messy. Theres also the much cleaner and user friendly way of including a JavaScript file into the document rather like we did with the style sheet. Lets take a look at inline JavaScript first. Run the following html:

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
     <title>HTML5 for absolute noobs (I appear in browser bar)</title>
</head>
<body>
     <h1 id="header1">HTML5 for absolute noobs header</h1>
     <p>
     HTML5 for absolute noobs paragraph
     </p>
     <script>
          document.getElementById("header1").style.color = "blue";
     </script>
</body>
</html>

At lines 12-14 we have inserted a script tag containing a single line of script. The script itself looks for an element called header1 then changes the color attribute of its style to blue.

Now lets take a look at an example where we use common sense and decide to put our code into a separate script file. Create the following two files (test.html and code.js) then open the html file in a browser:

<!DOCTYPE html>
<html>
<head>
     <meta charset="utf-8">
     <title>HTML5 for absolute noobs (I appear in browser bar)</title>
</head>
<body>
     <h1 id="header1">HTML5 for absolute noobs header</h1>
     <p>
     HTML5 for absolute noobs paragraph
     </p>
     <script type="text/javascript" src="code.js"></script>
</body>
</html>
document.getElementById("header1").style.color = "blue";
document.write("Hello World");

At line 12 of the html file we have still got a script tag, but instead of placing our script inside the script tag, we have moved it out into its own file and included the script file into the html document.

Well, I’ve had enough for one evening, my feet ache. I stand at my desk instead of sitting because I’m into self punishment. I hope to cover something a little more interesting next time, maybe take a look at the DOM.

Oh, do I care about typos and bad spelling / grammar? No, if I did then I would have become an English teacher and not a programmer!

Goji Editor the game IDE update

June 25, 2014

Just a quick heads up on the direction of the Goji Editor. With the news of a free Marmalade SDK license becoming available, I am going to rework Goji to integrate much more tightly with the Marmalade SDK. This will include features such as:

  • Integration into the Marmalade build and deployment system, enabling deployment to all Marmalade supported platforms
  • Test / debug using the more capable Marmalade simulator
  • Development using C++ as well as Lua and XOML
  • Deployment to device from the editor
  • In depth publishing options which enable you to set up all of the different Marmalade deployment options more easily
  • Marmalade code snippets / help / tutorials to aid development
  • Code samples / tutorials section
  • EDK builder to assist in the creation of Marmalade extensions

Other game development systems such as Corona and Gideros will still be supported for now. If you strongly want to keep support for Corona / Gideros then let me know

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org