Steve Phillips

Overseeing My First Product Launch

In February, I was promoted to Product Development Team Manager at Sable Systems, International. In that time, I have been project manager for a few projects running in parallel, and I got to see my first product release. It was an exciting moment for me as a manager, and I'm very proud of my team for what we accomplished.

Using Cellular Automata to Generate Caves

Cellular Automata is a really awesome way to procedurally generate content. And as a game developer, I like procedurally generated content. I've spent much of today exploring the concept of procedurally generating underwater caves for a side scrolling submarine game using cellular automata.

The Importance of Reliable Algorithms

The study and usage of computer algorithms is one of the most important concepts for any computer programmer, and having a collection of well-written algorithms is essential for his toolkit. Modern algorithms are used to solve a wide variety of common problems, and their order of growths are all very well understood. Understanding and using algorithms can often be the difference between solving a problem and not solving it.

Looking Forward to 2015

2015 is already well underway, but there is still a lot that I am looking forward to in the rest of the year. At work, we have some very exciting new projects coming down the pipeline. There are also lots of new toys that I want to try out.

For work, we are beginning development on some long overdue projects. I can't really talk about it yet, but once the first wave of products comes out in Q2, I will go into more detail on the new communications protocol that I was instrumental in designing. Once these products begin to hit the market, we should see some excited customers.

Using the WS2812B with a PIC microcontroller

For a recent project at work, I had to get a WS2812B LED working with a PIC18F25K80. The WS2812B is a neat little LED, but getting it working was an absolute nightmare! The device uses a non standard communication protocol and the datasheet is lacking, to put it kindly.

Board'em - My First Foray into Unity2D

I have been developing with XNA for a little over a year now, and have been enjoying my time on it. But I've also known that XNA is a dying platform and most developers have already jumped ship. Unity2D was the most commonly mentioned successor (in terms of where developers are going, not in terms of similarities between XNA and Unity2D). It was a tough choice for me to move from XNA, but I did it and don't regret it at all.

PIC18 Basics - Timers

When writing firmware, one of the most common tasks that needs to be done is creating a system clock. This clock, often measuring milliseconds, is used for a great variety of things - switch debouncing, countdowns, blinking lights or any repeated tasks. In order to create a timer, you only need to know a few things about your project's oscillator speed, how to calculate the timer value and how to use interrupts.

How to Create an Image Button in Nuclex

The Nuclex framework's GuiManager is an extremely well written, easy to use tool for creating GUIs in an XNA game. It comes with built in functionality to support buttons, sliders, progress bars and text inputs, and is capable of being extended to support custom controls. One custom control that I had a need for was an Image Button. An ImageButtonControl would be similar to a regular button, but using an icon instead of text. This would be used to create hotbars like the ones seen in an MMO or RTS.

Adding custom software to Bitbake / OE-Core

This tutorial is aimed at developers who are already comfortable using Bitbake and want to add their own software to a recipe. It will cover how to create a basic recipe and how to point that recipe's source to a Git repository. In addition, I will briefly touch up compile and install directions to get your custom software installed in the rootfs generated by Bitbake to flash onto an embedded Linux device.

Implementing the A* Pathfinding Algorithm in XNA

The vast majority of videogames use pathfinding to aid in the movement of on screen avatars. Anytime you tell a character to move to some distant spot, and that character must avoid obstacles in between, an algorithm is executed to determine the most efficient path from point A to point B. If you've ever played a Real-Time Strategy like StarCraft, a 4X game like Civilization, or a Strategy RPG like Disgaea, you've seen pathfinding in action.