HS and HZ are both impressive and beautiful. And together you do the lion's share of moving ASSS forward. We're all grateful. It's also great to hear that you have been able to do a lot of your work without modifying the core. I'm simply urging a cleaner distinction between core and add-on modules so that the community of secondary developers can grow and so that the core can be separately polished for ordinary use.
Dr Brain - Wed Jan 06, 2010 1:52 pm
Post subject:
Lets see... about the duplicated code, I don't think there has been any examples of duplicated core modifications between hyperspace and hockey zone, since both zones were working on very different things. You seem to be arguing about a problem that doesn't exist. Lets see some examples here.
The API is stable... Almost all of the .h files haven't changed in any significant way in the last 5 years. I changed a whole lot of things for 1.5.0, but 99% of interfaces were not changed. Those that were would cause about 15 seconds of alteration in any broken module. The biggest change was moving game->SetFreqAndShip to game->SetShipAndFreq to match the parameter order, and if that's what your referring to as unstable, then we have entirely different viewpoints that probably cannot be reconciled. Again, examples of this unstable API would go a long way toward clarifying your concern.
Load order is not what I would call a tight dependency. Put your modules at the end of the file. If you make a module that depends on another module, put the dependency first. If all of your modules are independent, put them at the end in any order you please.
A coder need not be familiar with the entire core API. If they want to send chat messages, they need to know chat.h. If they want to register ?commands, they need to know cmdman.h. If they want to use LVZ objects, they need to know objects.h. If they want to use map regions, they need to know mapdata.h. The list goes on. It's not monolithic like you claim.
You wanted to know why the modules weren't hardcoded. I gave you a perfectly reasonable answer. Now you want to stop innovation so that everyone can use it--the lack of innovation?
I'll need some examples of your problems if we're going to make any progress with this conversation.
BDwinsAlt - Wed Jan 06, 2010 3:13 pm
Post subject:
The thing that bothers me the most is if Hockey Zone wanted to borrow a HyperSpace module, would it work, or would Hockey Zone have to take the time to modify their core instead of just loading the module like any other module.
Dr Brain - Wed Jan 06, 2010 3:36 pm
Post subject:
They could borrow basically any Hyperspace module with the exception of a select few. If they wanted those, they'd have to take the modified core module too (which would be fairly trivial, comment out the core one in modules.conf, and add the hs_ replacement). Hyperspace actually uses several modules created in HZ. I don't think HZ uses any HS modules since ours tend to be more specialized.
D1st0rt - Wed Jan 06, 2010 8:11 pm
Post subject:
Divine, is this something that is more along the lines of what you are looking for? It's about a year old now and I can't think of any API changes I'd make at this point. I'm a bit biased but at least to me it's simple, with several example implementations and even some docs!
I'm actually drafting up a successor to this framework but I have to finish python support for advisers first.
Arnk Kilo Dylie - Sat Jan 23, 2010 4:32 am
Post subject:
Threadnecromancygo
Doc, hope you don't mind, but I borrowed fuschia for HZ. :-P
Both HS and HZ hardly even use core-changes anymore. HZ was living dangerously with lots of them but we finally got them all into standard asss. The lag modules still need work though, so I'll admit I swap that one out for a completely new module.
In any case most modules you'll ever want to write won't have to tear up the core to do so. The vast majority of work in both zones has gone into new modules, not changing standard ones. The biggest problem asss had was not being able to intercept and stop default asss behavior, but advisers are going to change that (already have in HZ's perspective), that doesn't leave many problems you'd need to modify the core for.
I am really confused by the need for an additional distinction between core and addon modules... the former are those you download with asss and the latter are not...not all of the modules asss provides are necessary for every zone, that's why you can disable them using modules.conf. (HZ has no flag modules loaded, for example.)
P.S. If you need updates for asss before official releases I suggest taking the plunge and setting up your asss server to be built with things straight from the hg repo. default branch for official things, akd branch if you're a little more adventurous. It should get you more involved.