HCORE 3D Engine was a project, on which we intensively worked in years 2002-2005. Our effort led to formation of an universal and OS-independent framework for creation of 3D games and visualizations.
Development of HCORE (Homo Computers Original Research Engine) started in the year 2002, when first classes for 3D-space transformations and various graphic format support were created. In the following years we spent hundreds of hours with study and implementation attempts of 3D computer graphic algorithms, like optimalization, collision detection etc.
Implemented parts:
support for 3D graphic formats (3DS, MD3, BSP)
support for 2D graphic formats (JPG, BMP, TGA, WAD)
optimalization - Quadtree (3DS, MD3)
optimalization - Octree (3DS, MD3)
optimalization - BSP (binary space partition) (BSP)
optimalization - rendering with usage of vertex arrays
physics - collision Sphere vs Scene Polygons Ray Tracing
physics - collision Ellipsoid vs Scene Polygon Ray Tracing
physics - simulace působení gravitace
scripts - parser of Q3 shaders for scipting of alpha blending of textures and movable parts of scene
scripts - programmable console with a possibility of export history as a script, which could be reused
visual efects - 3D object transparency (sorting of a transparent polygons in a scene)
visual efects - lens flare
sound efects - playing background music and sounds
HUD - system for easy creation of ingame main menus and buttons
centralized engine control center with possibility of change resolution, enable/disable texture and fog mapping, change rendering mode, change quality of textures etc. during running of an application
Unimplemented parts:
visual efects - particle systems
visual efects - vertex shaders
zvukové efekty - positioning of sounds in 3D space
HUD - system for ingame editation boxes, combo boxes etc.
AI
Used technologies:
SDL
OpenGL
OpenAL
FMOD
Disadvantages of HCORE, abandonment of the project:
Raw skelet of HCORE was finished after four years of a hard work in the summer 2005, main reasons for abandonment of project were:
poor documentation (in spite of detailed comments in the code, absence of a development documentation caused bad orientation in the project, which contained thousands of source code lines)
immoderate robustness (an effort to most simplify development of end products in HCORE has led indeed to creation of functional game base on few lines of code. But on the other hand this effort has reduced the variability of system and has hidden many options to the end programmer.)
dependency on OS Windows (despite of we used OS-independent libraries, the development under Windows with a bad attention to selection of "ordinary" c++ libraries (such conio etc), caused a low portability of the HCORE code. This problem was later partialy solved.