Theodore Beale is a groundbreaking game designer and Satan Incarnate (the ground he broke was the invention of the FPS escort mission). He’s teaching a 10-session online course through a technical college in Zürich on game development and, by the looks of things so far, it will be worth your while to sign up for the eight remaining courses. I’m not going to write up a full report in this space, since the organizers surely deserve remuneration, but I plan on writing up a takeaway each week.

This week’s takeaway is stand on the shoulders of giants.

One of Mr. Beale’s little factoids was this: Grand Theft Auto is Pac-Man.

You’re Pac-Man, your mission destinations are the dots, and the cops are the ghosts.

There is nothing truly original.

It’s rare for a game designer to come up with something new to the world of game design. And even then, it wasn’t new to the world at large. Before there was Pac-Man, there were physical, meatspace games like tag and capture-the-flag. Innovation comes not from inventing new things, but combining old things (tag + TV screens = Pac-Man).

Worked out the final(ish) art style for the game, in part by brainstorming on this blog.

Built a set of test textures for the sprite editor.

Moved my XNA Entity System into Monogame as Linked Files so they’re equally usable from Windows and Android.

Started building texture processor:

Got it displaying the textures.

Rebuilt my mouse system…

… and got the mouse moving the texture set around with a middle-click.

Next steps:

Zoom with Scroll Wheel

Outline rectangles with Left button

Naming individual parts

Broad goals:

Coloring system so I can assign palette indices to various layers of individual parts.

Taking the multiple texture atlases into a single texture via outlining blocks within a part, rectangle packing, and offset saving.

Once the texture processor is done, build the animation editor (a’la Silva’s in Building XNA 2.0 Games), and set up some test animations.

Once there are test animations, get the animations playing on my phablet.

Note to self: Using Vector3s instead of Vec2s will allow me to both store relative depth of the parts and use matrix multiplication to ensure the component layers rotate and scale with the sprite as a whole.