As I blogged a couple months ago, one of my goals for 2018 is to program a very simple 3D engine. I’ve been wanting to program a simple adventure game for a few years now, but the 3D and 2D engines I’ve played around with just don’t have quite the features I want, so I’m attempting to create my own little game engine with the Lightweight Java Game Library (lwjgl).
Here’s what I’ve got so far: I can render a textured box and some resolution independent vector graphics including true-type fonts, which can intersect with the box!
OK, so nothing special yet.
Anyway, another thing I’d like to create with lwjgl is a new version of my MIDI animator, using vector graphics (instead of custom shaders) to represent the MIDI notes. (On a side note, I’m using the OpenGL “NV path rendering” extension for vector graphics support, which was created by Nvidia. Does that mean it’ll only work on their GPUs? I don’t know.) This should easily allow many more possible note shapes to be created.
Here’s my current wishlist for “MIDI animator 2.0” (I should also come up with a more interesting name):
- Should be able to run standalone (that is, users shouldn’t have to download and compile the code to use it)
- A graphical user interface (GUI) that makes it easy to:
- load MIDI files
- change note styles / shapes / colors / animations
- a scroll bar to make it easier to scroll through the MIDI
- save files
- Ability to add title / text animations (instead of having to do this in post)
- Ability to change / animate background
- Ability to load in an MP3 to sync with the visualization
- Ability to add an MP3 visualization, such as one of those pulsing frequency bars or something
- Ability to export a movie file automatically (if I can figure out how; I’ll save this for last)
Anything else I should include or look into?
So, yeah, this is probably what I’ll be working on in my free time for now. I’ll probably start working on a GUI system next as I’d need to do this for a future game anyway.
Hopefully I’ll get back to actually writing some new music afterwards.