And so beings the development of Magelusion for the LOWREZJAM 2020 game jam! The basic idea is the player will play as a Mage trapped in a dungeon/castle-like environment and will need to elude enemies and solve environment puzzles to escape!
I’ve already been poking at the game for about two days for a Jam that has 16 days in it. My goal is to have most of the core mechanics in the game by day 10, then, with the remaining 5/6 days add all of the polish, like menus and any sort of stats.
For this jam I’m using my favorite game engine, Godot. One of the things I want to experiment with this Jam is creating and using “pixel particle” effects for things like blood and possibly even a magic system. Ultimately this might be biting off more than I can chew, but if I don’t try, I will never learn, right?
I’m also going for a very minimalist art style… basically 2 bit art I’m putting together using Aseprite (see some of the screenshots below). I’m not an artist by any stretch of the imagination, but I like Aseprite because, for me, it only gives me the tools for pixel art without all of the clutter of a full raster program while still being a full featured program in and of itself… Ha! Love pitching my favorite tools!
The trick with this 2-bit art, though, is while the base art will all be black/white, I’m using a very simple shader to alter the colors of various layers. Why not just use those colors in the art itself? Because I may want to tweak the colors as I develop, and it would be tedious, for me, to go in and change colors for the base art every time. With the shader, I can just tell it what colors to use and it instantly changes all the colors. It’s a rediculously simple shader… like… “Noobs First Shader” simple, but it gets the job done.
Here it is, for anyone interested…
shader_type canvas_item;
uniform bool AUTO_REPLACE = false;
uniform bool IGNORE_ALPHA = false;
uniform vec4 COLOR_A : hint_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform vec4 COLOR_A_REPLACEMENT : hint_color = vec4(1.0, 1.0, 1.0, 1.0);
uniform vec4 COLOR_B : hint_color = vec4(0.0, 0.0, 0.0, 1.0);
uniform vec4 COLOR_B_REPLACEMENT : hint_color = vec4(0.0, 0.0, 0.0, 1.0);
void fragment(){
vec4 cc = texture(TEXTURE, UV);
float a = cc.a;
if (IGNORE_ALPHA)
a = 1.0;
if (cc == COLOR_A || AUTO_REPLACE){
cc = vec4(COLOR_A_REPLACEMENT.xyz, a);
} else if (cc == COLOR_B){
cc = vec4(COLOR_B_REPLACEMENT.xyz, a);
}
COLOR = cc;
}
Well… that’s my work so far, and I still have 14 more days to work on this. I’m feeling really good about it so far! Here’s to hoping the momentum and morale lasts!
Some screenshots for your enjoyment!