I don't think a change is "absolutely necessary", but I see it as both a chance to decrease upload/download size as well as learn something new.
Since dependencies hell struck again (I say again because I've had it when setting up a Lua linter) with BearLib (I got it to work, but making any sort of releases would be very difficult), I kept looking and found
LOVE 2D. It's a 2D Lua engine which is not tailored for any game genre, just takes care of input and output. There's a ton of LOVE-specific libraries for a lot of stuff (A*, FOV, there's even a roguelike-specific one called ROTLove).
I picked it up on Thursday and it's now Sunday.
Day 1 (Thu): lots of grabbing of libraries as well as other love games. Made a start screen in under 30 minutes as well as the game closing on ALT+F4 and reacting to ENTER key by changing the message on screen
Day 2 (Fri): got a basic display working and a barebones 20x20 floor map for testing, as well as player input. The player tile however overwrote the terrain tile. Accidentally find out the engine can recolor anything
Day 3 (Sat): figure out how to draw in layers, so that the player doesn't overwrite terrain. Write a basic "spawn monster at x,y" function. Laugh a bit when the player winds up looking like the orc because of wonky inheritance, and laugh even more as the player can move to the square the orc is in, causing it to disappear forever. Fix said inheritance. Write a function to stop movement if there's an actor in the square. Prototype a player HUD showing the player's hitpoints and wounds as numbers.
Day 4 (Sun): Move the map so that the player HUD is on black background and not the map. Integrate
the action schedulerfrom ROTLove as well as a debug display for it. Keep poking at the game until it becomes turn-based instead of realtime (with a hilarious bug in between where you could move multiple times in a round because I forgot to make the movePlayer() function call EndTurn())
Note: The action scheduler is a big thing. It allows me to make the game closer to Incursion - which had something called segments and I think 6 segments equalled a turn? most actions took 10 segments but some took less and some took more - looking at you, taking stuff in/out of backpack, 200 segments! Also it means I don't have to futz around with speed leading to sudden double moves, Angband-style. Win-win! And the debug display (it's my turn now) was very easy, so I'm hoping to expand it soon to something like
> Player
Orc #1
Orc #2
which would let you tell which of the monsters moves first, which second etc. and I would probably highlight the player and the last monster (at which point it wraps back to the player) in a different color as soon as I figure out how to do it.