Well, I guess this is at least finished enough to show. I’ve been working on a Roguelike inspired in no small part by Pixel Dungeon (so far my favorite Roguelike TBH). I had a late start, and progress has been slow when compared to, say, Ludum Dare games, but so far it’s been a pretty decent test of my custom engine. Here’s a WIP screenshot:
Well, nothing that looks too impressive, right (heck, I’m trying my hardest to keep the GUI and mechanics very simplistic, as if I keep having fun making it, I’ll put it on a list of games to port to android after I port my engine over…)? By far the most impressive though is the use of one of my engine’s custom formats. That’s actually why I decided to go with pixel art (a psuedo 8-bit style at that) rather than my usual vector art. You see, not long before I found out that this year’s 7DRL event was taking place (still pissed off about that CompoHub, shame on you for not announcing it, I’ve been waiting since last year…), I had finished 2 custom image formats. Both of these formats are very heavily based on how retro games store their graphics (probably not the exact way, but close). Rather than store RGB information for each pixel, they store each pixel as either 1 or 2 bits, and these bits are read upon image load, and a palette file is used to colorize the image. The 2-bit version is quite obviously the one at work here, it allows me to use up to 4 colors per image. While this format will probably only be used for GUI elements (unless I wish to visit the realm of pixel art again and/or decided to stress test it again), it’s nice to see that it is in fact viable to make a whole game using it. Speaking of GUI elements, that’s something else I did. Before this 7DRL, I always did really hacky GUIs, not knowing how to properly implement them (they would always just scroll with the camera). Now, while probably still not “correct” this GUI is a lot closer. Turns out you actually can use more than one GLSL program at once, so I simply made a modified vertex shader that doesn’t account for camera position to use for the GUI.
Though this project is not without it’s negatives. The main reason I’m using a custom image format is not to stress test it (though that’s part of the reason), but instead for a feature that likely won’t make it into the game (unless I feel like continuing it past 7DRL). You see, the main “gimmick” of the game (and I use the term gimmick loosely) is that there are no bosses in the game in a traditional sense, rather just beefed up enemies. In fact, EVERY SINGLE ENTITY in the game will actually be playable (if I program the selector that is, also don’t get too excited, so far there’s only 4 to choose from). That’s not the feature I plan on cutting for time. Originally, I was going to make it possible for the player to select a custom palette for their avatar, adding a fair amount of customization for a relatively low amount of effort. This gimmick, however, leaves me currently with a very obvious problem. Because all entities in the game are playable, and all of the different varieties are spawned in the exact same way as the player (only difference being that the entities are told whether or not they ARE the player), they start with the exact same stats. I’m hoping this goes away to an extent if I allow the player to start with some extra points to allocate to their stats, but we’ll see.
Here’s a current planned feature list:
Player Selection – High Priority
Player Point Allocation – High Priority
Convert the rest of the graphics to the custom format (the ones with opaque black backgrounds are PNGs) – Meduim Priority
Player Palette Customization – Low Priority
Mod Support – Very Low Priority
Getting the other races to show up in-game (should be only a few lines of code) – High Priority
Inventory System – Medium Priority
More Room Types – Medium Priority
More detailed tileset – Low Priority
“Gravity Games Interactive” splashscreen – Very Low Priority
Allow game saving – Low Priority
Weapon System – High Priority
Traits System (related to character customization) – Low Priority
Status System – Medium Priority
Elemental Attacks – Medium Priority
…that’s about all I can think of, good night everyone, let’s hope tomorrow provides a massive leap!