Original Post
On the latest meeting as well in the thread "Status report" we had a debate on what structure to use for the introcode and we decided to vote on the forums so that everyone can say their opinion. So please read the status-thread as well as the log of the latest meeting. Basicly, it is Kazade's:
Quote:Versus mine:
SDL/ SDL/lesson01/lesson01.h SDL/lesson01/lesson01.cpp SDL/lesson01/framework/basenehelesson.h SDL/lesson02/ etc. GLX/ GLX/lesson01/lesson01.h GLX/lesson01/lesson01.cpp GLX/lesson01/framework/basenehelesson.h GLX/lesson02/ etc. WIN32/ WIN32/lesson01/lesson01.h WIN32/lesson01/lesson01.cpp WIN32/lesson01/framework/basenehelesson.h WIN32/lesson02/ etc. This means that we can just zip up each lesson folder for each framework and upload to the site.
Quote:If everyone wants to have, besides an uber-package with everything, independant standalone packages for every lesson, then I can move everything in /introcode/lessons/ to /introcode/. That way you can create lessonX.zip simply by: #1: Create lessonX.zip #2: Add nehewindow/ #3: Add license.txt #4: Add baselesson/ #5: Add lessonX/ #6: Upload file to website. My structure sacrifices some time creating the zip to save LOTS of time when maintaining the code as (vs Kazade's) you won't have lots of duplicates of both the shared files such as nehebaselesson.h as well as window-backends. If we update something in say nehebaselesson.h then we will have to copy that new file numBackends * numLessons. This is a very bad practice IMO. With my structure we won't have to copy anything at all. The only thing we will need is to recreate the zips, but we obviously will also need to recreate them with Kazade's structure. Everyone please read the meeting log as well as the Status Report-thread and then vote or ask questions/leave comments. I, obviously, vote for my structure [smile]. Edit: Forgot: #1: My is a little less space-efficent because when you download the framework-folder you download all the backends, but this isn't a problem as its just some source-files. Fact is, it might actually be better for GD's servers as they will only need to handle one download per lesson instead of every lesson * every backend the user wants. Not that this really matters as our code is so small. #2:
/introcode/ /introcode/nehewindow/ /introcode/nehewindow/nehewindow.h|.cpp /introcode/nehewindow/glx/neheGLXwindow.h|.cpp /introcode/nehewindow/sdl/neheSDLwindow.h|.cpp /introcode/lessons/ /introcode/lessons/baselesson/nehebaselesson.h /introcode/lessons/baselesson/defaultlesson.h /introcode/lessons/lesson01/ /introcode/lessons/lesson01/main.cpp /introcode/lessons/lesson01/projects/ et.c. /introcode/license.txt
Quote:I'm going to move nehebaselesson.h and nehedefaultlesson.h to /introcode/baselesson/, but I can also move that folder into /nehewindow if everyone wants that. However, I don't think that is a good idea. The lesson-interface isn't part of nehewindow and thus logically shouldn't be in /nehewindow (I think this might confuse people later on). Also, we can simply mention:
Original post by Kazade I believe the new stucture is clean and modular, and also the base-class header and source files are in the framework directory, leaving just the lesson code and the backend code in the parent folder, this is perfect because it hides from newbies what they dont need to know. Once they grasp how to create a window, or spin a cube they can look into the inheritance and the OO design if they want to.
Quote:[Edited by - BBB on January 16, 2007 7:15:28 PM]
The baselesson-folder is part of the OO-design of the introcode. It will be explained later on, just make sure you have it there for now.