BorealisClasses is a set of classes that I am creating for the RPG I am working on. I realized early on in the project that there was a lot of functionality I wanted for both my game and my endeavours in C++ programming in general. Rather than create a solution specific implementation I decided I could make the code more generalized in order to make it easy to integrate in any future project I may work on. I also decided that if I designed my code well I could potentially sell it as a cheap (~5-10$) plug-in that could be used with DarkGDK to quickly and easily fill in a lot of missing functionalities. The current state of the project is such that there is enough functionality to release a "beta" version for both testing and feedback.
Due to the nature of this project I do not believe it will be possible to port to DarkBASIC or DarkBASIC Professional.
[--Legend--]
= Done!
= Working on or partially complete.
= Not started yet.
[--File Zipping--]
BorealisClasses contains a wrapper for the "Info-Zip" zipping library. This allows a program using BorealisClasses to zip and unzip files; password encryption is supported for extra security.
Password protection - All currently implemented zip functions can create or read password protected archives.
Creating Zip files - Currently you can create a zip archive from a list of files, however there is some functionality I still need to add such as customizing the internal structure of the generated archive.
Unzipping an archive or file - This part is all but complete, I still need to implement code to change the location the program unzips to.
Unzipping a file directly to a Memblock - Using BorealisClasses you will be able to load a file from a (password protected) zip archive into a Memblock (no files should ever be written to the disk). This will create an easy method for securing media within your project.
Modifying a zip archive - This functionality is going to be tricky to implement due to limitations of the library I am using to implement file zipping.
[--File Logging--]
Event Logging - BorealisClasses provides a very easy to use method of creating an event log for your program.
Error Logging - BorealisClasses provides a very easy to use tool for logging errors within an application.
[--XML Reading and Writing--]
Have not begun this section.
[--INI File Reading and Writing--]
Have not begun this section.
[--General Functions--]
It is very hard to specify any further additions to this section as functions in this section are usually things I add as I think them up.
Functions for error handling when something goes wrong with BorealisClasses.
DeltaTime - A function that returns the amount of time since it was last called. This allows timer based movement to be implemented extremely easily.
Renaming and removing files - A simple wrapper around provided Win32 API functions. I know DarkGDK includes these by default, but I feel it is nice to have them anyway.
Returning the AppName - Returns the name of the application that called the function. Provides only the name of the executable, does not return the file path or file extension.
Generating an EULA - BorealisClasses provides a function which writes an EULA to your hard drive. This EULA requires a small bit of editing since it cannot denote nationality correctly. The class asks you for your country, for example it will write "... products purchased within Canada.." but it cannot write "... under Canadian law...", it would write ".. under Canada law...".
Date Code - This will generate a date code that will represent the date which the program was compiled on. This is useful for things such as version numbers. If your project was compiled on May 16, 2009 the function would return the value would be '20090516' ("year""month""day") as an integer.
[--World Effects--]
*** Excluded from beta versions *** This will include a complete and extremely easy to use system for generating realistic backdrops and weather effects that will completely replace the usage of sky boxes or sky spheres.
Day and night cycle - I have the basics for this system in place; I just need to figure out good lighting values for each time of the day.
Sky Effects - This includes generating clouds as well as the sun, moon, stars, and any other object that would appear in the sky.
Weather Effects - This includes things such as simulating rain, snow, etc. I am planning on having this be heavily integrated with the other aspects of the World Effects in order to generate realistic weather.
I am including the latest beta version of BorealisClasses and documentation with this post. Please provide any feedback and/or suggestions here.
------------------------------------
Currently 1500+ lines of code into an "over-the-shoulder" action RPG with combat based on rag-doll physics.