Pseudo Random Journal Generator Predictable permutations on programming, technology, and more.

2Apr/070

adam_03apr2007.plan

Well v.6 is FINALLY released.

I cut out a few things I had wanted to get done so I could finally just push it out the door.

I will post a more complete summary of the Road Map ahead as well as update screen shots where they exist tomorrow.

Also I'm looking at bringing on another developer during the development of v.7 which will be awesome if it works out.

v.7 is going to be a lot of improvements in many many areas as well as adding in the last features required to make a game with the engine.

Any way I'll spend more time tomorrow on this.

- Adam

Filed under: Uncategorized No Comments
30Mar/070

adam_31mar2007.plan

Haha well, another blown dead line. I did code for a few hours today, got a lot of polishing done. But then I went over a friends house and started grilling and drinking, so I didn't get to finish everything.

Any way out of a list of 10 things I checked off 6. One of the things left to be checked off would be better implemented if I just sucked it up and went ahead and finished something I was going to hold off on till after the release. I don't think it will take too long to implement any way so might as well do it the right way the first time.

It's really starting to get kinda exciting watching everything finally take shape.

But I'm going home for the night tomorrow so don't expect a release till maybe Sunday.

Oh well...

- Adam

Filed under: Uncategorized No Comments
28Mar/070

adam_29mar2007.plan

Well I hooked up and debugged the new camera system with the FPS camera. Then I used the windowing system to design the first version of the main menu. This required finally implementing the last part of the Mode Service which I had been planning for months. So now there are two distinct game states which are managed by the mode system.

So now you load into a menu, load a map from there, then once loaded, you can press escape to return to the menu, and from the menu you can exit the program.

I also went through and implemented (but as of yet have not tested) the more advanced memory management for the Texture Manager.

That is about half of the polish and tweaks I have slated for this release. So expect to see a release probably late tomorrow.

Also it's my birth day, so no more work will be getting done to night!

- Adam

Filed under: Uncategorized No Comments
28Mar/070

adam_29mar2007.plan

I put in QUITE a few hours today. Encountered some very frustrating problems, but long story short is the new camera system is implemented.

Going to take some tweaking and polishing, but I have the engine loading into a menu, then from the menu, then you select the map you want to load by pressing the correct button, it loads and you go from there.

I still have to work on cleaning up the memory and changing maps and just lots and lots of little polish things. Here is the list of polish left before the release:

- Finish Texture manager memory manager

- Polish memory clean up code for unloading BSP maps

- Implement new controls to go back to the menu system

- Re-implement FPS HUD 2D elements into the new camera

- Re-implement vertical movement hack

And thats it! I plan on having 2 maps in the new release which you will be able to select from the menu. And if I get enough time maybe I'll work on new menu graphics because the current ones SUCK.

I'm freaking wasted. Night.

- Adam

Filed under: Uncategorized No Comments
25Mar/070

adam_26mar2007.plan

So lots of time passed and very little work got done.

As usual some odds and ends I thought of were tweaked and fixed as I was coding unrelated things. Then spring break came along and I didn't even see a computer for 7 days [ very nice 🙂 ] Then I came back and bought the first game I've paid for in 6 years, STALKER, which took up more time.

Anyway long story short ( too late ) I finally started coding again. Wrote the the first Input Widget implementation which is a simple button. Then went back and implemented input handling in the Windowing Service, and Window Managers which was quite a bit of work, but you can now switch which window is active and it all works nicely. I'm currently finishing hooking up the input to the actual buttons. Which will fire events to any subscribers when pressed. And that should be it for now for the Windowing sub system. It really is a truly robust system.

Later I plan on implementing a few new things:
1. Separate boarder quads to support separate boarder textures ( visual improvement )
2. Theme manager, to handle different window visuals easily.
3. Font manager, not strictly a Windowing component but closely related.
4. Resolution scaled windows and such.

But for now, once the buttons are finished, I'm going to get back to the new 3D camera system, finish that in 1 code session hopefully, then bug test and tweak for the v.6 release!

So stay tuned.

[edit]
I didn't think this warranted a whole nother .plan file so I'll just append it to this one. I finished hooking up the input to the Input Widgets, and have the first successful use of a button fireing an action, and a special action handler class responding accordingly. So it's all done! The window system is done for the moment. I kinda can't believe it. Maybe tomorrow I can get to the camera system!
[/edit]

- Adam

Filed under: Uncategorized No Comments
3Mar/070

adam_04mar2007.plan

Well, did a bit more work over the past few days. A lot of it in planning and design, and more in C++ research.

Finalized the basic widget design and implemented a 'Label' widget which can be used to put text labels on a window. Next up is InputHandlingWidgets which are pretty much designed, just need to implement one to hash our the unforeseen nitty-gritties that always pop up. So I'm going to implement a simple button class which is actually the last GUI related class I will be implementing for this release. Also going to implement a bit of functionality in the 2D Display Graph nodes to mimic their 3D counter parts so that all nodes under a 2D translation node will share that 2D position shift. It will simplify widget management a bit.

Thats about it. I'm going to be frigging pumped when that is all done. All thats left after that is hooking up the input to the WindowManagerService which will manage active windows etc, writing the clean up code for unloading BSPs, and implementing the new Camera system.

And of course, there will be small tweaks and polishes to other things before the release. One thing for sure is I'm going to finish the stage 2 texture memory management as I have been calling it. This simply tracks how many things are using each texture, and when nothing is using a certain texture it will free the memory. The last improvement was to check if a texture had already been loaded and to not re-load it. So this is just really finishing that system.

Also been doing research concerning my performance issues and have almost certainly pegged the biggest culprit. But I have many other things to focus on at the moment so that will come after the v.6 release.

Any way I've been on a role lately getting at least something done every day, so lets hope it continues and I get a release out soon-ish!

Filed under: Uncategorized No Comments
26Feb/070

adam_27feb2007.plan

Well this is less of a progress update on Black Engine and more of some mindless ramblings and thoughts.

Since I presented Black Engine at the end of my Independent Study it has grown by over 3,000 lines of code. So what is diffident you might ask? Nothing. At least thats what the casual observer would see. It still looks exactly the same.

Under the hood though there have been a TON of changes. From the asynchronous logger to the configuration class to the centralized texture manager. Even smaller things like a much tighter and cleaner build environment and finally a working Linux build target, the kinetic resource system was greatly improved in concept and design. More recently outward appearances have finally started to change with the GUI classes coming along. These are fairly close to completion too.

But I just read something I've been mulling over. "Perfect is the enemy of good". I've been wondering if I have been guilty of this. Obviously very little work has gotten done this month, but I have been researching the dark corners of C++ learning the language more and more intimately. And tonight when I began coding I started applying that knowledge. Going through the class hierarchy altering every class with explicit constructors and removing their default constructor I never wanted in the first place.

See, sure this is better, and in fact this is what I had wanted from the beginning but hadn't known about the explicit key word. And my code is now cleaner and tighter. But what if I had spent that time finishing the last of the GUI classes. What if all the time and love I've put into pre-existing code since the tech demo was spent on new code. Would I have my next public release done already? Probably, but who knows. Really at heart I am a perfectionist. And I try to practice a strongly iterative development approach so I actually get project finished. But I ALWAYS find my self going back and tweaking every little thing, these projects become my babies, my works of art. So maybe perfect is the enemy of good, maybe it does kill many promising projects. But I need to find a way to use my perfectionist tendencies to create exceptional projects that still actually get finished. Because, whether I like it or not. I am a perfectionist.

Filed under: Uncategorized No Comments
7Feb/070

adam_08feb2007.plan

So. so. tired.

Trying to code but making just really stupid mistakes.

So I'm stopping for the night. But I did get quite a bit done.

The WindowManagerService used to just store and Manage Windows. Now, to provide more flexibility, The WindowManagerService is basically a wrapper that stored and manages WindowManagers. Then, WindowManagers store windows. So a lot of functionality was moved to the WindowManager and a lot was added to the WindowManagerService. The end result is very similar to what it was with a few small exceptions syntactically when creating windows. But what you get is more flexibility.

Windows and Window Managers can now be displayed and hidden which was the whole goal. Next up is layout managers, then buttons and labels.

So slowly getting there. Hopefully next time I will be a bit more with it.

Oh on a side note, I've been meaning to post about this for a while. I did my first big test of my new asynchronous logging class. Logging about 10 things per potential collier during a collision detection research test. Usually about 20 - 50 colliders per-frame, so thats between 200 and 500 write operations per-frame. The result! No noticeable frame drop! Ya, made me pretty happy 🙂 I'm beginning to use the new message levels too, but I think I'm going to make some minor modifications to that at some point.

- Adam

Filed under: Uncategorized No Comments