Earn Bitcoin just by playing games


10 June 2016

Posted by Ollie Reardon

Bitcoin Logo

Ever wanted to earn some Bitcoin but not too sure where to start? Here is a nice, easy stepping stone into the digital currency world. Bitjoy offer a service for game developers to integrate their platform into mobile games.

As a gamer, all you need to do is to sign up, download a Bitjoy-enabled game and login before you start playing.

Currently there is Bitcoin froggy, a Crossy Road clone, for both the App Store or Google Play as well as additional games for Android phones and tablets including Bitcoin Pixel Runner which is a Canabalt/Endless runner game and Bitcoin 80s Shooter which is like a classic arcade shoot-em up!

Use my referral link to get signed up to Bitjoy and for you to start earning Bitcoin!

Simply sign up, confirm your email address, download a game, sign in and PLAY!


HTML5 Game Development Gulp Workflow


24 August 2015

Posted by Ollie Reardon

Last week, my friend Jordan and I have started work on a game for the js13kgames competition. For those who don’t know what the rules of the competition involve, you have an entire month to create a game in a 13kb zip archive.

Luckily, as it’s targeting HTML5 game developers to use JavaScript in order to create their games, this means that all the technology that goes into creating other web-based projects, such as your everyday websites, can be used into an HTML5 game development workflow.

Introducing… Gulp!

Gulp is a task runner that is designed to automate common tasks within a web development process, whether it’s for a traditional website project or can even be used for HTML5 game development. Written in JavaScript, Gulp allows developers to create tasks for automating processes such as compressing images, compiling stylesheet preprocessors such as LESS or SASS and so much more.

This blog post will cover how to install Gulp and use it within your HTML5 Game Development workflow.

##Requirements * OSX or Linux * Nodejs + NPM

Installing NodeJS + NPM

### Within OSX brew install nodejs npm ### Within Ubuntu, Debian, Elementary OS, etc sudo apt-get install nodejs npm ### Within Red Hat, Fedora, CentOS, etc sudo yum install nodejs npm

##Installing Gulp Please refer to Gulp’s getting started guide here.

##Gulp Tasks There are literally thousands upon thousands of gulp related tasks to install. However, I have hand selected a few gulp tasks that will be used frequently in a HTML5 game development with a brief description of what action each gulp task performs:

  • gulp-zip: Compresses files into a zip folder.
  • gulp-concat: Combines (JS) files together, smaller footprint size and fewer HTTP requests = quicker loading of the game.
  • gulp-uglify: Minifies JavaScript code to be as small as possible in file size.
  • gulp-watch: Keeps a check for file changes

You can install the list of gulp tasks above by using the following command below: npm install gulp gulp-zip gulp-watch gulp-jshint gulp-concat gulp-uglify gulp-image-optimization gulp-minify-html gulp-rename run-sequence

##Gulpfile In order to use these tasks and specify the different actions and files to target we need to create gulpfile.js in the base directory for the game. Once you have installed the gulp tasks above, then add the following lines of code to your freshly created gulpfile and save:

//All the Gulp tasks and dependencies
var gulp = require('gulp'),
zip = require('gulp-zip'),
watch = require('gulp-watch'),
jshint = require('gulp-jshint'),
gp_concat = require('gulp-concat'),
gp_uglify = require('gulp-uglify'),
imageop = require('gulp-image-optimization'),
minifyHTML = require('gulp-minify-html'),
rename = require('gulp-rename'),
runSequence = require('run-sequence');

//All your paths for JS, HTML and Image files
var zip_files = ['game.js', 'index.html'], //Files to be added to the zip folder use "<directory goes here>/*" for all files inside the directory
    js_files = ['js/main.js', 'scenes/*'], //All your JS files to be combined and minified
    img_files = ['assets/*.png','assets/*.jpg','src/**/*.gif','assets/*.jpeg'];

//Zip up the JS/HTML required for the game
gulp.task('zip', function () {
    return gulp.src(zip_files, {base: "."})
        .pipe(zip('release.zip'))
        .pipe(gulp.dest('build'));
});


//Run this task once the game is ready to ship!
gulp.task('publish', function() {
    runSequence('build-js', 'build-html', 'zip');
});

//Compress Images
gulp.task('images', function(cb) {
    gulp.src(img_files).pipe(imageop({
        optimizationLevel: 5,
        progressive: true,
        interlaced: true
    })).pipe(gulp.dest('assets')).on('end', cb).on('error', cb);
});

//Minify the HTML
gulp.task('build-html', function() { 
  return gulp.src('./index.unmin.html')
    .pipe(minifyHTML())
    .pipe(rename('index.html'))
    .pipe(gulp.dest('./'));
});

//Build the JS and minify
gulp.task('build-js', function() {
    return gulp.src(js_files)
        .pipe(jshint())
        .pipe(jshint.reporter('default')) //Report on errors found by jshint
        .pipe(gp_uglify()) //Minify JS
        .pipe(gp_concat('game.js')) //Merge all the JS files into one game.js file 
        .pipe(gulp.dest('./'));
});

//Build the JS without minifying
gulp.task('build-dev', function() {
    return gulp.src(js_files)
        .pipe(jshint())
        .pipe(jshint.reporter('default'))
        .pipe(gp_concat('game.js'))
        .pipe(gulp.dest('./'));
});

//Watch for any JS or HTML file changes
gulp.task('watch', function () {
    watch(js_files, function () {
        runSequence('build-dev');
    });

    watch('./index.unmin.html', function () {
        runSequence('build-html');
    });
});

##Commands You will now be able to run the following commands in order to achieve different tasks:

gulp zip - Adds your minified JS file and index.html to a zip file, great for quick distribution of your game

gulp publish - The command you run when you are ready to release your game. It will run the build commands for your JS and HTML, one last time before zipping them up.

gulp images - Compresses images for a lower file size

gulp build-html - minifies your HTML file(s)

gulp build-js - Checks your JS for errors, concatenates all your JS files down to one file before minifying the JavaScript code.

gulp build-dev - Checks your JS for errors and concatenates all your JavaScript files down to one file but doesn’t minify (Easier for debugging!!)

gulp watch - Keeps a close eye on your specific JS files / folders and will run uglify whenever a change has been made, just like the gulp build command.

*Update: * I have made a GitHub repository for other HTML5 Game Developers to suggest tasks to be added to the ‘gulpfile.js’ by either opening an ‘Issue’ with your suggestion, or by creating a pull request.


Top Laravel 5 Features


8 February 2015

Posted by Ollie Reardon

Laravel Logo

Over the weekend, I started a brand new project using Laravel, the MVC-framework for PHP based projects. For those who haven’t checked it out already, last week on the 4th of February, they have finally released the fifth iteration of Laravel. Just like with the release of Laravel 4, it brought some big new features and some architecture changes to your Laravel based project, therefore a few days of maintenance may be required to get your project using the Laravel 5 codebase. Read on for a rundown of a few new changes and features which I have found to be extremely useful.

New project structure

The first thing you’ll probably notice with a fresh install of Laravel 5 is that the project structure is slightly different. This is because there is now a /resource/ folder which is new to Laravel 5 which keeps all of your assets such as .less source files, language strings, and views separate to your /app/ folder. Previously, I used to keep views separate in Laravel 4 using workbench packages but the workbench functionality is now been deprecated in Laravel 5.

Laravel Elixir

Probably my favourite service to arrive in Laravel 5 is the ‘Laravel Elixir’ which is used to compile all your .less, .sass or CoffeeScripts. As well as combining the output stylesheets. It has other useful features such as allowing you to trigger unit tests and much more!

Starter Boilerplate

When I first ran the Laravel Installer, I started to look at the new project directory structure. First I discovered the traditional ‘Welcome View’ from previous Laravel releases, but also Bootstrap-templated views for showing off Laravel’s user authentication functionality. Personally, I find this not just a great way to show new Laravel users how the framework works, but also a great starting point for even experienced Laravel users.

File Generation

The Artisan command has a set of new functionality which is useful for quickly creating new classes and controllers. Not only does it feature new file generation commands, you can see a full list of the commands on offer using the following artisan command below:

  php artisan list

Application Namespace

A small but useful change in Laravel 5 is that you now have the ability to give your Application a namespace! Simply run the following artisan command from your terminal while in your project directory:

  php artisan app:name <APPLICATION NAME GOES HERE>

So there is my top 5 features from Laravel 5. Agree? Disagree? Make sure you send me a message on Twitter to tell me what you think of the Laravel 5 release.


Nintendo's First HTML5 Game?


2 December 2014

Posted by Ollie Reardon

Mario vs Donkey Kong seen at 4:31

As a Wii U owner myself, I was excited to see this video shown on the Nintendo Wii U eShop which features upcoming titles for the Wii U console over the next year or so. One of the games that stood out to me was the trailer for the “Mario vs Donkey Kong” game which was originally shown to the public at this year’s Game Developers Conference.

The game was originally shown off as a prototype of how the Nintendo Web Frameworks can be used in order to make Web-based games for the Nintendo console, but it now seems to be a full fledged game! Therefore, making this Nintendo’s first HTML5 based game!

Clear proof that HTML5 games are becoming a choice for AAA game developers and not just for independent game developers such as hobbyists, like myself.


Understanding Ubuntu: Terminal Cheatsheet


22 November 2014

Posted by Ollie Reardon

General Linux commands

cd – Change directory

cd .. – Go Back a directory

cd ../../ – Go back two directories

cp – Copy a file

mv – Move a file

rm – Remove a file

mkdir – Make a directory

rmdir – Remove a directory

man – A built in manual for a specific command

ls – List files and folders

sudo – Executes command with root permissions

sudo su – Login to root user

nano – Easy to use command-line text editor

cat – See the contents of a file

clear – Clear the current terminal display

Ubuntu Specific Commands

sudo apt-get update – Ensures that the repositories have the latest packages available.

sudo apt-get upgrade – Upgrades installed packages

sudo apt-get install – Installs an application and all it’s dependencies packages.

sudo apt-get remove – Removes an application

sudo add-apt-repository – Adds a new Personal Package Archive

sudo apt-get autoremove – Removes any unused dependencies

sudo apt-get do-release-upgrade – Upgrades Ubuntu to a new version

Useful commands for server packages

edit php.ini – sudo nano /etc/php5/apache2/php.ini

edit virtual hosts – sudo nano /etc/apache2/sites_available/new_config

restart apache2 server – sudo service apache2 restart