RSSAmplifier

Blog

jamiltron

Justin Hamilton — games, code, books, and other fixations.

jamiltron.comRSS feed ↗20 posts

Latest posts

Space Dregs

Back in late high school or maybe early college I made a little Asteroids clone called Space Dregs . I did this to learn the Allegro game programming library. Recetly I've been going through old projects as I update my resume and portfolio, and I decided it might be fun to spruce up a few of them and port them to the web. I decided to make Space Dregs more free-roaming. I changed the score…

Indie Web Migration

For years jamiltron.com was a Jekyll blog on GitHub Pages — which was fine, and free, and I ignored it for about five years. But I kept reading about the IndieWeb and got a little itch: I wanted to host the site on one of my servers, backed up, and using slightly more flexible technology than I felt GitHub Pages afforded me. Indie Web The whole pitch of the IndieWeb is simple: your website is your…

Roguelike Celebration 2016

This weekend I had the opportunity to attend Roguelike Celebration. This was a great new conference held at Eventbrite. There were a lot of great speakers and awesome people there. I don't have a very detailed write up, but I do want to suggest to everyone interested in either Roguelikes, gaming history, or game design in general to attend next year's conference. One of my friends also came to the…

Kha Shmup Tutorial Updated

It's been a little while and I wanted to make sure my KhaShmup tutorial worked with the latest version of Kha. I have gone through the code as well as my previous posts and updated what I think to be everything. Not a lot has changed — mostly how the khafile resolves projects, and also the Audio1 play method no longer takes a boolean to determine if you want to stream the audio or not. Let me know…

Kha Shmup Tutorial Wrap Up

Finished Product Wrap Up We set out to learn how to make a basic game in Kha and step-by-step we put together a game using basic features of Kha. We learned the basics of rendering sprites, recieving input, playing sound, and we wrote a basic animation system as well as object pools for the types of objects we were going to be creating and destroying over and over. Extending the Game This game can…

Kha Shmup Tutorial Part 10

We wrapped up the last post by adding a main menu and introducing game states, and we left off one more state - the game over state. We want to make sure that we appropriately handle the collision of the player and enemies, the displaying of a game over screen, and that we allow the player to restart the game if they wish. Let’s start by making some changes to our main game class: KhaShmup.hx…

Kha Shmup Tutorial Part 9

We finished adding score to our main game , so now let’s start wrapping up by adding a main menu. We are going to be changing our UIManager a little bit to accomodate these changes. This UIManager is pretty naive - we are assuming quite a bit in this tutorial making a few things easier for us: The screen will remain at 800x600 and we do not have to worry about additional resolutions or resizing.…

Kha Shmup Tutorial Part 8

A week or so ago we finished up with some death animation when we shot our enemies, so in this tutorial we are going to be tracking how many enemies we’ve destroyed. We will start by defining a UIManager to help us keep track of the various UI we’ll be doing in this game, which for this tutorial will be just displaying a score label and amount. UIManager.hx package; import kha.Font; import…

Kha Shmup Tutorial Part 7

Yesterday we coded up some collision detection so that the player could shoot enemies. Today we will be adding very basic animations to make that a little more satisfying. Animation.hx package; import kha.Image; class Animation { private var currentTime: Float; private var index: Int; public var frames: Array<Image>; public var frameDuration: Float; public var isDone(get, null): Bool; public var…

Kha Shmup Tutorial Part 6

In the last blog post we started spawning enemies randomly on the screen, this time we’re going to be adding some collision detection so the player can shoot. We’ll start how we always do - basic, and the proceed to get more advanced. Since we will be developing a few different cases of collision, let’s add an interface for anything that has a hitbox - which we will use as our bounding box…

Kha Shmup Tutorial Part 5

We can now move and shoot so let’s lay the foundation of providing something to shoot at. Enemy.hx package; import kha.Image; import kha.graphics2.Graphics; class Enemy { private var image: Image; public var x: Int; public var y: Int; public var width(get, null): Int; public var height(get, null): Int; public var speed = 200.0; public var isActive = true; private function get_width(): Int { return…

Kha Shmup Tutorial Part 4

Previously on KhaSmup we added keyboard support and limited the ship to only be pilotable on the visible screen. In this tutorial we are going to add the ability to shoot as well as the sounds of the shot. First thing we have to do is add a bullet. Bullet.hx package; import kha.Image; import kha.graphics2.Graphics; class Bullet { private var image: Image; public var x: Int; public var y: Int;…

Kha Shmup Tutorial Part 3

In part 2 we got the player’s ship on screen. This time we’re going to give the player some control over it. Timer.hx Something you’ve probably came across if you’ve read any tutorials on making simple games is frame independent movement, sometimes called delta timing . The basic idea is that if you have two computers - both of which are playing your game. Each computer has a player that holds…

Kha Shmup Tutorial Part 2

Last time we started up a Kha program and got a nice purple screen rendering. This time we will be displaying a sprite representing the player. Ship.hx Create a new file named Ship.hx in the Sources directory and fill it up like so: package; import kha.Image; import kha.graphics2.Graphics; class Ship { private var image: Image; public var x: Int; public var y: Int; public function new(x: Int, y:…

Kha Shmup Tutorial Part 1

Continuing from the previous tutorial we’ve made sure we are running a recent version of Haxe (I am running 3.2.1), a recent version of NodeJS (5.0.0 for me), as well as the git version control system. Game Features Throughout this tutorial we will be building a small space shooter. I want to build a small game, but to make sure its not trivial. This game will have the following features: A ship…

Kha Shmup Tutorial Intro

Kha Shmup Tutorial Part 0 Kha describes itself as a “super-portable dev kit.” The tool is kind of equivalent to the Haxe version of SDL . Essentially its a tool by which you can use Haxe to make games or other media applications, and it allows you to target Linux, OSX, Windows, Android, iOS, HTML5, and several other targets very efficiently. Kha has always seemed super interesting to me - I love…

Global Game Jam 2015

This past Sunday I had the pleasure of attending Global Game Jam 2015 at Oakland’s Museum of Art and Digital Entertainment , which is always a great place - definitely something you should check out if you are visiting the Bay Area or live here and haven’t been there recently. They were kind to host this year’s Global Game Jam for the Bay Area, and the theme this year was “What do we do next?” My…

Networked Platformer

This weekend I decided I wanted to try my hand at making a non-turn-based game using Photon Unity Networking . The only multiplayer games I have ever designed have been basically “call a REST service with move data, have the server validate the move, respond with result” type of stuff. Nothing built for actual real-time gameplay. Digging into Photon has been pretty easy. The docs are decent…

Review Series

Since I very rarely blog I have decided that I would like my hand at sort-of reviewing the various gaming and tech books I have been reading. This is both to increase the content of this blog, but also to keep a log of what I have been reading, as well as my thoughts on these books. Hopefully this will also generate discussion so I can further learn about the stuff I have been reading about. I…

Ludum Dare 29

I am very excited to be participating in the Ludum Dare 29th 48-hour game jam this weekend. I am going to try to follow the strict “Compo” rules, which is 48-hours only, only using material made during the event, source code required, etc., but I may fall back on the more relaxed 72-hour jam version if I fall behind. I am anticipating on using Unity for this. In the spirit of “you can only use…