Thing-a-Day 2010: Complete

After participating in Thing-a-Day for my second year, I put together a summary grid with everything in one place. The complete graphical source is also available in a convenient .zip file.

For the graphics source and more info, see the original Posterous post on Thing-a-Day.com.

The Character Project: Week Six – Amy

Created for week six of The Character Project.

Graphics mostly created by Daniel. I reused some tiles hanging around for backgrounds. Built on Flixel.

Happy Valentine’s Day!

Hammond: A mailman’s dream

Hammond: A mailman’s dream is a small game I wrote for The Character Project.

Hammond was built on the Flixel framework, using Flashdevelop. Daniel made the mailman image, I made the rest. All graphics created with Inkscape.

Leaving Satisfactoria

Leaving Satisfactoria

My entry for the December, 2009 Ludum Dare 48-hour game creation competition. This competition was themed “Exploration”.

Screenshots

Download

Get the competition version here:

Background

I wanted to break the normal “exploration” mold, where the goal is to uncover every single square on a map. The following elements were under focus:

  • A conscious decision to depart from a comfortable space (leaving home)
  • The one-way journey, leading your exploration far from the comfort zone
  • Accepting the danger before you

The actual “exploration” probably occurs after the end of the game. You will most likely have to play a few times before reaching all points on the field, this is by design.

Tools

The entire game was built with the Pygame Python-based engine. You can get that here. Graphics were done entirely in MSpaint. Sound effects courtesy of sfxr.

official megastrata hiatus

This project has come further than any other of the previous attempts. Similarly, it has been a fantastic learning experience so far. Unfortunately, a conceptual blockade has emerged for various reasons, among them Sloth and Pride.

However, the idea has been around for years now, and it will reincarnate better than ever. Maybe next time a less lofty goal will be chosen, and the project may attain a feeling of completeness. I believe I may have reached too high in this current cycle, and constantly straining my neck looking at the goals is frustrating and discouraging.

For now, there are some other projects that demand pursuing. Rest assured that the Megastructure will return; because the truth is, it never ceased existing to begin with.

This blog will continue to exist as a development log, as well as @megastrata. I am participating in Ludum Dare #16 this weekend, under the name eli.

Elevated – v1.88

After starting year 2 of physics at TAU, it’s been hard to find time for anything other than schoolwork or zoning out. It’s been more than a month since last code update, and not much has improved. Elevators are now usable, complete with internal colliding surfaces. Most of the development has been trying to fix bizarre stability issues as they arise; I’m not sure they have been addressed properly. Please let me know if this version crashes.

As always: get the latest version from the Megastrata information and download page.

screenshot smorgasbord, elevators

Slowly but surely, scriptable objects (like elevators) are being incorporated into the engine.

Here are some new screens, reflecting changes in lighting and modeling. Also, the new elevator shaft rooms are visible.

(Wolfgang discovered the ceiling pillars that go on forever.)

Technical: Depth buffer in OpenGL

I just thought I’d post this up here, in case other people had the same problem.

The Megastrata project started out like any other first-time project: cobbled together from examples found on the internet. One of the long-standing traditions regarding development involve the so-called “hack-n-slash” technique: smash the code around until it works.

Megastrata started life out as the NoiseViewer, which was, true to its name, simply a 2D noise patter viewer. Hence, there was originally no need for a depth buffer.

When the leap was made to 3D, I made it work on Windows. But the OS X version didn’t render the same way. Wolfgang put a lot of effort into debugging it, and after sending screenshots back and forth, we understood that the problem was with the depth buffer.

I saw something suspicious when I looked up the OpenGL FAQ on the subject. Step one reads:

1. Ask for a depth buffer when you create your window.

Evidently, Windows automatically specifies a depth buffer created when initializing the window, whereas OS X does not do this by default.

We changed the line in the code that read:

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);

to:

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);

and the problem was solved.

Collisions and Cosmetics – v1.87

Version 1.87 released: as usual, to be found on the information page.

Major changes in this version include a newer, less degenerate collision engine. The player now collides with surfaces, instead being manually bound to a certain volume.

Also, steps have been taken towards making the corridors more visually interesting. This means adding chamfering to some corners, and variable heights to the corridors. (Suggestion in part by @zdanielz.)

Some screenshots:
screenshot-09-10-11_1

screenshot-09-10-11_2

Version 1.86 Released, corridor-enabled

Collisions are coming together, even if they are simplistic. This means we can now explore an infinitely-generated space, full of corridors and rooms. The latest version has been uploaded, the very same one from the teaser vid.

Please note that there are disabled stubs for working with ffmpeg, but I decided it was far too bulky to add to the project. I only used it for a few export clips, for the teaser.

Also, as Wolfgang points out, the Mac version does not look the same as the Windows version (most of the walls are transparent). This is evidently because of some nonstandard usage of OpenGL that Windows is willing to forgive. Any thoughts or suggestions on how this might be solved would be quite welcome.

Regardless, the project is moving forward, and new and exciting features are coming. Stay tuned.