1401 Make Video Game

The Goal

I was 9 years old when electronic games started to appear, and my professional career has been shaped by a life-long pursuit of learning the skills to make them. I eventually gained work in the professional video game industry, but burned out in 2000. Enough time has passed that I’m realizing that I still wish I’d made my very own game, and that is what this goal is about.

The Approach

Use Javascript + HTML5 in a modern browser, leveraging libraries such as ThreeJS for high performance visuals. Document and share project via Github.

My short-term goal is to capture the knowledge I have on making Javascript web apps as I learn it, and refactor some code into a really nice, well-documented modular system.

My near-term goal is to make a spaceship flying around on the screen in a web browser and shoot stuff, built on a codebase that incorporates sound development practices.

My long-term design goal is to create meaningful social gameplay mechanics with supporting story and user interfaces. There is little attention paid to this area, from what I am seeing come out of the major studios. However, that does not have to be THIS project. Project 1401 is just about getting moving.

Posted February 2014 – M1 Base System

  • Reorganized Master and Directory Structure
  • Ported and cleaned-up Renderer, VisualFactory, PieceFactory
  • Milestone report at Review of Game Making Week

Posted September 2014

Musings on past work:

  • The original Crixa game has our earliest thinking (co-developed with lead programmer Bretton Wade) regarding a piece-played based architecture. However, we didn’t have scripting or modular AI in it, and our level management was not highly developed. There is some networking code that Bretton developed, but I don’t know how it works. Current game does not run; Jeremy has MacSDL port to update.

  • Various Flash and Director-based interactives from Phase Forward, Showing Evidence and the Boston Museum of Science got me thinking more about writing a robust simulation game loop; a lot of that sticks with me today.

  • The evolution of the piece-based architecture came with Take a Stand, which used C# + XNA; as we were designing for an installation, we could develop to specific hardware. Bretton consulted, which was great, and I learned about shader-based rendering on modern video cards. Hit the first challenges of AI scripting and event management conflicting with the procedural way of thinking, developed a more granular timestep with specific phases for update, physics sim, and AI. Iterating and testing AI was our biggest problem, along with staging action.

  • Currently working on NSF research project for UCLA and Indiana University, using WebGL, HTML5, Javascript as basis for camera system. This is the inspiration for developing 1401 under Javascript, as it is clearly possible and the modular design approach seems to work well. We’re resolving the staging and AI issues with a more refined approach to state machines and behaviors by using the functional programming approach that Javascript enables.

  • Artistically, I’m rusty and don’t have a modern workflow for 3D or 2D asset production. Past references from newest to oldest: phase forward dia, mos, crixa ui/fx, mfa thesis, star reach, . dueltris, spaceships