The following was a proposal for reorganizing the directory structure.
This has mostly been done now, since we finally moved to svn.
This text is thus obsolete
----
Boson's code module is very unstructured currently and some directories actually exist due to historic reasons only (e.g. bosound).
With the transition to subversion (once it is available on sourceforge) we will move some things around. I propose the following structure in code/:
- bogl (generic library)
- bodebug (generic library)
- bomemory (generic library)
- math (generic library)
- bobmfconverter (generic application)
- server (generic application - this might go to boson/ one day?)
- kgame (external, generic library)
- ufo (external, generic library)
- boson
Note that the contents of "bosound" are supposed to be moved to boson/sound and the "bosound" directory is to be removed.
The "boson" subdirectory contains all of the actual boson code, so it's structure is much more interesting:
- boson/data - all "data" files that relate directly to the code, such as *.desktop and *ui.rc files or program icons (that are used by *.desktop only).
- boson/common - source files shared by all applications in this subdirectory. pretty much the "libbosoncommon" files.
- boson/gameengine - source files that make the actual game (i.e. the "libbosongameengine" files)
this directory also contains the contents of boson/items (that directory should be removed).
- boson/gameengine/script
- boson/boufo
- boson/boufo/ufoext
- boson/boufo/bouic
- boson/boufo/designer
- boson/boufo/bosonfont - this is the current boson/bosonfont directory. we should move it to here.
- boson/sound - all files related to sound, i.e. the current boson/sound dir + bosound/ contents
- boson/startupwidgets
- boson/gameview
- boson/info
- boson/imageio
- boson/groundrenderer
- boson/modelrendering - all files that (directly) take care of model rendering, i.e. bomesh*, bosonmodel*, meshrenderer, ...
- boson/programs - the actual programs are moved here, i.e. the file main.cpp and all files that are required for the non-game programs (borender, bocursor, ...) only.
My main point here is the "boson/gameengine" separation. I really want this. However I don't care about the name - that's up for discussion, but I think gameengine describes it best.
The rest is considered to be a proposal only
- Proposal: move all (or at least most) of OpenGL rendering code into a separate subdirectory, e.g. renderer or something. The modelrendering and groundrendering directories would be either subdirs of this directory or would be merged with it. In addition to those, it would contain e.g. botexture.* boshader.*. Maybe also gameview could be a subdir of this directory?