Inspiration
Isometric pixel art was a common technique to give the 'illusion' of 3D on limited hardware, and has lived on as a unique art style imposing interesting styles of gameplay. It's been around since before the NES, and its techniques mean it was possible to do even on a 6502 without any graphics acceleration or dedicated graphics modes (such as 'Mode 7' on the SNES)
There's a lot of games that inspired this, one of the biggest being Marble Madness.
What it does
Our program reads in a plain-text tile map and adds tiles/entities to a scene graph. When the scene graph renders the tiles/entities, it converts it's 'world' tile coordinates to the 'screen coordinates' using an affine transform.
The affine transform is effectively changing the basis vectors from the identity matrix to whatever basis vectors the isometric grid requires.
The affine transform isn't 2x2, however, there's an extra column with (0, h) to allow tiles to have a 'z' value determining it's height (this is the simplest part actually, you just increase the textures y screen coordinate by (z*tile height)),
How we built it
We built the game on top of the LibGDX engine and used JBump for 2d physics. LibGDX comes with some isometric tilemap support, however we chose not to use this in order to make it our own. We only made use of the basic texture drawing and input handling capabilities of LibGDX.
We also used JBump, a community built library, for 2D collision handling.
Challenges we ran into
We forgot to set git to merge with rebase, so there were a few merge conflicts that were difficult to handle.
Drawing assets and tiles were also difficult because it required 'thinking' isometrically, and there aren't a lot of dedicated tools to make isometric pixel art.
Because we are dealing with OpenGL, we also still had to manually dispose of memory despite using Java. This was difficult to manage and due to time restraints there are probably still quite a few memory leaks :/
Accomplishments that we're proud of
- reading our own tilemaps
- properly rendering isometric tiles
- adding jerma
What we learned
- how to use an affine transform to translate between isometric coordinates and screen coordinates
- libgdx!
- how cool jerma is
What's next for Ghosts, Ghouls, And Golf
We didn't manage to quite finish all the game logic and physics. It's currently sort of half-finished with no real gameplay or level transitions.
We plan on polishing off the game, adding 10 or 20 levels, and uploading it for free on some platform like itch.io.
Log in or sign up for Devpost to join the conversation.