Best 2D SDK for C++ newbie?

Miscellaneous Forums/General Discussion/Best 2D SDK for C++ newbie?

( No I'm not doing the usual thing of copying an existing thread for humorous effect. I genuinely want to explore the options. )

Doesn't have to be C++, but most will be, I suspect.

Options I'm aware of :

(1) BlitzMax - Kinda don't wanna use this for the time being. Maybe as a last resort.

(2) Torque2d - Impressive, but a bit young still.

(3) PopCap Framework - Solid tech, but I've looked and it, and I'm not a fan of the way it works.

(4) HGE - Doesn't seem to get a lot of updates. Nice for what it does though.

(5) PTK - Seems ideal, but I'm not sure how mature the D3D renderer is yet.

(6) PyGame - Another popular one, but I don't like Python.

I guess PureBasic, MultiMedia Fusion and GameMaker are also viable but I'm really not keen.

What else is there and what points have I missed about the knowns?

And while we're at it, someone around here recommended a free C++ IDE and free MS VC command line compiler as a great alternative to GCC recently. Could someone point me to the thread or links to both as I've managed to forget where I saw it now.

I'm quite happy with Dev CPP, but alternatives are always worth checking out.

Microsoft C++ 2003 Toolkit maybe? And Code::Blocks IDE maybe?
Both free.

Also Microsoft Visual C++ 2005 Beta 2 is free. (Along with
the C#, VB, & J# versions of it)

You can use Code::Blocks with the Microsoft 2003 Toolkit, you may need to also download the Platform SDK and a few other missing things. All in All its free so you cant really beat it ;)

Allegro over at http://alleg.sf.net is the one I started with. It's C only, but works just fine with C++. Active community over at http://www.allegro.cc

Gabe,

Are you just testing the waters right now, or are you looking to jump right in and make a game? I'm wondering if you might be interested in giving my library a look? I'd like to get feedback on the api, and of course just general bug/glitch reports.

I think its pretty good so far, but then again I may be a little biased ;) In terms of functionality, I would say its close to blitzmax( give or take some )- 2d in 3d drawing, basic input, audio, and timing stuff. Currently its lacking high level features.. so no built in tile engine, sprites, collision, particles, physics, etc... but I do plan on adding those in time. I'm just taking it slow, and making sure everything works right.

You would need to use a .net(2.0) enabled language. For distribution, you could always ship mono around with it( as you saw in that proggie I sent ya, adds about 4mb to the dl size )

Unfortunately, 2.0 has been released, so I don't think they're going to keep providing the visual studio ide betas, but the sdk/compilers are free.

Actually -- if you're interested, go ahead and fire me an email at tbarela_at_deviantmachine.com, or pop on to irc.. probably be easier to discuss that way.

Microsoft C++ 2003 Toolkit maybe? And Code::Blocks IDE maybe? Both free.


Yup, that sounds right, thanks.

Are you just testing the waters right now, or are you looking to jump right in and make a game? I'm wondering if you might be interested in giving my library a look? I'd like to get feedback on the api, and of course just general bug/glitch reports.



Yep, looking to jump right in and make a game. I'm not sure I fancy .net, but I'll try to pop into irc and have a chat about it some time this week.

Guess I'll mention it again : 3Impact - www.3impact.com

I'm using Allegro, but Game Incubator looks interesting.

I'm just finishing up a marathon, 1.5 year project with BlitzMax, and I'm more than happy with how solid it's been for me. Just curious, why don't you want to use it?


Yep, looking to jump right in and make a game.



Me too. I've taken a quick look around but only used a little bit of Allegro at the moment - which is really easy to use btw. As far as alpha blended sprites go though it doesn't seem to have hardware acceleration.

Ogre3d looks pretty good but it's just a graphics library - no sound, input or anything else.

Irrlicht looks like a more full system than Ogre - and also Cipher - but that's not free.

I'm currently looking at pure DirectX again which might be manageable for my game.

Blitz3D together with Sprite Candy is an excellent combination for 2D in 3D games creation. It's stable. It's fast and there's really no reason to look any further for 2D.

Barney

Guess I'll mention it again : 3Impact - www.3impact.com
3Impact for 2D? You must be kidding, right?

lol @ Jedive... get back to working on ColdSteel! ;)

Yeah, BlitzMAX is definately numero uno.

Close second is SDL (Simpel Directmedia Layer).

As for C++ compilers and developer environments that aren't GCC (although MinGW, MSYS and Eclipse rock), I'd probably gop for Borland C++ Builder X Foundation (or whatever), which is kinda free, although maybe not for what you have in mind - if I wasn't dependant on using Eclipse for Java anyway.

I recommend Allegro too!

nSprite 2 with Blitz3D, obviously ;) :P
In C++ tho, I experimented with SDL and it's quite good (especially if you're looking for something strictly software).

You've already mentioned my rec, BlitzMax, but C++ libraries to keep in mind include SDL and Fastgraph.

3Impact for 2D? You must be kidding, right?


LOL! yah, I was actually thinking of another engine but for some idiotic reason I typed 3impact...

I was refering the flatredball engine - www.flatredball.com but forgot its only in C#.

I'm just finishing up a marathon, 1.5 year project with BlitzMax, and I'm more than happy with how solid it's been for me. Just curious, why don't you want to use it?

I guess its something to do with very poor sound support and incompatibilities with win98.

incompatibilities with win98.
Oh noes! It doesn't work on an unsupported OS! Stop the press!

Does anyone really care anymore? Besides, isn't there BlitzPlus for 2D development for archaic operating systems?

Oh how naive.


I recommend Allegro too!



Grey, is that right? Hardware acceleration for 2d in 3d is limited in Allegro?

Oh how naive.
For real? How about this for naive: Of the hundred or so beta testers we have, 1 person has Win98 (on a secondary machine), and BlitzMAX programs work fine on it.

But you believe whatever you want.

http://dxgame.com/

>:)

I'm just finishing up a marathon, 1.5 year project with BlitzMax, and I'm more than happy with how solid it's been for me. Just curious, why don't you want to use it?


More a case of don't need to be told about it than don't want to use it. Figured people would do so anyway, but would be less likely to do so if I said it wasn't on my list. I was wrong.

And Tim's points about sound and Win98 support are pretty on the money too. As relieved as I am that FlameDuck isn't affected by BMax's shortcomings, I have been. If I go with it again, I have only myself to blame.


Blitz3D together with Sprite Candy is an excellent combination for 2D in 3D games creation. It's stable. It's fast and there's really no reason to look any further for 2D.


Doh! Why didn't I think of this? I already have Blitz3d and Sprite Candy. It would even let me mix in a little 3d if I wanted to. Yeah, that does sound like a good way to do. Thanks for the memory prod.

My understanding was that the problems were more of a combination of the sound lib + Windows 98, rather than them individually. For about half the dev cycle one of the PCs we developed on was a 98 machine.

I'll see how sound goes during the QA phase, if it's a problem it's going to be pretty easy to drop an FMod or preferably Bass lib in there instead.

I wasn't 'telling' you about BlitzMax, I was, as I said, curious as to why you don't want to use it again.

My understanding was that the problems were more of a combination of the sound lib + Windows 98, rather than them individually.

I can't be 100% certain, but the sound problems seem to be the same on ME as well. I've never had any reports on 2k or XP personally, but apparently others have, so I don't know.

I wasn't 'telling' you about BlitzMax, I was, as I said, curious as to why you don't want to use it again.


I know, I wasn't referring to you.

Oh noes! It doesn't work on an unsupported OS! Stop the press!

Does anyone really care anymore?
I bloody do!

I've been playing about with DevC++ and SDL. It's fairly easy to pick up but I've wrapped a few of the functions making it more Blitz like ...
#include <cmath>
#include "Blitz.h"

//       blitz example #1

int main(int argc, char *argv[]){
    Graphics(320, 240, 0);        // windowed screen
    SetTitle("Load/Display image");

    SDL_Surface *image=LoadBMP("testimage.bmp");
    SDL_Surface *brick=LoadBMP("brick.bmp");
    
    float v=0.0;
    int alpha=160;
    SetImageAlpha(image,alpha);
    while (!AppClosed()){
		Cls();
		ScanKeyboard();
		if(inkeys[SDLK_LEFT]){
			if (alpha>0){
				alpha-=1;
				SetImageAlpha(image,alpha);
			}
			}
			if(inkeys[SDLK_RIGHT]){
				if (alpha<255){
					alpha+=1;
				SetImageAlpha(image,alpha);
			}
		}
		TileImage(brick,int(sin(v/4)*125),int(-cos(v/4)*75));
		DrawImage(image,60+int(sin(v)*40.0),60+int(cos(v)*30.0));
		v+=0.009;
		Flip();
		}
		FreeImage(image);
	End();
}


I know, I wasn't referring to you.

Oh, sorry!

Is sound + 9x core the only thing you're having problem with? Or does it go deeper? 9x is, of course, way to big to brushed aside, but if it's only sound then the module can be replaced.

It's graphics as well as sound. I'm pretty sure the graphics problems are just with 98, but possibly ME as well. It's in the bug report forum, it seems to involve Max2d state changes, like alpha, color, etc not being changed when they should be. Doesn't show up on XP or 2K, and the fix that worked for some people didn't make any difference for me.

Windows Millenium is basically a rebadged Windows 98SE with a few more tools geared towards multimedia. I'm 99% sure people using Windows ME would have similar problems (Sound, Graphics etc) as Windows 98 users.

Steve Elliott: Sorry, I don't know I only used basic 2D functions, but it was good as otherwise you'd have to do soooo much C programming just to make a screen, have sprites, keyboard/mouse/joy input etc etc.

It's no wonder beta testers all have XP not 98, IT's BECAUSE THEY ARE TECHY PEOPLE. Customers will have all sorts of crap inc. (sorry Big10p) Win 98. I had Win98 until 18 months ago because SE was solid enough for me, but I had to change to "keep with the programme".

Gabriel : i agree with Barnabius, Blitz3d and Sprite Candy :)

cheers,
Lee.

Thanks anyway Grey - although I've done some DirectX (8.1) before and for my game (chess) I won't need so many routines. Plus I've got some time off work coming up so might give it another go.

Gabriel, I thought the same - ofcourse you can do 2d in 3d using good old Blitz3d! Trouble is I'm enjoying C++ at the moment.

people are actually using Windows ME? Poor misguided souls. They deserve everything they get >:^}

For real? How about this for naive: Of the hundred or so beta testers we have, 1 person has Win98 (on a secondary machine), and BlitzMAX programs work fine on it.
It sounds like whoever is in charge needs to be fired as they do not know how to properly run a "beta testing". Based on the written application you give out, you should only accept applications that will give you a diverse setup of systems and configurations, in order to properly test the software for the varied systems your EUs will have.

Somebody seems to think magical fairies come and upgrade systems when MS drops support for a product. Unfortunately, it doesn't happen that way. For games, many, many of your EUs will be running '98 systems. This is especially true of kids who are often given older systems.

Microsoft quit selling Windows 2000. It isn't on store shelves and if you want to buy it, you are stuck on EBay. Should we quit supporting Windows 2000, too?

Gee, the original release of Windows XP is no longer being sold, the only copies for sale now are XP SP2, I guess its time to stop supporting anything older than XP SP2.

Oddly enough, since most new systems sold today have crappy mobo chips that will not properly run anything DX or OpenGL based, I guess we shouldn't make games anymore either.

Luckily we have all those Windows '98 users with kick-ass graphics cards in older systems who are diehard gamers.