It's been several weeks since the last update to this site, mainly because despite much code written there was little to show for it. I've also been slowly learning php and CSS, which turn out to be not as fun as writing an engine, so you're currently looking at a half-completed website.
Firstly, I've uploaded what I'm calling the version 0.8 release of GameFS. GameFS is resposible for reading in data from disk or zipped files - more details are in the package. There's a bug or nine still to fix, but if you don't seek around within files much and you don't use the new iterators extensively, it should be quite functional at this point.
Nextly, I finally have a new screenshot to show (click the picture for a bigger version):
You can now see the line-of-sight stuff, which is responsible for the black parts (parts of the map not yet uncovered), and the shaded green parts (parts of the map uncovered, but not currently in line-of-sight). The green squares are two very poorly drawn units making their way up the screen. The red square is indicating the lower unit is selected, and the white rectangle is made with the mouse to select units. Update: Yes, the shaded green parts will be the traditional monochrome eventually - they're only green now because it only takes one line of OpenGL.
Behind the scenes, a number of components that make all this possible:
- GameFS, resposible for reading all the data, be it from disk or zip files.
- The CPU detection determining what functions can be used on the computer.
- The definitions parser/compiler/linker, which reads in information from text files that describe types of units and their weapons. These files will be familiar to modders who have edited TA's .FBI files before, but with slightly changed syntax, a some cool new flexibility. More on these later.
- The map reader, in this case showing the classic map Evad River Confluence.
- The input handler, which lets the user select units and type in the console.
- BoolArray, the class which holds information such as what areas of the map are visible in a compact bitfield.
- CellSystem, the class which keeps track of what units are where on the map with a nifty O(n) algorithm.
- Lastly, the graphics engine of course, which draws the map (no trees yet), and not much else at the moment. OpenRTS uses GLWF for platform independant OpenGL operation.
Stay tuned for more information. After I finish laying out the framework for the engine I'll figure out how to use CVS and upload all the source. Details on the def files, and a less buggy GameFS will hopefully be up shortly, along with a more complete website, that may or may not look anything like the draft you're seeing now.