it is the Milestones page ripped off my personal wiki.
placed here just in case you wondered about current development.

current target milestone is: 0.0.4-goinfasta

difficulty is rated 1-5, where 1 is easiest and 5 is most difficult

0.1.0 is preproduction stage

Table of contents


target: get up and running

completed: yes

difficulty: 1

  1. setup autotools scripts
  2. build
  3. test




target: get running version of mdlview with console, mouse and keyb; no 3d model loading/rendering

completed: yes

difficulty: 2

  1. write (portable) implementation of resourcemgr
  2. fix all resources to use mpOwner (usually engine ptr, to allow multiple instances of engine running)
  3. implement viewport through sdl
  4. write sdl mainloop
  5. transfer (and fix, if needed) fs from feditor
  6. write support for mouse and keyboard (mostly viewport stuff)
  7. remove 3d model loading/rendering dependencies from makefiles
  8. remove material/effect dependencies from makefiles
  9. transfer drawutil layer from feditor
  10. make it compile/link with stripped down mdlview (no 3dmodel loading - just console, mouse/keyb, etc)
  11. maybe make simple test (separate app) -- should be fairly good example code
  12. fix critical bugs (segfaults and broken rendering)
got SDL viewport,
made keyboard/mouse stuff portable (moved keycode translation into viewport, which is platform specific)
resourcemgr is done too
mainloop is done
waker 03:00, 3 Feb 2005 (EET)
i've got it all (compile/link stage)
the problem now is buggy code in font loading
the same may apply to texture creation and other stuff
tomorrow we'll see :)

waker 01:37, 6 Feb 2005 (EET)
managed to run it
found annoying bug in aterm -- it crashes when history is too long, should change term to something less buggy
fixed some bugs in drawutil, console, sdl viewport and font rendering
console bugs: calculation of visible lines count is broken down
viewport bugs: keystroke translation doesn't handle characters pressed w/ shift down
and, finally, it runs :)
waker 22:31, 8 Feb 2005 (EET)
fixed bugs in min/max (back as macros)
fixed empty texture creation code (was due to not unique names)
fixed console (was due to minmax and some bugs in viewport key translation code)
fixed basobject ctor to properly init refcounter (i misunderstood calling of default ctor)
waker 15:13, 9 Feb 2005 (EET)
sdl viewport is now properly handles capitals, etc through unicode field of keysym
fixed quitting (pushing SDL_QUIT instead of calling SDL_Quit)
waker 19:24, 10 Feb 2005 (EET)



target: get materials and textures working, applied to some billboard (e.g. console), triobject rendering, fixes to fs to support non-lowercased names

completed: yes

progress: 100%

difficulty: 3

  1. color conversion routines (font rendering, model loading)
  2. sdl vidmode enumeration/reporting with appropriate console stuff
  3. loading textures from png, dds, jpg
  4. effect files is a big ouch. simpliest way would be to get simplified materials (effect-less materials, which just uses some predefined texture inputs with no mods for now)
  5. simple opengl rendering (glDrawElements) of triobjects
done dds loading (no remapping to simple texture2d for old cards yet). btw, nvidia code is not working :P
though can't do sdl vidmode enumeration - very ugly api indeed
waker 02:10, 11 Feb 2005 (EET)
done jpg and png loading (loads to uncompressed format, GL_RGB, GL_BGR, GL_BGRA)
still some problems with jpeglib linking in makefiles
waker 22:03, 12 Feb 2005 (EET)
added some new files to cvs
added .cvsignore into all core dirs
should do something with all this garbage in root dir (spawned by autoconf)

waker 22:42, 12 Feb 2005 (EET)
done color conversion in drawutil
some work was done in vidmode enumeration (testing)
waker 21:38, 15 Feb 2005 (EET)
seems i've done all
rendering queue moves to next milestone (which is more suitable, since i'll be adding support for effect files)
gta3 ripped models/textures render just fine (simple glDrawElements)
portability layer was added to triobject
materials are stubbed to ignore effects
deeper analisis is required to see what is next
waker 21:54, 16 Feb 2005 (EET)


target: make portable effect files and effect-based materials

completed: yes

progress: 100%

difficulty: 5

  1. gl effect files
  2. engine reference application
  3. rendering queue (implementation written for lagsters was not a bad one, could be a good starting point)
  4. nvidia cg support
  5. wingdows support
  6. minimal checks in effect files parser to filter-out not working techniques
  7. fix music playback
  8. test fix all material stuff (float4x4 mostly)
  9. repair all bugs - ref app must run/exit cleanly
  10. find/repair memleaks if possible at the moment
  11. test filesystem against non-lowercased filenames
done opengl effects
trying to compile using mingw32
waker 03:48, 19 Feb 2005 (EET)
done dllexport
done dynamic loading of arb_multitexture for win32 version (through SDL_loadso.h)
compiled everything using msvc

waker 16:42, 19 Feb 2005 (EET)
lots of fixes in
added cg libs and cgshader class (untested yet)
waker 01:24, 16 Mar 2005 (EET)
spent whole lot of time to test and fix nvidia cg code on linux
1.1 and 1.2 are usable
keep in mind: don't touch shaders when compiling display lists.
simplified rendering queue is done, and we run on windows through GL.
i don't even see reason to support d3d now...
got to implement proper conditionals in effects,
also we have to write proper shader deactivation (ffp isn't working now when we have at least 1 shader in scene)
we now have some kind of dedicated Engine Reference App (ERA? :) in fegdk-tools/test
seems like 80% is proper value for 0.3.0 status.
waker 01:48, 27 Mar 2005 (EET)
reorganized file/directory structure
it reset all version numbers *sigh* but it was a must.
removing unrelated stuff from plan; adding related
waker 00:00, 31 Mar 2005 (EEST)

i'm at 99% mark, "check filesystem..." left.
waker 22:10, 3 Apr 2005 (EEST)


target: usable version of the engine and the first real demo

completed: no

progress: 40%

difficulty: 5

  1. glew integration
  2. support VBO, VAR, etc for faster geometry drawing
  3. model descriptors
  4. unify all scripts to one global syntax (i.e. make it possibile to store materials, effects, anims, etc into one big file)
  5. support hinting in materials (and related engine work) - e.g. marking object for shadow volume generation, or specification of water plane
  6. support for quaternion-powered moving objects (camera)
  7. start doing proof of concept in the form of 'jail' demo (fully perpixel lit, stencil shadows, 1 dynamic animated light, some static lights)
  8. as much as possible must be data-driven (start doing planned work on unix-shell alike scripting system)
glew is there
VBO is there too, but i'm not sure how it behaves on cards without element arrays support
doing unified scripting -- decided to do it now, not for 0.0.5
should move some stuff out to 0.0.5
waker 13:10, 23 Apr 2005 (EEST)
converted triobject stuff to feModel
added tangent-space calculation 'on-the-fly' (which really should be done in FGP, since we can't split vertices at runtime)
waker 23:30, 24 Apr 2005 (EEST)
tangent-space and similar stuff is now in FGP
got shadow volume calculation done, and test utility can shot that
waker 21:55, 24 Jun 2005 (EEST)
fixed backface culling issues
waker 22:15, 24 Jun 2005 (EEST)



target: unify script syntax

completed: no

progress: 0%

difficulty: not known yet

  1. support for positional sound/music
  2. support for stencil shadows (carmack's reverse, etc)
  3. support for lens-flares
  4. do stuff required to enable deferred data loading, which implies following steps
    1. all of the material and effect descriptors must be resident at any time
    2. load all scripts at startup (only once), but do not load associated data files (like texture images)
    3. when map is loaded - unload all unused data, and load all used data
  5. so we'll get minimal load times, minimal mem footprint, and we can do it so that we load all in order, so we minimize random data access (which is good for non-hdd storage media)