This game was made in a game jam ran during a retrogaming event.
This year the theme was maze, a boss and the Odyssey.
My game is far from being finished, I didn't worked really long on it (4-5 hours maximum) and mostly only the rendering is done (and may still need some tweaks)
When playing the X button allow to display a debug view of the maze, which is for now, not generated randomly. I hope to update it at a later time to add all of what I wanted to include in it!
The final game should include some RPG elements, HP, EXP points, attack, treasure to find and grab, different levels and in the end the big boss that you have to kill to be able to escape the maze.
The polyfill function is from scgrn ( see https://www.lexaloffle.com/bbs/?tid=28312 ) modified to not directly write to memory to support the fill pattern.
If anyone have a better fillpoly function, one that can do even better dithering than using the fillp I will probably switch to it to have smoother gradients.
I have a WIP maze renderer that I'm not quite ready to release(I'm probably overcomplicating it in the process of adding wall detailing) but you mentioned looking for an alternative to polyfill. Here I have two "trapezoid render" functions which use line drawing, so a dither or blend is not too hard to add:
function render_trap_h(x00,x01,y0,x10,x11,y1,c) if(y0 > y1) y1, y0, x00, x01, x10, x11 = y0, y1, x10, x11, x00, x01 local yd = y1 - y0 if(yd == 0) return if(x00==x10 and x01==x11) then rectfill(x00,y0,x01,y1,c) return end local clipy0 = 0 local clipyd = yd if (y0 < 0) clipy0 = -y0 if y0 + yd > 128 then clipyd = 128 - (y0 - clipy0) end local xd0, xd1 = x10 - x00, x11 - x01 for y=clipy0,clipyd do line((x00 + xd0 * y/yd), y0+y, (x01 + xd1 * y/yd), y0+y, c) end end function render_trap_v(x0,y00,y01,x1,y10,y11,c) if(x0 > x1) x1, x0, y00, y01, y10, y11 = x0, x1, y10, y11, y00, y01 local xd = x1 - x0 if(xd == 0) return if(y00==y10 and y01==y11) then rectfill(x0,y00,x1,y01,c) return end local clipx0 = 0 local clipxd = xd if (x0 < 0) clipx0 = -x0 if x0 + xd > 128 then clipxd = 128 - (x0 - clipx0) end local yd0, yd1 = y10 - y00, y11 - y01 for x=clipx0,clipxd do line(x0+x, (y00 + yd0 * x/xd), x0+x, (y01 + yd1 * x/xd), c) end end
[Please log in to post a comment]