Multiplayer Game Development with HTML5

At last, Packt Publishing has reached out to me and asked me to write a follow up book to my previous one. This time the book was about socket-based multiplayer game development in JavaScript. Given the things I learned form writing the last book, it felt like this one was way, way easier to write. It also took me three less weeks to write it, although this book has fewer pages. Overall, it was a really great experience. I learned a lot, and had tons of fun. The folks at Packt are really fun to work with, and I definitely recommend it to anyone.

Read More

Learning HTML5 by Creating Fun Games

A few months ago I was invited to write a book. Yes, I was approached by a Packt representative asking if I was interested in putting together a book about writing HTML5 games. Fast forward some 300 pages later, and this is the final result: My first published book for HTML5 developers wanting to learn how to write awesome games, as well as for game developers wanting to learn HTML5.

Read More

How to run Zend Framework on Google App Engine

If you’re trying to deploy a Zend Framework project on Google App Engine for PHP, you may be wondering if this is possible. Or, if you’re more hopeful and assume that it is possible, you may be wondering how this can be done. Since I’ve been successful in deploying a large Zend app on GAE, and since there were little or no resources to help me along the way, I’ve decided to post my report on how I did this - after spending a weekend beating App Engine over the head.

Read More

WebGl Quake

In case you have been offline for the past two years or so, there has been a few improvements and advances on what can be done on a browser, namely doing awesome stuff without a plugin. By that I mean that Flash has been replaced by HTML5. As a demonstration of the new HTML5 technologies and capabilities, a few cool people from Google used Google Web Toolkit to write a WebGL Quake port. Here is a summary of how this has come about:

Read More

WebGL Inspector Debug OpenGL on the Browser

For those of you who have done any web development at all, you are well aware of tools such as Firebug, Google Chrome’s Developer Tools, and other browser plug-ins that allow you to inspect a web page’s DOM structure in real time. Normally these tools also allow you to execute Javascript code, check for HTTP requests and statuses, etc., all in real-time.

Read More

WebGL 101 Video Lessons and Tutorials

Lately I’ve realized how much I miss doing 3D development. While at work the other day, I found myself listening to some old Google I/O videos about WebGL, and needless to say, I felt the great urge to jump right into some weekend project related to WebGL. Since it’s been around a year since I last touched WebGL, I thought I’d start out slow, but ultimately put together something I could be proud of.

Read More

OpenGL Tutorial Part 1 Parsing OBJ File From Blender

Lately I’ve been trying to learn OpenGL, shaders, and that soft of stuff. The more I learn about it, the more I get excited about it. My ultimate goal is to get familiar enough with OpenGL and make the slight move into WebGL. I want to learn how to bust out some awesome 3D graphics, games, etc., without the need to use those WebGL frameworks like Three.js. So To get things started, I wrote this simple program that parses out an OBJ file exported from Blender. There are no colors or textures so far, so the model might look a bit incomplete. My goal for the next few weeks is to master lighting and add that to my model, as well as some textures and such.

Read More

Nintendo Game Development Tutorial

I remember when I was around 8 years of age… my brother came home with my cousin, who had a new NES game for us to try. We had just bought our BIT system a few weeks or months before that day. Anyway, that game was Mega Man 3 (Rockman 3, to be more precise). I thought that was the greatest game of all time. Then time went on, I grew up, went to college, and I now develop software for a living. However, that memory of my brother playing Mega Man never faded. Such a great game, and such an amazing experience playing it. I guess somewhere in my heart I’ve always wanted to develop a game - merging what I love to do professionally with what I loved doing growing up.

Read More

Next Project HTML5 Gamepad Demo

Last night I got a USB adapter that allows me to connect my PlayStation 2 controller my computer. The whole reason I purchased this thing was so I could get started with the “new” HTML5 API that exposes a gamepad to JavaScript.

Read More

From OpenGl to WebGL - My first 3D demos in JavaScript

What’s a better way to learn something than to implement the concepts in code?! That’s the purpose of this post. Some of the demos are direct ports of OpenGl code I wrote for fun and for a graphics course from college. The majority of the code is just me experimenting with JavaScript 3D rendering.

Read More

Learn Google Web Toolkit Day

As I was working on a Google Web Toolkit and Google App Engine application that I’m doing as a means to get better at GAE and some more advanced GWT concepts (UiBinder, MVP design pattern, RPC, etc.) - at least advanced for me right now, I decided to log every new thing I learn, so that, 1) I will be able to remember them tomorrow, and 2) other can hopefully learn, since there seems to be very little [quality] documentation about GWT and GAE for beginners.

Read More

HTML5 Tic Tac Toe Challenge

Today I had a very weird, yet profound thought to myself: How fast can I code an entire Tic Tac Toe game in HTML? So I came home and started writing it as fast as I could.

Read More

Google Web Toolkit Failed to Connect

This post presents a solution to debugging the problem in Eclipse when you try to launch a GWT project and the project won’t load in the browser. If you’ve searched around for this problem, you’ll probably see this problem referred to as:

Read More

Custom CSS Filters with GLSL Shaders

Yesterday I got to the chapter of my book where I was to write about CSS Shaders. Since up to that point I had only heard about them, I had to go out and so my research on it. Turns out they’re not even called that anymore… Since the feature was merged with the CSS filters spec, they’re all called just that now.

Read More

Composite Design Pattern in PHP

I just wanted to post a quick example of the composite design pattern, implemented in PHP. I don’t want to go into great depth about how the pattern works. In short, this pattern allows you to have a tree structure where each node can be either a leaf or a composite. A composite can itself have children, which can obviously only be either a leaf or other composites. When working with this tree, the client simply calls the operation on the tree, and the tree recursively calls the operation on each node. Here’s an illustration taken from The Code Project of how this pattern is set up:

Read More

Code Formatter & Syntax Highlighter jQuery Plugin

Today I decided to write a simple plugin to extend the functionality of everybody’s favorite Javascript library: jQuery. The entire process only took around 20 minutes, so I won’t be surprised if to find major bugs in it in the next few days. I did test the plug in a little bit, but I can’t promise buglessness in this version.

Read More

C Challenge Manipulating Bits

The challenge is to complete each function skeleton using only straightline code (i.e., no loops or conditionals) and a limited number of C arithmetic and logical operators. Specifically, you are only allowed to use the following eight operators: ! ~ & ^ | + « »

Read More

Building a custom web analytics system

Recently at work, I was assigned to develop a system to track and analyse user behavior on a news website, so that we can determine what kinds of news articles our visitors read, and thus expose more relevant content to individual readers.

Read More

Binary Matrix Multiplication

I put this code together as part of my CS 238 class (Discrete Math 2). In our current exploration (project), we need to analyze binary (zero-one) matrices for certain properties. One of these properties is transitive. The easiest way to test if a binary matrix is transitive is to square the matrix (multiply it by itself), and see if the result is equal to the original. Pretty easy.

Read More

Becoming a Git Master

I made the full switch to Git about 6 months ago, and I see no reason to ever go back to SVN. For the most part, everything is going great, and I’ve had no problems adapting. The idea of branches, fast forwarding, etc. is pretty intuitive and easy to follow. Any time I’ve messed stuff up, it’s mostly been a matter of thinking through git’s model to fix the problem. From there, it’s just a matter of finding out what the commands are.

Read More

A paper on abstraction in Software Development

The following is a paper I wrote originally as part of a school assignment during my work at Brigham Young University – Idaho. I attended BYU-I between 2010 and 2012, and ultimately earned by Bachelor’s degree in Computer Science.

Read More

A Paper on Extreme Programming

The following is a paper I wrote originally as part of a school assignment during my work at Brigham Young University – Idaho. I attended BYU-I between 2010 and 2012, and ultimately earned by Bachelor’s degree in Computer Science

Read More

A Paper on Cleanroom Software Engineering

The following is a paper I wrote originally as part of a school assignment during my work at Brigham Young University – Idaho. I attended BYU-I between 2010 and 2012, and ultimately earned by Bachelor’s degree in Computer Science.

Read More

17 SEO Tips from Google's Maile Ohye

I just saw this quick video on YouTube by one of Google’s software engineers. At first I was a bit hesitant to watch it because it wasn’t Matt Cutts… The video describes 17 tips for starups. Maile focuses her tips is sites trying to rank for fewer, but related keywords (rather than trying to rank for thousands of unrelated keywords, like an e-commerce site). In other words, the following tips are ideal for startup companies with a focused and specific product and/or service. I’m including the video below so you can watch it for yourself. BUT, don’t worry about taking notes on her SEO advice - I’ve already done that for you. See below.

Read More

15 Things I Love Software Development

Going along the theme of things I did in 2012, here is a list of 15 things I did - and loved - and am very glad that I did. These are all software engineering related things, and are presented in no particular order (sorting the list would take too long).

Read More

Sudoku Solver Algorithm in JavaScript

The end of the semester is here. Just about one more project for each of the Computer Science classes I’m taking right now… With that comes the opportunity to port C++ code to the browser, and put out some cool HTML5 apps. My final project for one of my C++ classes is a game of Sudoku. The program, to be written in C++, must be able to read a board from a text file, allow the human player to play the game, with simple rules enforced, as well as allow the user to save the game to an external text file. For extra credit the professor challenged us to write the AI to solve the game. My goal is to get the extra credit, but later to convert the code to Javascript and make a Google Chrome App out of it. Sounds like a fun challenge.

Read More

CS 238 Exploration 2

I can’t quite remember which course CS 238 was at BYU-Idaho, but I found this post in my archives. From what I can gather, I had posted this in order to collaborate with my mates for this assignment.

Read More

HTML5 Stock Market Simulation in PHP

In response to the several emails I have received in the last two weeks, I have decided to take the time to post the source code for my HTML5 Stock Market simulator written in PHP.

Read More