Blink!

Posted: 22nd May 2013 by Peter in Uncategorized
Comments Off

…or rather, “don’t blink!”.

Hands up, I’m guilty of totally neglecting this blog, sorry RobotBash. Before you shoot, I can explain…but first;

Check out the new Games gallery with lots of recent work.

Game Dev

Anyhow, I finally landed a job in the games industry with a company called Zoodazzle. We make a game authoring software called GameCarver, and I have been eating, breathing and dreaming that software for the past 4 months. This suits my personality, and it’s easy to do when I believe in the product.

It’s been an exciting 4 months, my tasks have included corp branding, rejigging the existing website (CSS and content), video, print design for business cards, pop-up banners, t-shirts, posters, and flyers. Concept artwork and logo design, community management, software UI design, and most exciting of all, graphics for several game demos (This is where the rubber certainly meets the road!)

Having been a contractor most of my career, it’s been quite some time since I’ve truly worked in a team environment. In that regard I couldn’t have hoped for better, Zoodazzler’s are da BOMB!

cargamecarverA Moving Story…

No, I’m not going to tell you a tear jerker story that’ll have you weeping. We’re (my family) moving to Dublin within the next month or so. I’d like to say the weekly 420 mile round commute to Kerry has been fun, but I’d be lying. At least I had Cormac Battle’s 2FM BattleAxe tunes to keep me company part of the way every Sunday… I won’t disclose the exact location of our new homestead, but let’s just say it ticks all the boxes for our little family. Looking forward to finally settling in.

Back To The Games Scene

Game_Craft_2

The indie games scene is really vibrant in Dublin, and I’ve enjoyed a couple of game jams and some industry events since commencing work with Zoodazzle. I’ve been involved in creative concepts and development all of my career, but I think the indie games industry is the most creative I’ve encountered. The variety of skills from coding to audio are covered, and seeing how people with different communication styles and disciplines can work together and respect each others ideas and work methodologies is very encouraging. This is a young industry, and every game dev potentially can contribute something new regarding work methods and concepts.

Connect

I’d love to connect with game developers (aspiring or veterans) and artists/illustrators; people who might actually like to meet in person from time-to-time, and have a passion for what they do.

Connect with me at the following and PM me to say hi!

http://robotbash.deviantart.com/
https://twitter.com/RobotBash

 

Global Game Jam – 2013

Posted: 29th January 2013 by Peter in Irish Games Industry News
Tags:

global-game-jam-2013Finally I have time to blog about my experience at my very first Game Jam. It wasn’t just any old game jam, it was THE game jam event of the year – The Global Game Jam!

I joined my fellow creative and games enthusiasts at Griffith College, South Circular Road, Dublin in ‘The Bunker’ for much of the 48 hour event. This was one of two registered sites in Ireland, the second was in Tipperary.  Around 50 people attended the event at Griffith College (of around 11k participants globally), and I have to tip my hat to lecturer Eoin Carroll for organizing and managing the weekend. This can only be a good thing for Griffith College’s game and computer sciences profile.

This being my first game jam, I was going in alone and not too sure what to expect. The vast majority of developers there were students (mostly from my good old college in Ballyfermot, the rest from Griffith College, some from Pulse and so on). I think there were a handful of non-students in the mix too.  Luckily I’d made contact with Mariano from Bright Head Games Studio a few months before the jam, via GameDevelopers.ie. I met Mariano for the first time on the day, and he generously invited me to join his team. Great guy, as are the other guys, Ed and Zafer from Bright Head and the rest of the team.

The global organizers of the event provided simple title for the theme, ‘Heartbeat’. Our group came up with various ideas for the game, choose one and got to work. I worked mainly on 2D artwork and learned a lot from the other more experienced guys on the team. We used GameMaker to build the game, which is great for fast development for multi-platforms. Other groups used Unity3D and UDK, maybe other software too. 

Unfortunately the GlobalGameJam.org servers couldn’t handle the amount of game uploads hitting it when the event reached the final minute of the 48th hour! However, we proceeded with the presentations and all teams showed their work on a projector screen, and explained the process behind their thinking and work. All feedback was constructive and positive.

gamejam2013I’d encourage anyone who’s interested in game development (student or not) to attend other game  jam events that go on throughout the year. This is a highly creative,  fun, and co-operative community that freely share knowledge and their passion for game development with each other. The participants included a cross section of programmers, artists, game designers, and at least one VERY busy audio guy (I’ll have to get his name and link here). Looking forward to future game jams!

Inspired to pick up the stylus pen after months of programming studies, I made this sci-fi digital painting for fun. Click the image to enlarge.

Monster Truck Digital Painting

It’s been a while, but boy have I been busy! As the blog post title suggests, I am now a certified Java programmer, with a 90% passing grade. I won’t lie, it wasn’t easy, but it’s done! While I may not be working with Java in the immediate future, it looks like PHP is on the cards (with many other disciplines), and I’m looking forward to applying all I have learned about programming to PHP projects.

While preparing for the Java exam, I also did a lot of job interviews, which is almost a full-time job in itself! Combined with the exam pressure, it was pretty exhausting, but ultimately worth all the effort. I had a few ‘hot leads’ and am delighted to say I am soon to commence working with an exciting technology start-up based in Dublin. More on that in the near future…

Anyway, just to prove I haven’t forgotten how to use a stylus pen, my next post has a digital painting I did yesterday for the ‘craic’. Hope you like! 

 

This is a little snippet of code I wrote for destroying an object in a game I’m working on with pals. See the comments in the code for an explanation. I used currentTimeMillis(); just to check that the code was working as it should, and left it in for demonstration purpose. The output is:

Baddie hits wall, start timer: 
Baddie is dead!
Time Taken: 3000
BUILD SUCCESSFUL (total time: 3 seconds)

Of course, the above output will not display in the game, the action will be represented with an animated ‘Sprite’ of some sort meeting a grizzly death.

/*
* This program will be attached to a game character, the 'Baddie'.
* When Baddie collides with a wall, he hangs around for 3 seconds (roughly)
* then he dies.
* This program is the timer delay logic used to destroy the character.
*/

import java.util.Timer;
import java.util.TimerTask;

public class TimerDelayTask {
//properties
static Timer timer;
static TimerTask TimerTask;
static long startTime = 0L;
static long elapsedTime = 0L;
static int seconds = 0;

//constructor
public TimerDelayTask(int seconds) {
timer = new Timer();
timer.schedule(new Reminder(), seconds * 1000);
startTime = System.currentTimeMillis();
}
//inner class

class Reminder extends TimerTask {

@Override
public void run() {
System.out.println("Baddie is dead!");
timer.cancel();
System.out.print("Time Taken: ");
System.out.println(elapsedTime = System.currentTimeMillis() - startTime);
}
}

public static void main(String[] args) {
new TimerDelayTask(3);
System.out.println("Baddie hits wall, start timer: ");
}
}

TreeSet For Sorting Order

Posted: 21st November 2012 by Peter in Java
Tags: , , ,

We’re covering ‘Collections’, ‘Collection’ and erm…’collection’ in Java Programmer 6 at the moment. I’m familiarizing myself with the various Sets, Lists and Maps.

A TreeSet orders its elements using ‘natural ordering’, i.e. alphabetical order for Strings, numerical order for ints. This is a very useful feature of the TreeSet that I wanted to experiment with. I wrote the following program that uses an overloaded method ‘getSortedTreeSet’ that will take a String array, or an int array, and return them as an ordered String for output.

/*
* Take in a String array, sort the contents into alphabetical order
* and return the ordered contents as a String. Then do the same for an
* int array, overloading the method.
*/

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class SetsListsMaps {

public static void main(String[] args) {

//String array and related String method output
String[] strAr = {"b","c","f","a","d","e","i","h","j","g"};
System.out.println(getSortedTreeSet(strAr));

//int array and related String method output
int[] intAr = {9, 5, 1, 8, 4, 6, 2, 3, 7, 0};
System.out.println(getSortedTreeSet(intAr));
}
//method

public static String getSortedTreeSet(String[] ar) {
String str = "";
String[] myStrAr = ar;

//create TreeSet...
Set set = new TreeSet();
for (String strTemp : myStrAr) {
set.add(strTemp);
}

//TreeSet to String
//Iterator hasNext() and next()
Iterator iter = set.iterator();
while (iter.hasNext()) {
str += (String) iter.next() + " ";
}
return str;
}

//The following is the same as above, but with Integers
public static String getSortedTreeSet(int[] ar) {
String result = "";
int[] myInt = ar;

//create TreeSet...
Set set = new TreeSet();
for (Integer intTemp : myInt) {
set.add(intTemp);
}

//TreeSet to String
//Iterator hasNext() and next()
Iterator iter = set.iterator();
while (iter.hasNext()) {
result += (Integer) iter.next() + " ";
}
return result;
}
}

“My Card”

Posted: 18th November 2012 by Peter in Misc. Updates

Peter McCormack RobotBash.comCheck out my new business card (mostly for distribution amongst my peers :) ). I ordered these online and received them in the post about a week later. Including postage and packing, 250 of these ‘bad boys’ cost only €15. The card is full colour on one side, and blank on the other. This suits me because I can write the venue location or event where I met the new contact. This will give them a frame of reference and hopefully help them recall our meeting when they review their card collection.

Of the seven lines of text, five of them are ways for people to connect with me – sure why beat around the bush? There’s plenty more business card services online if you’re considering personal branding options. It’s all just a bit of fun anyway. I’m half thinking of getting a t-shirt with my favourite robot on it…hmmm…

 

OCJP Collections Frameworks…

Currently studying Collections Frameworks in OCJP 6 course. I’ll be honest, some of it is tough going but the mist is starting to clear. I can see the power and usefulness of Sets, Lists and Maps, so I’m pretty excited about getting to grips with this material.

Regarding Job Prospects…

I’ve connected with some excellent IT recruitment agents from several agencies. I’ve received positive feedback in relation to my experience, qualifications  and this very website (go RobotBash.com!). I hope to meet a couple of agents face-to-face in December, with a view to arranging several interviews in December and January. I also hope to interview for some intern positions next month, fingers crossed. Things are looking good for 2013.

Extra Studies…

I’ve decided to take on a little extra study that I can do at my own pace at home. Two areas I’m going to explore further are Database and HTML 5.

mysql-logoWhy Database?

I picked Database because I’ve tippy-toed around mySQL for years but have never been brave enough to just dive in. Career-wise it’s a good move, SQL is not going away anytime soon. There’s lots of free educational materials for Database online, and Stanford University have an entire course (complete with videos and tests!) for free. I’m looking for some study buddies so check out https://www.coursera.org/course/db and give me a shout.

HTML5_LogoWhy HTML 5?

Well, I’m not starting with HTML 5 from scratch, but I want to go deeper into this technology. I’m going to try kill two birds with one stone, and study HTML 5 for both web, and Android apps development too. HTML 5 is hot right now, and it’s fast replacing ActionScript for web and game development. It’s got some amazing features like masking, support for video and lots of other cool stuff.

GameCraft Update:

Ah, bad news here I’m afraid. Unfortunately there were so many registered for the event that I could not secure a ticket. Not to worry, whispers in the wind say there will be another GameCraft in the new year. Gobal-Game-Jam-logoTo help recover from the disappointment I sponsored a web package including .com domain, web hosting and WordPress template site as a prize for the event.

I also set-up a local CoderJam group with some of my programmer classmates. We plan to make our ‘big splash’ in the community January 25th 2013 at host site Griffith College for the Global GameJam. Platform of choice? Unity with JavaScript… After that, we’re going to build some software projects together, so plenty to look forward to.

Game Maker Makes Making Games Easy

Posted: 2nd November 2012 by Peter in Irish Games Industry News
Tags:
gamemaker-logo

Click This Image To Download The Game.

In preparation for the GameCraft event, I thought it sensible to familiarize myself with Game Maker(Lite). The software is often used to quickly create game demos, as well as ‘polished’ finished games.

While every bone in my body wants to build and code a game from scratch, I decided it best to use the beginners tutorials available online at http://sandbox.yoyogames.com/make/tutorials. These tutorials will give me a sound understanding of the platform, and a couple of games to show in my portfolio, so how bad? Once I have a grip on the software, I’ll create my own games from scratch, using the advanced feature to code behaviours and events.

Simple Game To Start With

The game attached to this post is an exe file, click on either of the images in the post to download it. The challenge is simple, click on the clown heads and watch your score increase (at the top left of the window). The clowns will randomly change direction, bounce of the wall, and speed up each time you click on them. All the action is set on a simple stage, called a ‘room’ in Game Maker, and there are several sound effects to add a little spice to proceedings.

The images and sound files, with complete step-by-step instructions are available at the page linked to above. Just download the tutorial to your PC and get cracking. 

Click The Image To Download The Game:
simple-game-maker-game

Click This Image To Download The Game.

Game Maker The Verdict…

I’m impressed with the ease of use, and speed of development.  The stand-alone .exe file is just under 4MB (which I think is a little heavy compared to Flash stand-alone files I created in the past). However, I haven’t looked into compression options for publishing yet, so perhaps that size could be reduced. The free version carries a watermark which I can live with for now, though I’ll probably purchase the standard edition eventually which is about $50. Thanks to the author of the tutorial, Mark Overmars for sharing his knowledge!

We’re studying try-catch-finally exception handling at the moment, this is my solution from the Exercise 5-4, page 377 of SCJP 6 Study Guide (Sierra & Bates). I also used reference from this website section 1.9. I wrote the code in Notepad++ and compiled and ran it in Windows command-line.

Exception Gets Handled!

A String array of food is being tested against the try-catch. When the food ‘beans’ (as in ‘tinned beans’, which I don’t like) is tested the exception is thrown and all hell breaks loose (not really, because the exception is handled! Hurrah!)

It’s heavily commented for my own reference and yours.

//created the custom exception in an inner class,
//must extends Exception which is part of java.lang
class BadFoodException extends Exception{
//constructor takes a String argument.
//super(str) takes custom text from String when we throw new
//BadFoodException, which is printed to screen from
//ex.getMessage() in the catch block
public BadFoodException(String str){
super(str);
System.out.println("BadFoodException is used when the word beans is encountered");
}
}

//primary class
public class MyException{

//properties
public static String [] array;

//main method
public static void main(String [] arg){

//create array of foods
array = new String [] {"cabbage","chips","apples","beans"};

//try-catch array elements against the custom exception
//with checkFood() doing the exception checking...
try{
for(int i = 0; i < array.length; i++){
String myFood = array[i];
checkFood(myFood);
}
} catch (BadFoodException ex) { //exception handler
ex.printStackTrace();
System.out.println(ex.getMessage());
}
}

//method checkFood()
public static void checkFood(String food) throws BadFoodException{
if(food.equals("beans")){
throw(new BadFoodException("I hate beans!"));
}
System.out.println("yummy!"); // skip if exception is triggered
}
//end method
}