Replace the old mod systems of GDT which are either out of date or unusable (UltimateLib, ect.)
Expand upon the old systems to further simplify modifying GDT while giving absolute control to the dev over much of the game
Give the developer an interface for both Object Oriented and Function Oriented use
Provide documentation for under-explained systems in GDT and SDP
What the SDP is not:
A mod which noticeably modifies behavior of the game directly by itself.
A mod which adds any objects to the game by itself.
Description:
The Spartan Dev Project is a Game Dev Tycoon Mod API to be designed with both Object Oriented and Functional Oriented scripting in mind. The source is implemented in Coffeescript and it will allow the use of the classes implemented through Coffeescript. This API plans to become a fully documented work which both documents self-use and GDT modding, without needing to look at the source.
This project also plans to make conversion over from UltimateLib simpler. The UltimateLib functions will simply be wrapped in a way that any UltimateLib object with first be converted to an appropriate SDP object then the proper function will be called to handle everything else. However, because this project is not the UltimateLib, modifications of the game provided by it do not exist, so mods which take advantage of that may still break.
An issue commonly seen among many open-source GDT projects these days is obfuscation, while understandably this makes the file smaller and may speed up the game under duress, this project will not provide as of yet, and may never be obfuscated as to keep readability a top priority.
Yes this is going to be an API like the UltimateLib was.
The plan is to add many advanced features, a good few notably found originally in the UltimateLib. An example of such features is the ability for publishing contracts to be weighted based on every request from them, like one company much prefers Music topics or Young audiences or so. Or the fact that staff training can be added to the training list.
Another thing I’d like to make sure of is that just by looking at the source, you can understand what everything is doing and how to create certain things, and with the object oriented options, it even gives a guideline to how to build objects to maximize the feature use, and Coffeescript is just a plus overall.
As for the question of GUI Snowy asked, I may try to implement it after I implement everything else, but I’m not as good with UI handling as I am of other things so I might need help with that when I get to it, but it shouldn’t be too horrible for me. (If/When I get to that, its also going to come with object oriented options.
That is really awesome, so you wouldn’t mind me using that as the logo then? Cause I just love how that looks. (I really want to make sure, as I feel its polite)
I had to rework some of them, and I’m finishing a short break from this. I shall however have all those features done for version 0.1.0 and they will work properly, you should see them with in a week or so. After that, I plan to replace the features that UltimateLib had, but with even more, for example Publishers and Reviewers will be entirely controllable. I eventually plan to start documenting some of the internal GDT code itself, to make modding especially with this API easier, I’ll probably even add more hooks for the GDT.on function.
Seems I dropped off the planet for a bit, I’m getting back into the developing mood though, so I’ll be getting an alpha version of this up soon (hopefully), I fixed up the things that were delaying me from returning and I should be more available for this now.
I have basically proven that all my plans are able to mod the game without a problem, now I just need to refine the crude methods, document everything, and make it nice, Coffeescript helps a lot, first up on my list however, since I just finished pretty much all the utilities is to start working on the functions, then to work on the classes, and then to add more advanced hooking to the system.
Unofficially, this API now contains the basis for everything in the GDT mod API with more advanced options, and contains some contents found in the UltimateLib, however, these current designs are rudimentary and may change, but the basic implemented items usable currently include (the OOP standard is however incomplete for the second):
Topics
Research
Platforms
Research Projects (the HW and RnD Lab research)
Staff Training
Contracts
Those item interfaces are unlikely to change, but may expand further. That has been new on the current version. (I have not tested the current interface, but experience with my previous designs have shown the current interfaces should work)