Posts

Showing posts from March, 2010

OpenGL 4.0

Alright, so I'm a little behind the curve. I just found out about OpenGL 4.0. I'm really hoping that new versions of irrlicht come out with support for it as well as DirectX 11. The Enigma engine is supposed to be a next generation type engine based on open source technology but the core isn't up to date right now. This hasn't been an issue because I don't have any decent test graphics nor do I have a nice level for testers to run around on. Right now I'm still using the same level I have been using for many versions. All of my graphics people have basically bailed on me so I'm back to solo mode I guess. It would have been nice to get some results first but I guess it can't be helped.

On a somewhat related note I have Social Psychology, Statistics, and Project Documentation & Communication. The core class (doc & com) isn't too bad but the social psychology and statistics classes are a bit rough. Not that statistics is rocket science or anythi…

0.8.0 misses the mark.

After releasing 0.8.0 I became aware of a rather nasty bug in the code. There is actually a memory leak of all things. It is pretty quick as well if I didn't have 4 GB of usable ram in my system I would probably have noticed it sooner. I fixed it in the trunk but 0.8.0 is still effected by this bug. There is another smaller memory leak as well that I have yet to locate but I'm sure it is something similar. The memory leak in this case was simply creating a message and not sending it. Because it was never sent it was never cleaned up which obviously caused a memory leak. The problem was I was creating a message and based on some conditions either sending it or ignoring it. I changed the code to call the new clear method when the condition was not met. That solved the memory leak.

I'm thinking about having the message container class clean up if a message isn't sent before it is destructed. This may help prevent further memory leaks like this one in the future. As much a…

0.8.0 Released

Version 0.8.0 of the Enigma project is finally available. The key features of this release are NPCs and Video playback. Currently the video playback only works under windows but the driver architecture allows drivers to be implemented for various APIs/platforms. NPCs work on both Windows & Linux. Presumably they would work on Mac as well but I wasn't able to get a working build environment setup. There are no major bonus features but I large amount of work has gone into bug fixing and overall code correctness.

I was going to make a binary release and I have the files locally but I was unable to upload the files to source forge. Every time I tried it would just sit there at the wait screen for hours even after the actual transfer was complete. So this will be a source version again. For those of you downloading these source versions you will noticed I changed the organization of the svn tree. All Enigma files are under "Enigma" and the development trunk is under "…

cppcheck

I found a wonderful new (to me) tool to help with development efforts. It is called cppcheck and it does a pretty good job of spotting uninitialized variables, possible memory leaks, and things being passed by value when they can be passed by reference. I also noticed it spots functions that can be const but are not marked as such. I'm sure it can do more than this but these are some of the mistakes It caught in my code. I don't feel too bad though because the only memory leaks if found were actually reference counted objects that were part of the Irrlicht engine. So that means it's detection isn't perfect but in all fairness an actual programmer looking at the code without knowledge of the API wouldn't know that. But anyway they were GUI elements that get cleaned up when I clear the GUI. I did however forget to set the pointers equal to null which of course could cause problems if those pointers are accessed and checked for null. So the short version of the story …