I am currently creating a C# code framework to help me create my Unity games in. It currently has a random collection of features, including your typical managers:
Game Manager
Scene Manager
Score Manager
Input Manager
etc etc
as well as a game event system. It also contains various things that I consider useful and, most importantly, time saving. Examples of these would be player profile management (with a couple of data stores, but you can add more), an inventory system (that is designed not to be tied to any game type at all, but can be extended to do so), all the way down to simple helper classes, with methods like:
public static GameObject CreateWithComponent<T>(string name) where T : MonoBehaviour
I’ve tried to keep it to a basic structure (as best I could), have OCD about commenting all of my code, and have made it as decoupled and as extendable as possible.
A full list of my current hotch-potch of features is below:
As you might be able to see, this is mainly focussed around making programmers lives slightly easier, and may be especially useful for newcomers to scripting. Obviously, it wouldn’t feel right to me to even consider selling something like this, so it would all be free. I suppose my real question is: Would you actually download and use such as system if I worked on it a bit further and then released it when it is a bit more mature?
Hi,
Thanks for the replies. Do you have anything you think should be included in the framework? If so, I’d be more than glad to try and mix it in with the system in a way that would benefit the community as a whole.
So much work deserves respect, obviously. But personally, I don’t like to use custom frameworks (even simple classes but I admit it to be unusual), because I quickly got the feeling of either losing control over my project, either depending too much of updates.
And if it’s about modifying the custom framework I’d rather make it from scratch.
I’d definitely be interested and I’m curious already. As others I’m working on my own set of components and trying to glue everything the best way I can. Obviously many of these things were done over and over and I could reuse components from a framework, if I knew a solid one to start. Let us know when we can take a look at it!
I’d be interested in the Serialization aspect. The rest I prefer to write myself so I understand it, but maybe I’ll be so impressed by yours I’d change my mind.
Okay, I will be working on it a bit further over the next few months to get the first stuff cleaned up. What do you think about making it an open-source project?
I’m more of a “right tool for the right job” kind of person, so personally I would not like the idea of one giant framework to rule them all - wrapping what I already have access to. If no additional functionality is added by this framework, then I would really just find such a solution in my way.
haha yeah I kinda agree on this point , as you sometime don’t want to bloat your project with thousand and thousand of things when you can make something in your very specific use in few line…
I guess it depends on what does what and your real needs at the end
IMO you should drop it on GitHub or Bitbucket or Google Code as soon as you have a basic skeleton and set of libraries. Do not spend months working on it in closed doors if you plan to open source it one day. Release early, release often is a mantra for a reason. You’ll iterate and the code will change a thousand times, and releasing it to the world is more important than trying to achieve the perfect complete solution in a single shot.
I suppose I would fit into AngryAnt’s camp–the Unity API is the time-saving, easy-to-use general framework I’ve chosen to build upon and I’m only interested in code that saves me time adding major new functionlity–but kudos for offering this up and it looks like you’ve got at least 10 people interested.