Billboard experiments

While researching how to implement a dialogue system (vomit emoji) in Unity3D I randomly ended up finding this awesome blog post about Billboard orientation for 2D spites using 3d cameras in perspective mode. This shows some of the quick experiments I whipped up after implementing his ideas. Pretty elegant solution for an annoying problem.


// BillboardSprite.cs
using UnityEngine;
using System.Collections;

public class BillboardSprite: MonoBehaviour {

	public Transform MyCameraTransform;
	private Transform MyTransform;
	public bool alignNotLook = true;

	// Use this for initialization
	void Start () {
		MyTransform = this.transform;
		MyCameraTransform = Camera.main.transform;
	// Update is called once per frame
	void LateUpdate () {
		if (alignNotLook)
			MyTransform.forward = MyCameraTransform.forward;
			MyTransform.LookAt (MyCameraTransform, Vector3.up);












Ludum Dare 38 Submission!


What have I been up to you ask???

Well, besides working on my own projects I took part in the Ludum Dare Game Jam. Basically we locked ourselves in a room and made game in 72 hours. This year I joined up with @kalaena, check out her blog HERE! The theme to this years Jam was “A Small World”. Our concept was simple, you play a Parasite who is resting comfortably inside a slice of pork sushi (yes that kind of parasite & yes I said pork), at a roadside gas station. 

Your new ‘HOST’ Gary decides your sushi home is a delicious roadside snack. From there on out you’re mission was to race the clock and do as much damage as possible then escape… out the… you know*.  Time as all game-jams is a cruel mistress so, we were only able to get some basic game functionality working along with some pretty cool levels and some great art that @kalaena made that brought the whole thing together.

You can also checkout the GITHUB link for the source files of our game. We had a ton of fun making it and everybody learned great deal. Thanks for visiting!

[here’s some pics from the game, development process and concepts.]


Learning C# in Unity3d and a bit of java (wink-wink)

Before I dive into the real meat of the blog this week. A quick side shuffle if you don’t mind. I’ve spent  the past few months learning Javascript, mostly because I wanted to learn node.js and get a clearer understanding of the MEAN Stack.687474703a2f2f7777772e646d7574682e6f72672f66696c65732f6e6f64656a732d6461726b2e706e67

MEAN is short for: MongoDB, Express.js, AngularJS, and Node.js. A set of instructions, frameworks, database’, and libraries for running server side javascript apps. If you’ve ever visited a single page website before.. something that behaves more like a app than a dusty old html site, then you’ve likely been browsing a site with Node.js or similar framework, under the hood. According to google i/o this year there’s going to be an additional billion worldwide smartphone users going online over the next 15 years. And they’ve realized that the limits of pushing things even as small as a single Android app is going to crush their business model (when you look at things at their scale). So what’s the answer? Modular web apps. For instance: you’re booking a flight, you want to do it while you’re with a group of friends because, you’re all going together. You pull open your phone, download some travel app, enter personal info, add credit card data, create searches pull database requests again and again. Well the Modular method of the future won’t be so data heavy. Instead of building apps that have to move large chunks of data back and forth, they and most of the development world want to take the APP off the phones and instead deliver Smart Server Packages ie; only the modules and components you need at the moment. You don’t need to rent a car, fine it won’t load ANY car data. All you need is flight records of such and such place on such and such day/time. The Server pulls and compiles at server run-time only the packages for your request and delivers that data on your phone as if it were being done locally.

Woah okay, big distraction. But, its just a cool concept and I can’t wait to see the kinds of shit we’re gonna be able to do when APPs and databases are coded by intelligent machines that have been scripted by Node.js and DOM hackers.  Strange things are afoot at the Circle K.

UNITY3d and C#: This week it’s all about data serialization and instantiated objects. The book I’m currently plowing through is titled:

download (1)

Unity in Action! It’s a pretty handy book as far as unity scripting books go. This one isn’t for the starter looking to learn from scratch. It requires you to have a bit of pre-existing experience writing C# and managing gameObjects. The scripting dialog in the book itself asks the reader to inject alot of reference code between inter connected objects and scripts with out too much hand holding often simply referring only to the methods that have to be added at the time they are needed. Not much of the example code can simply be copy and pasted. Thank fully this book is written with Unity 5x in mind so the GameObject<ObjectZ> references and such are up to date.

New to me is: Serialization or [SerializeField]. Its use calls for the compiler to convert an object or bit of code into a block of raw data. In this form it’s locked it from the editor so can then be used in a myriad of ways. Then when its done it can either be referenced to null (destroyed) or converted back to editable c# code. This isn’t anything new but I did learn that the editor inside unity serializes the data in side itself when it’s displayed to you. Which I suspect is the culprit behind the editor issue of altering script values in the inspector locks the value to whatever has been serialized by the inspector, and if you alter the scripts declared float for instance, the inspector permanently ignores the value in favor of the GUI one. Just a thought.

Where would you use this? Imagine you have a gun shooting bullets, each bullet you shoot has its own properties like ray projection, physical properties like speed and scale. We want the object to be instantiated and go about its business un-editable by the game controller SO we can create another one. Or 500 of them and and not have to scan each one each frame and bring the system to a snails pace.

All interesting shit right? more next week.

Starting a project and memory lane.


3D pre-rendered insanity!

As with all projects it begins with research, you go and play and study and teardown other games to get your head wrapped around what makes the good tick and the bad thunk. Since working at both a Flash Game Studio and a AAA Console publisher I feel absolutely honored that I got to see the process undertaken by people far more capable than I. Then to see the time and effort and frustration and excitement in their eye’s knowing they could ending up with a game that either gets lifted up to praise or tossed into a pile.

It’s a very humanizing thing to see.

But that’s just a little introspection. What we’re talking about is much less weighty. You see the quark here is, that I LOVE a game from the 90’s that wasn’t the most widely praised or sought out mega title. The only console system my brothers and I ever owned was an atari 2600 that only had one working controller and an NES system with probably 3 games. Both sat in the closet and collected dust. What I did have was an Intel i486dx2-66 beige-box running (you guessed it!) a whooping 66mhz!

Just look at this hotness.
Just look at this hotness.

At the time I had ZERO influence as to what made a great game, great. It was just me, this PC with a heavily modified autoexec.bat boot sequence and a video card that had less RAM than a 60’s era satellite

On the rare occasional we took a trip to Egghead Software in Covina, CA where I could blow my allowance money on an outdated game from the dusty clearance bin. That’s where I found the Journeyman Project TURBO! “The World’s First Photorealistic Adventure Game!”

Just look at those Computer Generated Graphics!

Like the First CD you bought yourself at Tower Records or your first time driving a car. Such first impressions stay with you. And for some reason or another this amazing little mystery click adventure game has had a major influence on me. It could be the theme, the early 90’s synth-rock soundtrack, the story… even the the tiny little GOOGLE GLASS headset you wear 99% of the time. Who knows. But maybe the game trailer can help explain a little bit better than my own personal ramblings HERE!

What I do know is that this game is the metaphorical masonic cornerstone of my own personal game education and as you delve with me into the future it will become plain to see its influence.


GlobalGameJam 2016

With only three days (BABYSTEPS) I was able to do a lot from scratch. This prototype is essentially a TowerDefence economy game in a cave but now, you set fake bounties to lure in hapless adventurers and slaughter them with traps placed in a Construction mode then set off in game by tapping them at precise times to kill heroes.

The story behind it was a D&D game some friends and I played many years ago; at the end of one game a Kobold archer very near death, escaped our clutches and was inevitably going to inform his army of our location(or so we convinced ourselves). After the game our DM informed us that he was just a helpless conscript who ran for his life with 1hp(maybe 1/2hp) to spare. We felt terrible about our plans to hunt down and slaughter that poor kid.  Later I gave that kid a name ‘Gary the Kobold’. And this game is his story of revenge: Having narrowly survived the clutches of a band of blood lusting adventurers Gary goes full Rolling Thunder, he replaces is missing hand with a hook, covers his missing eye with a black leather eye patch. Buys a book on Advanced trap design and then posts a fake “Adventurers Wanted” poster on a wall outside the local tavern.

screenshot1You can plainly see I wasn’t able to get all of the assets made in time but, I got the bounty system working and I was able to program:


  • Players have Gold inventory, bounty can be raised or lowered and get removed from total Gold.
  • Remaining gold Value carries over into next scene.
  • Construction mode where you spend remaining Gold to place traps.
  • Hero AI to move around the room semi-randomly until they find the Treasure Chest.
  • Hero’s collide with the Treasure and ‘steal’ from you until its empty aka Players Remaining GOLD, then escape.
  • Hero escaping pass near to traps, the Player TAPS activating a trap and the Hero dies.

screenshot3 screenshot2