I'm already using my own stuff, but I'll probably peruse your source in my spare time anyway
I've recently released the source code to my graphics library, and thought I'd tell you guys about it, in case it's of use to someone. It's free to use, no weird licensing issues. Also does music playback in a few different formats.
I've also finished an article I started ages ago, about a software 2D renderer I made (actually the one used in my graphics library)
Hope this stuff is useful to someone :-)
Likewise we also have our own system but will be interesting to look through your stuff. It is great that you have shared this with the public.
Out of interest, how long do you think this took you to develop?
A bit hard to say, but most of it was written in 2-3 weeks of evening and weekends, but then I already had some things from an earlier engine (a 3d engine I'm no longer working on) like the platform abstractions and the containers, those sort of things...
Mattias, first of all, thanks for relasing this - I'm sure it will be quite useful for a lot of people.
I haven't looked at your code, but reading the article makes me wonder - is all of that worth the effort? Originally my framework did software rendering only and I had a lot of code to deal with dirty rectangles and micro tile arrays and stuff, and used SDL blitters to do the optimized blits you mention.
However, 2 or 3 years ago I implemented a hardware accelerated renderer, the code is much cleaner and I had no serious compatibility or performance issues.
So while I'm sure it was fun to do (optimizing low level stuff is always fun!), I don't really see the business sense of investing so much time in it.
Please don't read this as a criticism, I'm just curious.
Google Zürich - Formerly Mystery Studio
Good question, and no, I don't take it as critisism :-)
I think it's worth the effort, yes :-) I have a renderer which exactly suits my needs, I know the code inside out, if there's any bugs in there, I'll find them very quickly. I don't have any dependencies on specific DirectX versions or things like that, and I'll be able to very easily port things to any platform I want in very short time.
And it took me 3 days to do the rendering part of the library, the 2-3 weeks of evenings and weekends I stated above included things like the music playback, buttons, sprites, text etc, which would still have to be done if I had used hardware acceleration.
Also, by keeping everything in software, it's easier to do per pixel manipulations without the performance hit of readback as I'd have if using a 3D api, and I rely a lot on those types of things for the procedural generation of things in the games I'm doing.
So it's probably not the right choice for everyone, but for me it is exactly what I need, and a hardware accelerated renderer wouldn't have cut it for me. It just wouldn't have been flexible enough, and not simple enough either... :-)
Oh, and as for the business sense part, I wasn't making games as a business when I first wrote the lib, I was doing it for some oldschool demo stuff www.mattiasgustavsson.com/pixie...
I had a short look over your source code, and I have to say it looks very nice and clean.
You did a great job with the engine!
As for the software-hardware debate, don't worry too much. It's more important to have it well structured, and easy to port on various platforms, or future os versions. And if it's about a simple 2D game, there's nothing that a software engine can't do.
By the way, I also use the STSound library made by Arnaud Carré, in my DizzyAGE engine. In fact, I was well surprised to see he credited me in the version update file, for fixing some bugs
Keep the good work!
Thanks for the article, it was very informative and interesting.
I was recently in a 48 hrs rpg-making contest, and used my game engine to make my contribution. I've released the source code to it as well, which I guess can serve as a (quite messy) example of how to use the engine. More info here:
Btw, both the engine and the game source code is public domain (except for the STSound component included in the engine, which is GPL).
Just thought I'd let you know I've put the source code of another example game up for download. I made a simple little game for the Swedish Game Awards Warmup competition (the theme was "vikings and the future").
Hope it will be useful to someone. It is released to the public domain as usual.
Source code (including engine):
I've put sourcecode for another game using the engine on my website now, but more importantly fixed a few issuses with the rendering part of the engine, so framerate should be improved :-)
I've done a major update to the Pixie engine recently so I thought I'd post an update here rather than create a new thread for it. I've fixed a lot of little issues with the engine, and generally cleaned it up a bit, so I'd say it's rather usable now.
More interestingly, I've written two tutorials for the engine, one "hello world" tutorial, and one which displays a bouncing ball
It's public domain btw, so no weird license restrictions
And there's some online documentation now as well.
Just thought I'd update this with some recent info.
There's two more games released using the Pixie game engine:
And just like all my stuff, the source code for both games are placed in the public domain, so if you think you can use it for anything, go right ahead. Can be downloaded from here:
Just wanted to do a quick update on this:
All the stuff to do with the Pixie engine is now to be found in the new developers section here: