BADJ Day 13: How the project is organized
I’ve been asked quite a lot how we organize our projects. I tried to explain the best I could and today I was going to write a huge blog post about it. Instead of that, I’ve put 9 minutes of video that show how and why Bruce Ali is organized the way it is.
By the way… choose 720p and full-screen it.
Posted: October 8th, 2010
at 1:09pm by Vlad
Tagged with Bruce Ali, FlashGameBlogs, Software Engineering, Technology, Testing
Categories: Dev Journal: Bruce Ali
Comments: 1 comment
BADJ Day 12: Quick Update
Today was FANTASTIC! A super productive rainy Thursday brought the rewrite of the blit core. Marco complained he can’t see anything… well… debug and tracing is all I can offer right now since textures and blit entities are not working yet, but at this pace a lot of goodies will appear soon.
To celebrate the sensation of being (finally) at full speed, I’ll prepare a sweet thing tomorrow that I hope will be good for new developers and bring a lot of discussion for more experienced ones. Stay tuned!
Posted: October 7th, 2010
at 11:09pm by Vlad
Tagged with Bold Pixel Engine, Bruce Ali, FlashGameBlogs
Categories: Dev Journal: Bruce Ali
Comments: No comments
BADJ Day 11: A successful frustration
So I coded and recoded, tested and retested a Object Pool class with a high degree of success and frustration. I wrote and tested three different pool managers, here’s the story…
Objective: Centralized management of pools
This one was easy. There is a PoolManager that has a static method to get a pool for a certain class. If the pool for that class does not exist, it is created, if it does, it is returned. Objective achieved.
Objective: Lightweight pools
I don’t need pools to be amazingly complex, I just need the pools to get the job done, which is: be faster at getting new objects at the expense of memory. That didn’t go very well. The pools were lightweight alright, but I was not able to make it any faster than creating a objective directly.
This lead to the three versions of the pool manager and still the best performance gain is below 5% for any Bold Pixel entity. I was so frustrated, but then I saw the light!
Not my fault really
After testing and more testing I had a epiphany! What if Bold Pixel’s entities are simply too light to make pooling worth. It would not be something I’d consider. It really never crossed my mind that a instancing a object could be faster than getting it from a linked list kind of pool, but it is and the classes I was dealing with are somewhat heavy considering the inheritance and and composition of several.
The highest gain I got was 8ms in 1000 object. Creating 1000 objects took 54ms and getting 1000 objects from the object pool took 46ms.
The unexpected success
So either my classes are very light or flash behaves rather poorly in managing this. So I tested against some movie clip I had around. Creating 1000 movie clips took 102ms, almost doubling the worst case scenario.
Not only I was happy to note that my classes are lightweight, both pool manager and entity type classes, but I also proved that getting movie clips would make a difference.
Conclusion
I’m not happy with the pool manager for now, but I’ll work on it some other day. It gets the job done, but the objects I really wanted to make a better use of pooling are the ones that problably will have less impact.
If I regret anything in this bits of code is that I over engineered it at first. Tomorrow blit engine!
Posted: October 7th, 2010
at 12:56am by Vlad
Tagged with Bold Pixel Engine, Bruce Ali, Design Patterns, FlashGameBlogs, Software Engineering
Categories: Dev Journal: Bruce Ali
Comments: 8 comments
BADJ Day 10: Second Week Balance
Good evening traveler! Vlad here to serve you… and by the way this is our 100th post!
I was just opening the blog admin panel to write this post as someone no need being *cough* Rasmus *cough* mentioned that we were not updating Bruce Ali’s journal… well that is true and the reason for it is that this week was still slow unfortunately but for wonderful reasons, most of them at least.
Hajime is now on Flash Game License for developer viewing only currently which is an important milestone. All objectives related to the Nape wrapper are met and now it’s time to solve the bliting part in order to have gameplay.
Looking back I feel I’m a week late, but with stuff I would need in some weeks already done, so maybe I feel we’re late, but it will payoff later. Right now I don’t know… still… while a lot of people were complaining about their jobs I was coding a box that explodes when it hits the floor… this has to be the best job ever!
Oh… click the stage to restart the simulation.
Posted: October 1st, 2010
at 10:22pm by Vlad
Tagged with Bruce Ali, FlashGameBlogs, Nape
Categories: Dev Journal: Bruce Ali
Comments: 2 comments
BADJ Day 5: First Balance
Vlad here to make a balance of this first week of development. It was my plan to show the power of Nape wrapped in Bold Pixel but it was not possible. So I decided to write a balance, sort of a week post-mortem!
What went right
Nape went right! I couldn’t be happier about it! It seems that Luca didn’t forget anything.
The project is superbly organized. From a coder point of view, everything is accessible and integrated, I managed to have debug, release and testing projects all-in-one (should make a tutorial about that!) in Flash Develop and that really raises my current and future productivity to a whole new level. We’ll see how it works for Marco and David, but I think it will be alright.
What went wrong
Basically, it was a slow start. The physics wrapper is in the “almost there” for a couple of days, which means it is taking a couple of days too long. There is a good side though since objective for the wrapper at this point was to just start it and almost all functionality is present and totally abstracted, so we might squeeze some development time from it in the future.
Both me and Marco had some non-Bruce-Ali stuff to manage… that took some time too, but it was worth it since it would bug us sooner or later, so might as well be sooner!
Next week
I really want to move on to the gameplay. That will introduce several systems Marco wants to use and that I want to build ASAP.
On a personal note, I admit I feel somewhat rusty… too much time without developing any larger game project I guess, but I’m hoping (and this is mostly a personal desire) that during next week I can shape up again.
See you again next week!
Posted: September 25th, 2010
at 12:03am by Vlad
Tagged with Bruce Ali, FlashGameBlogs, Nape, Physics
Categories: Dev Journal: Bruce Ali
Comments: No comments
