Subscribe to:

The Kiwi's TaleWitchBlasterDerelict Blow Stuff Up

Time to walk away from Blitz?

Since discovering BlitzBasic 3D in 2005 I have had a lot of fun with it. It's a pleasure to write with, I learned a lot about programming concepts from it and all of my games on this site were either written in Blitz3D or BlitzMax.

But, after thinking about it recently, I have decided to move on for three reasons:

  1. Blitz3D has a DirectX only 3D engine, so it is not portable to other platforms.
  2. Only C++ programming experience seems to matter in the game industry.
  3. The Blitz3D graphics engine, though slick and reliable, has not changed much since it was released in 2001, and still does not support Shaders.

So, my current train of thought is that I should learn to make games in C++, using Visual C++ as my IDE/Compiler, OGRE as my graphics engine, ODE for collisions/physics and OpenAL for sound. All of which are free for download and use.

After going through a bunch of tutorials, I think my first project will be to port "Blow Stuff Up" to C++. It's a very simple game, probably the dumbest FPS ever, but it gives me a lot of opportunities to learn how to implement certain effects. For instance:

- Cube maps (Building reflections)
- Reflection/Refraction (Water)
- Real time lighting and shadows (From Buildings)
- Collisions and Physics (Buildings falling over on each other)
- Particle effects (Explosions, dust and debris)
- 3D Sound (Jets roaring past, Doppler effect)
- Fog (Underwater, dust clouds from the ruined city)
- Lens flare
- Grass and foliage
- Terrain

So, how long it'll take me to get that far in C++/OGRE etc is anybody's guess. But I'll post some screenshots as soon as I get something cool going.



JoshuaSmyth (not verified)

I personally prefer codeblocks (free) to Visual C++

Microsoft seem to be more concerned with their .net branded languages, so MSVC++ isn't the best C++ IDE in my opinion.

Earok's picture
Joined: 02/06/2009

Actually I was investigating Code::Blocks, but had difficulty getting it to work with the Visual C++ 2008 compiler (which is recommended for Ogre).

I'll have another look at it.

Malcolm (not verified)

Good luck learning C++. It can be a very tricky beast at times. There are a lot of strange and not very intuaive parts of it as well, for example: translation units, stack storage versus heap and lots more. As well it being very easy to get into serious trouble like trying to use a pointer that is no longer valid, uninitialized data and the like.

I have some great C++ books, that I would be happy to lend if your interested. Also I would be more than happy to give you a hand if you get stuck or want to know about something.

I don't think that it is that nothing but c++ matters, but if you need a programmer to work on a game written in c++ - you want somebody who is good at c++....

I am looking forward to playing your next game.

Anyway good luck, bug me if there is anything at all I can do to help.

Earok's picture
Joined: 02/06/2009

Thanks Malcolm, I will get in touch if I get really stuck with anything.

I realise C++ has a lot of complicated stuff, though I'll try to avoid it as far as possible, even if it means I lose efficiency with CPU cycles and memory

Also, maybe if I actually can get to grips with C++, we could collaborate on something at some stage?

Malcolm (not verified)

Great idea, don't worry don't worry at all about speed or anything like that. There is a very well known saying from Donald Knuth that is:

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."

The basic idea is that if you spend a lot of time trying to optimize something you make the code much more complex, harder to debug and may introduce more bugs. You might get, say a 50% speed improvement - but if it only accounts for 1/100th (or less) of the time you really don't get any improvement at all for a lot of pain. Most of the speed critical stuff will be handled by OGRE anyway.

I would recommend getting very comfortable with the STL when you get a chance. std::string, std::vector, std::map, std::auto_ptr and the like will save a lot of work.

Sure, I would be keen to collaborate on a game at some point. Let me know how you go.

Earok's picture
Joined: 02/06/2009

Thanks for the tip Malcolm, STL look like it'll save me a lot of time.

Joined: 05/05/2009

STL can be very painful on it's own too. :)


Earok's picture
Joined: 02/06/2009

I guess nothings ever easy when it comes to C++..

Malcolm (not verified)

You're soo right. Anything in particular causing you problems?