Twitter Freesound.org Ludum Dare One Game a Month github npm Youtube

Welcome to brianmacintosh.com. I'm Brian MacIntosh, and I am a game programmer in the Orange County area of Southern California. This site serves to host and distribute some of my games and my blog, below.

I have developed games for the XBox 360, Windows PC, iPad, and Windows 7 Phone, and am expanding my experience daily. I have enjoyed developing and playing games of diverse genres, themes, and art styles, and I am greatly looking forward to working on many more.

Blog RSS E-Mail

Previous Page | 81 total posts | page 1 of 17 | Next Page

Persistent data in the Alexa Skills nodejs SDK

February 05th, 2017 @ 0:59
Tags: alexa, nodejs, random

I recently started use the Alexa Skills Kit SDK for nodejs to write an Amazon Alexa skill. I ran into one rather silly roadblock, which I will now share so others can avoid.

This SDK handles persisent data (with the same session and across sessions) by providing an attributes property on the skill handler (accessed by this.attributes). My problem was that sometimes properties I set on this object were apparently completely ignored by the next request (even if I kept the session open with an this.emit(":ask", ...) response). It is perhaps obvious in hindsight, but you must make all your changes to this.attributes before calling emit, as emit will immediately and synchronously prepare and send the response to Alexa, including the attributes you're trying to persist into the next session. But it took me quite some time to figure this out.


Permalink

Contact Listeners in box2d.js

April 20th, 2015 @ 17:49
Tags: box2d, javascript, contactlistener, emscripten

To implement physics in Porcupine Dogfight, I used Alon "kripken" Zakai's emscripten port of Box2D to Javascript. It was very easy to get working and almost entirely identical to the original Box2D implementation, however, it lacks documentation for some of the differences. After some experimentation and trying to read the crazy auto-generated source code, I finally figured out how to implement a Contact Listener. There are two things that are not immediately obvious: the listener must be an instance of JSContactListener, and the parameters passed in are not objects, but pseudo-pointers that need to be dereferenced with wrapPointer.

I post some sample code on Github for the benefit of anyone else who has this problem in the future.


Permalink

Ludum Dare 32 Brainstorming

April 18th, 2015 @ 12:31
Tags: ludum dare, game jam, threejs, javascript, box2d

Brainstorming thought process for Ludum Dare 32: An Unconventional Weapon.

  1. I like airships.
  2. Unconventional airship warfare?
  3. Porcupines.
  4. What's more fun than airships slinging porcupines at each other?
  5. Porcupines flying airships, slinging themselves at each other!

Screenshot of porcupines flying balloons.


Permalink

Camera Obscura Indie Royale

March 25th, 2015 @ 17:28
Tags: camera obscura, indie royale, bundles

I'm excited to have Camera Obscura featured in this week's Indie Royale game bundle! Pay what you want for Camera Obscura and 5 other games. No reason not to pick it up now!

The Venetian Bundle


Permalink

Camera Obscura Steam Release

February 10th, 2015 @ 3:05
Tags: camera obscura, steam

It's happening. Three years after its inception, Camera Obscura has made it through Steam Greenlight. We've been hard at work through January getting everything ready for release, and it's coming on February 19th. I'm excited to finally get the game out to players so they can enjoy it!

For more information, visit cameraobscuragame.com.


Permalink


Previous Page | 81 total posts | page 1 of 17 | Next Page