Bold Pixel Engine Released

Hi all!

Great day today! We are releasing Bold Pixel Engine today. Along with this release we are also opening our YouTube channel.

Is that nice or what?

Visit our Bold Pixel Engine Page for information and download and our YouTube channel for the first glimpse of it.

See you later…

Posted: February 7th, 2010
at 7:23pm by Vlad

Tagged with ,


Categories: The code of VGS

Comments: 1 comment


Bold Pixel Engine Blit Performance Test

Hi all, Vlad here!

Wrote a quick performance test yesterday comparing movieclips with our own blit engine. Usually tests are performed with a number of objects. To test several loads, usually a different number of objects is used to test the results. I didn’t want that since we all know that many games don’t have a fixed ammount of objects rendered. Even if object pooling is used, what concerns me is the objects rendered.

What I did was to create one object per frame and then move all the existing objects away from the starting point. This would give an instant visual reference about how well blit performs against movieclips.

Give it a try and then read on.

Bold Pixel Engine Blit Performance Test

Tried it? Cool!

Movement is time-based in both tests, this means that test 1, ran with movie clips took longer since the spread is bigger. This indicates a frame drop, but if you run it again and notice that there are different spreads, so not only it drops but it drops in a rather inconsistent way. Obviously the test also took longer to conclude.

On the other hand, blit engine performs rather smoothly, to the point where frame drop is not inconsistent and allows the objects to stay pretty close to each other. Above that, the test is damn quick compared to the first one, proved by the small spread (although I could’ve included a clock, I admit).

This is nothing we didn’t already know, I agree! The true testing will be with animation, rotation and scaling of blit entities.

Posted: February 4th, 2010
at 11:52am by Vlad

Tagged with ,


Categories: The code of VGS

Comments: 13 comments


Player.IO: A Huge Step Forward

Are you into developing multiplayer games? I bet you are! Have you been through the headache of supporting it? I bet you haven’t!

In the beggining there was darkness…

Most developers dream of adding multiplayer games to their portfolio and the less wise or experienced often run to embrace a multiplayer project from any tool that offers a tiny bit of ease of use and more than often they either fail or face the fact that their game is not half of what it could be and already took twice the amount they thought it would take.

A good idea: Nonoba’s MP API

Sometime ago Nonoba offered a great API for multiplayer games. We tried it and technically we loved it. It was easy to implement, server-side code was written in C# (which brought tears of happiness to our eyes) and we did a rather small but entertaining game in a couple of days. Enough to say that from a technical point of view, Nonoba proved its point.

Unfortunately from a commercial point of view this API was not interesting for developers such as us, that want to license games. All multiplayer games powered by Nonoba’s MP API showed Nonoba’s branding, which is only natural: they support the servers, they have the service, so if we want it, we have to stick with it, after all, it’s free! All in all Nonoba’s multiplayer API is amazing for developers that do it simply for the love of it with no commercial interest.

So I must say that for all this time we were on a strange position: we love the technology, we hate the branding! Good thing about Nonoba is that they have people that want to hear from developers and believe me I wasted a lot of their time explaining why that didn’t work for us, hoping Nonoba would understand that if it didn’t work for us, it wouldn’t work for many developers.

Player.IO: A Huge Step Forward

Someone once told me:

Do you know what really works? McDonald’s! Everyone can go home, make a big burger and eat it! But for $1 you can eat the burger, without having to cook it and without having to wash dishes.

Let’s translate this to multiplayer game development…

For a given amount of money I can code multiplayer games without having to setup and maintain infrastructure… makes sense? Good, let me present you Player.IO!

All I’ve mentioned above regarding the technical aspect of Nonoba’s API probably stands. I say probably because we haven’t done any code with it for a long time, but I believe that if it’s any different, it’s because it’s better, not the opposite.

The good part is that no branding is present, at least no portal’s branding. As we speak, the free version (yes, there is a free version) will show Player.IO branding, but that’s not competition for any portal, so it’s ok I guess. Moreover, if you sell a license for your game, you’ll probably should consider a plan.

We haven’t touched Player.IO, we just have an idea of what we’ll get from it because of what we tried from Nonoba’s API. What I really like about all this is not the technical part or the branding being gone, but the great feeling that someone was smart enough to hear from developers and take a huge step forward with a strong commercial offer that can fit pretty much any development need.

Player.IO looks very solid and promising, we’ll try it as soon as possible and hopefully confirm it.

Posted: February 3rd, 2010
at 10:56am by Vlad

Tagged with , ,


Categories: Business

Comments: 2 comments


Best of Online Games

I was feeling good about me, our work and a fine goal we met today. I was preparing to leave a short note on twitter or a small blog post, not about it, but more because of it…

I opened my email client and started to read what seemed to be one of the many “I love your work so much that you have to mention my work!” emails we receive. But as I was reading it, I felt it was something different…

You see, I’m a firm believer that one of the problems of the Internet is that everyone is looking for a special name, something that looks good and easy to read and retain as a domain name also, but few, very few, live up to the tag of their own name. This means that a site called Best of Online Games must be different. It can’t be yet another gaming site, it can’t be yet another script game portal. It has to at least try to be something different.

So I visited the site, noticed a nice article about us (which was the reason for the email we received in the first place) and noticed a fine philosophy behind it. Best of Online Games looks as a nice game portal, but features developers, news and other articles about this industry niche that is online gaming.

I really enjoyed it and I hope you all do to. After some months off, Best of Online Games is back and we wish them good luck! Go visit it at http://www.bestofonlinegames.com

Posted: February 1st, 2010
at 7:16pm by Vlad

Tagged with ,


Categories: Caught our Attention

Comments: 3 comments


Bold Pixel Engine v0.9 refactor

Hi everyone!

As promised, as soon as BPE has a couple of games under its belt, it will be made available. There are a couple of games going on with it and those are almost done, but the engine’s part is finished.

With all we’ve been through with it, refactoring was needed so I put a bit of work in the engine this evening (coding on a Saturday evening… geek!) and I’d like to show you how to do something with it.

I’d love that you take a look at the code and let me know if you think it is easy to follow, since this is the philosophy behind most of BPE’s classes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package 
{
    import bpe.blit.*;
    import bpe.managers.*;
    import flash.display.MovieClip;
    import flash.events.Event;
 
    public class BoldPixelEngine extends MovieClip
    {
        public function BoldPixelEngine():void
        {
            addEventListener(Event.ADDED_TO_STAGE, init);
        }
 
        private function init(e:Event)
        {
            var engine:Engine = new Engine(640, 480);
            var layer:Layer = engine.layer.create();
            var actor:Entity = layer.entity.create();
            var animation:uint = TextureManager.createCollectionFromMovieClip(idle);
 
            addChild(engine.render.window);
 
            actor.x = 320;
            actor.y = 140;
            actor.animation.loop(animation);
 
            Loop.AddListener(engine.update);
        }
    }
}

What this code does is to create a blit engine instance in the stage and draw a time based animation in it.

What I’d like to know is, without any further explaining, does this look simple and intuitive to you?

Thanks!

Posted: January 30th, 2010
at 11:52pm by Vlad

Tagged with ,


Categories: The code of VGS

Comments: 9 comments


« Older Entries