What about having an official source code repository. Something that includes a multitude of example projects showing how to do certain things such as creating a directx or opengl window or an example input class or a starter entity-component framework. Code should be well written, straightforward and well documented. It should also have detailed information on getting setup on someone's machine. The goal would be to give gamedev people a great starting point and to give excellent examples on new concepts. All of these articles that are being written could have a place in the code repository so that someone could access the code. You could even have a community engine that people could contribute to. Hopefully with even community assets that could be freely used for things such as temporary placeholders or to show the functionality of say an animation system that has been added to the official source code repository. The source code repository could be broken up by language or even have separate repositories for different languages.
Crossbones+ - Reputation: 6995
Posted 12 April 2013 - 09:48 AM
I think well written articles are preferable to a "source code repository" (though I'm all for articles containing sample code). A source code repository encourages people to copy 'n' paste code instead of actually learning how and why it works (which is what an article focuses on). It's tough to put proper explanations in code, but with an article, you can easily go into detail about what each function is doing, why you set things up this way, etc and it can contain pictures.
I also think a "community engine" would be infeasible because a) people use various languages, b) who has commit rights? c) do they really have time to manage it? d) how would it be preferable over the other engines, frameworks, and libraries that already exist? e) I don't think it would realistically live for very long (i.e. I think someone might get excited, but it would be abandoned relatively quickly), etc.
Members - Reputation: 376
Posted 12 April 2013 - 12:36 PM
I don't think articles and "source code repository" are mutually exclusive. As a matter of fact, I was imagining they would work together. I just don't want to have to copy and paste code and put it all back together in some files from articles. Plus typically, articles are only going to be written with one language and it is doubtful someone will go back and convert the code to another language.
A) As I mentioned, have either multiple repositories (one for each language) or have a folder for each language. I would imagine that there would be people who would duplicate solutions across multiple languages depending on their language of choice so I don't think that would be a problem.
B) As far as who is in charge of this source code repository I would do something like the Crossbones group that was recently created. Just get people to volunteer and then eliminate those who are not doing a good job. Let everyone contribute, but just have a group to review the contributions and commit them.
C) I don't think anyone can answer that. How did they answer "Do they have time to write articles?". You just need to try and see what happens. What is the worst case scenario? You had to setup a repository and some permissions and it just sits idle. Most likely though you will have a repository of solutions that people can study, adapt, and integrate into their own projects.
D) If you are talking about the engine part, then I would say that would have to be investigated to see if there would be any type of benefit. There may not be. But I would like to see a simplified engine that doesn't have all of the latest features that is just designed to be kind of a learner engine. It is designed to learn the concepts and pieces of how an engine can be put together following some emerging and standard concepts. It should be simple and straightforward providing a lot of code documentation. Articles themselves can link to the code repository to show an example. As far as the other code samples/small solutions it would be different because frameworks are all about being totally encompassing. There are very few frameworks that are out there that are just there to show a certain concept. Most frameworks and engines are trying to be feature complete and have been tuned for various reasons. Typically they are also not well documented and there is no articles associated with the different concepts that they implemented. There is probably no articles on how the SceneManager in Ogre was developed and how it works and why they made the decisions they did. It is also surrounded by a million other bits of code that someone has to dig through and understand just to understand the SceneManager concept.
E) Who is to say the recent article writing is going to live long? Does that mean they should not try? Again, I believe the repository should be linked to by the articles and that they should complement each other. I don't believe an article is the only place to keep code snippets as they are doing currently. I mean look at CodeProject.com. They have code in the article, but they also include a download of the source code for the concept they covered.
Edited by landagen, 12 April 2013 - 12:38 PM.
Senior Staff - Reputation: 5520
Posted 12 April 2013 - 05:28 PM
We'll be opening up a snippet repository as well.. nothing but simple bits of code kind of like a gist.