Oh, yes, it is very playable. No endgoal or victory condition yet, but can be played as an infinite depth dungeon crawler right now with a fair amount of enjoyment to be had.
I should really get in the habit of choosing a specific jargon and sticking with it, rather than have it mean different things. There are two types of Runes in the game; consumable Runes (Recall, Mapping, and Fabrication) and profile-bound Runes (Equipment Runes, Greater Runes, and eventually Legendary Runes). With high enough Crafting Mastery you can craft the consumable runes... or you can create Enchanting Orbs and upgrade profile-bound Equipment Runes. However, I can chalk up a lot of this confusion to my inexperience at designing games and systems... I'm gotten a lot better, but clearly have a ways to go.
Yes, and that is why I have modularization listed as tasks to complete; take large sections of essentially duplicated code, figure out a way to combine it all (whether with a powerful function or class composition or class inheritance) and then move large sections of that new code to a separate file. Slowly and yet surely I'm getting rid of tons of duplicate code and replacing it with significantly less code that does the original job, but also so much more and is far more flexible and reusable than the old code was.
One of the things I want to do for Alpha V8, is to greatly reduce the redundancy of code with the AI classes by using Class Inheritance, rather than have 6 separate classes that all share a lot of code, but each have their own specific things needed to operate properly; an excellent place where Class Inheritance can work wonders.
I've also tried to figure out how to use lists, list comprehensions, tuples, dictionaries, and list manipulation techniques (ie extend, remove, pop), to try to reduce redundant code, but thus far haven't had a ton of luck with that. As I continue coding, I do find places where these things would greatly help to reduce code redundancy and deter copy/paste code, and have implemented it in the places where I found a purpose for them. However, trying to stay on task, and produce a weekly build discourages me from sitting around rebuilding old code, unless the rebuild allows me to add new code in more easily. As I mentioned above, I intend to redo the AI classes, as I intend to clean up the AI code and try to more easily streamline the AI pathfinding code, as I can see already that it may be quite a bottleneck on gameplay performance once the map gets filled with a lot of enemies.