🔒 Locked
Idea!
Advertisement
Original Post
I was just reading this topic when I came up with a interesting idea.
Instead of making a massive game, we could make a massive library filled with useful goodies. If anyone has a function or class that they feel is portable, and can possibly be used to make coding shorter, then it could be added to this library.
THIS wouldn''t require a massive collaboration, and would produce something useful for everyone.
Just an idea.
That would be a massive library, it would be cool if it could be organized well.
a class that gives yoo PIEs
class PI
{
private:
int i_pi;
double d_pi;
float f_pi;
bool b_pi;
public:
PI() : i_pi(3), d_pi(3.1415), f_pi(3.1415), b_pi(true)
{}
float getfloat() {return f_pi; }
double getdouble() {return d_pi; }
int getint() {return i_pi; }
bool getbool() {return b_pi; }
};
Very Usefull(TM)
class PI
{
private:
int i_pi;
double d_pi;
float f_pi;
bool b_pi;
public:
PI() : i_pi(3), d_pi(3.1415), f_pi(3.1415), b_pi(true)
{}
float getfloat() {return f_pi; }
double getdouble() {return d_pi; }
int getint() {return i_pi; }
bool getbool() {return b_pi; }
};
Very Usefull(TM)
lol...boolean pi
Sounds like a good idea but...
You''d have to get everyone submitting code to use one code convention. A library that has multiple naming conventions will look like a car held together with duct tape.
Some people get defensive about their code, and will stand by it even in light of proven better solutions.
A lot of submissions would have to be rewritten. This can be anywhere from renaming methods/functions to having to write wrappers for other peoples screwy architechure.
And then you''d have to get people to write documents on how to use their code. Its pretty easy to do that though, just say "Unless its documented, it doesn''t get used".
Then there''s the licensing issues. Some people will want to sell it. Others will say BSD, and others will scream GPL. This will be like getting everyone to agree on pizza toppings, the more people, the more disagreement, and when you come to a concensus, there will be a lot of people having to settle (and still be bitter about it).
If you can get all these sorted out, then good luck. Its probably better to decide before hand.
University is a fountain of knowledge, and students go there to drink.
You''d have to get everyone submitting code to use one code convention. A library that has multiple naming conventions will look like a car held together with duct tape.
Some people get defensive about their code, and will stand by it even in light of proven better solutions.
A lot of submissions would have to be rewritten. This can be anywhere from renaming methods/functions to having to write wrappers for other peoples screwy architechure.
And then you''d have to get people to write documents on how to use their code. Its pretty easy to do that though, just say "Unless its documented, it doesn''t get used".
Then there''s the licensing issues. Some people will want to sell it. Others will say BSD, and others will scream GPL. This will be like getting everyone to agree on pizza toppings, the more people, the more disagreement, and when you come to a concensus, there will be a lot of people having to settle (and still be bitter about it).
If you can get all these sorted out, then good luck. Its probably better to decide before hand.
University is a fountain of knowledge, and students go there to drink.
Yeah, it would require someone (if not several or lots of someones) to keep everything under control. Verifying that things worked, laying things out, and managing the documentation would be a huge task from the start.
There would also have to be a revision system; if code gets distributed with flaws there has to be a way to note what gets changed and what the new behavior implies.
About documentation and sytle, we''d have to have a "conform or don''t be included" policy. To do otherwise would just result in more work for the editors. A submission form, documentation form, and style sheet would be necessities.
About liscensing, it makes sense to either go with [L]GPL or another really loose agreement. Just to keep things simple, each contributor should have to agree to not hold anyone liable who happens to abuse the code. There''s no way to enforce it, and anal-retentive contracts will just turn people away or encourage them to steal - "Submit if you''re not opposed to having your code used by someone who won''t give you credit" isn''t attractive, but it''s rather practical.
So, I think that by having strict submission guidelines and dedicated, consistent internal controls, we''d have myriad helpful submissions from people who want to help the community.
Anyone wanna make it happen?
Peace,
ZE.
//email me.//zealouselixir software.//msdn.//n00biez.//
miscellaneous links
There would also have to be a revision system; if code gets distributed with flaws there has to be a way to note what gets changed and what the new behavior implies.
About documentation and sytle, we''d have to have a "conform or don''t be included" policy. To do otherwise would just result in more work for the editors. A submission form, documentation form, and style sheet would be necessities.
About liscensing, it makes sense to either go with [L]GPL or another really loose agreement. Just to keep things simple, each contributor should have to agree to not hold anyone liable who happens to abuse the code. There''s no way to enforce it, and anal-retentive contracts will just turn people away or encourage them to steal - "Submit if you''re not opposed to having your code used by someone who won''t give you credit" isn''t attractive, but it''s rather practical.
So, I think that by having strict submission guidelines and dedicated, consistent internal controls, we''d have myriad helpful submissions from people who want to help the community.
Anyone wanna make it happen?
Peace,
ZE.
//email me.//zealouselixir software.//msdn.//n00biez.//
miscellaneous links
Eh, I just wasn''t sure which was the less restrictive one, not implying both. LGPL it is
I think a code snippet library would be more useful. The submitter would post the initial docs, and could maintain them. I suppose if you wanted to use another piece of code in the library in your code, you could have a way to establish dependencies. That way people could import the classes and funcions in their own code without being restricted to the conventions of "GDnet.so". I think I will have this feature on my website(about mud coding)
It is interesting, but much work to do. If it is a project (game etc), framework, engine, or snippet library, would all need their own rules and management. For projects, look at the Apache HTTP Server project and read about their way of doing it; using a CVS repository, style guidelines, procedures when commiting changes, rules of who is allowed to commit etc. A framework or engine would need to be handled the same way. A snippet library would be quite different, though, and it wouldn''t be as motivating, I think. As I envision such a library, would be to categories function [collections], classes, structures, etc. in a good way, and where there can be several versions (implementations) of the same function, and users can select which one is best for their purpose.
---------------------------------------------
"VB is a disease"
---------------------------------------------
"VB is a disease"
I always thought it would be cool to have something like OpenGL, except for games..
This wouldn''t necessarily include the implementation, but just a spec for the interfaces and how everything should operate..people could create their own internal versions( with their own extensions), as long as there was a solid spec for the API..
It would have provisions for sound, graphics, etc., all the things you would normally have..of course, the core engine would only have the main interface functions setup so there was a standard way of dong things, there would have to be callbacks setup so that each platform could utilize it''s own specific version of sound system, rasterization, etc.
This is how my latest engine came to be..once I wrote the spec for how each system should operate and what the interface needed to be all I had to do was fill in the blanks(no small task)..
"Like all good things, it starts with a monkey.."
This wouldn''t necessarily include the implementation, but just a spec for the interfaces and how everything should operate..people could create their own internal versions( with their own extensions), as long as there was a solid spec for the API..
It would have provisions for sound, graphics, etc., all the things you would normally have..of course, the core engine would only have the main interface functions setup so there was a standard way of dong things, there would have to be callbacks setup so that each platform could utilize it''s own specific version of sound system, rasterization, etc.
This is how my latest engine came to be..once I wrote the spec for how each system should operate and what the interface needed to be all I had to do was fill in the blanks(no small task)..
"Like all good things, it starts with a monkey.."
we should use 0, it''s waaay cooler than NULL
Perhaps a 3-day or so ''trial'' period should be standard for all entries?
During this time, the entries would go into a sort of buffer that is not included in the actual library. Registered GameDev members would be able to cast votes on whether the entry is valid library material. Code would be judged on completeness, readability, usefulness, etc.
A quota of votes (majority, 2/3?) would then send the piece into the library. If the entry did not reach the quota within the trial period, it is deleted, and the applicant is informed.
How''s this sound?
During this time, the entries would go into a sort of buffer that is not included in the actual library. Registered GameDev members would be able to cast votes on whether the entry is valid library material. Code would be judged on completeness, readability, usefulness, etc.
A quota of votes (majority, 2/3?) would then send the piece into the library. If the entry did not reach the quota within the trial period, it is deleted, and the applicant is informed.
How''s this sound?
We would need editors, to select what is good and what is not. To ease their burden, the code could be posted in a thread, for everyone to criticize and try, but I don''t think that a democracy would work well for technical questions.
Boost''s mailing lists/newgroups are pretty effective, and their project is quite similar to this one, AFAIK.
Anyway, this idea should be posted in a tech forum. The editors can''t be anybody. It''s a big commitment, and it requires a lot of knowledge and experience.
Cédric
Boost''s mailing lists/newgroups are pretty effective, and their project is quite similar to this one, AFAIK.
Anyway, this idea should be posted in a tech forum. The editors can''t be anybody. It''s a big commitment, and it requires a lot of knowledge and experience.
Cédric
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement