A common library of functions & objects for all *band variants to share.
This is an idea that just won't die for me. I have had it in several years and have already made two tries before. Once I starts to do any programming at all it rears its ugly head and disturbs my peace of mind.
So why do I feel so strongly the need for it?
1. The angband codebase is poorly modularized, moving stuff to a separate library would improve modularization.
2. The annoyance to have to implement UI patches for the same change for multiple variants. Having a single shared library would allow for less work.
It's especially annoying when having grown accustomed with a good UI feature in one variant, to try out another one where it's missing.
So, I started coding last week. Picked Sang, Oang, Steam, Ey and Pos for base variants. Would also have picked sCth if I could get it to work. Sang was a must because it's the only variant where I know which parts of the code are under GPL and which parts aren't. Un, FA, NPP and Anime I'm also interested in, but I don't like having to keep-up-with-the-Andrews.
Another thing I haven't yet mentioned is the migration of the code to C++.
The tools available in C++ to make the codebase smaller, especially strings, I don't want to be without.
One thing I need to state clearly. I'm creating the library for my own benefit. If you want to use it that's fine, and so much better. But, I'm not going to spend time worrying about marketing it. I'm posting about it because there's always something to gain from getting another point of view.
What have I done so far?
- An inscriptions class (called quark package for some reason in *bands.)
- A keymaps class.
Yes, these are simple stuff, but moving them to the library means that their implementation are separated from their interface. Another gain is that there's no longer any need to worry about memory management.
I might in future posts describe the classes more in detail.
As for future plans, the macro package is probably next. After that I plan to take a look a colors, visuals and the "cave" itself.
This is an idea that just won't die for me. I have had it in several years and have already made two tries before. Once I starts to do any programming at all it rears its ugly head and disturbs my peace of mind.
So why do I feel so strongly the need for it?
1. The angband codebase is poorly modularized, moving stuff to a separate library would improve modularization.
2. The annoyance to have to implement UI patches for the same change for multiple variants. Having a single shared library would allow for less work.
It's especially annoying when having grown accustomed with a good UI feature in one variant, to try out another one where it's missing.
So, I started coding last week. Picked Sang, Oang, Steam, Ey and Pos for base variants. Would also have picked sCth if I could get it to work. Sang was a must because it's the only variant where I know which parts of the code are under GPL and which parts aren't. Un, FA, NPP and Anime I'm also interested in, but I don't like having to keep-up-with-the-Andrews.
Another thing I haven't yet mentioned is the migration of the code to C++.
The tools available in C++ to make the codebase smaller, especially strings, I don't want to be without.
One thing I need to state clearly. I'm creating the library for my own benefit. If you want to use it that's fine, and so much better. But, I'm not going to spend time worrying about marketing it. I'm posting about it because there's always something to gain from getting another point of view.
What have I done so far?
- An inscriptions class (called quark package for some reason in *bands.)
- A keymaps class.
Yes, these are simple stuff, but moving them to the library means that their implementation are separated from their interface. Another gain is that there's no longer any need to worry about memory management.
I might in future posts describe the classes more in detail.
As for future plans, the macro package is probably next. After that I plan to take a look a colors, visuals and the "cave" itself.
Comment