So, with the development of bench racer I have also made a new platform independent framework. I tried a number of game engines such as ogre and ilricht, but I concluded that these engines are great for general purpose graphics, but I would like to make something myself that is simpler and I have more control over. So far I added these libraries to the framework...
- -SDL - platform independent api for games (gl context,input,joysticks,maybe sound)
- -OPENGL - platform independent 3d gfx api
- -ODE - physics
- -LIBPNG - png image deflate/compress
- -ZLIB - compression lib used by libpng
- -TINYXML - xml parser/encoder
- -RAKNET - platform independent high performance game network library
I also added some of my own stuff
- -BMFONTS - load anglecode fonts and render with gl. they look really nice and render fast
- -MD2 Loader - load md2 models and render them with textures and vertex lighting
- -PAK Files - support for a basic pak file system, no compression or encryption
So far I really like how it looks, everything except sdl is compiled into the exe. Its kind of frustrating though when I have to design everything, I guess I am more of a game designer then an engine programmer, but at the same time I don't like the black box approach to making games. I am a mistake of a programmer i guess D:
I will be throwing out the md2 format I am pretty sure, Its just too picky. I need a format that has material groups so i don't have to use a texture to paint everything. Also I cant have a shiny wheel and a matte tire on a model with md2's. I also will eventually need transparent faces for glass. I think the milkshake 3d format seems to cover all those really well, and its easy to parse.
python with pyopengl is just too fucking slow to make anything commercial like this lunar lander game. I think python is a great tool to RAD a game out, but in practice it can only work for VERY simple 2d games. I couldn't get the text drawing out fast unless I built a display list for the text. Just one page of text using immediate mode brought my x1950 video card to its knees. I cant deal with that, especially if the text is dynamic.
So I will still see this game through, but with my c++ framework instead. I want this to be my 3 month project. March is my goal of releasing this game. I guess that is a really optimistic goal since I am not sure what the gameplay will be all about since the python version of the game just had boxes you can attach to and move.
So, I have been saying there are bigger plans for this game. This is a long term project of mine. I want to make smaller games that will have fast 3-6 month production times, but this game will be my 12 year old's MMORTSFPSRPG project.
There is still alot of crap I have to do to my framework before I even dig deep into the physics and networking. Mainly I have to get a good model format that will give me better control over fixed function rendering of the models. I shouldn't even care about models at this point and just use boxes and cylinders for wheels, but who the hell wants screenshots of that shit :D? Its gonna be 2 weeks more of work before I start getting real physics working in this game. The "tracks" are nothing more then just straight drag strips, but I might think about adding undulations to make things more interesting. The tracks might just be xml files defining a height map for a track and models/positions for scenery items.
Here is a semi-updated version of what I have so far. The physics is de-coupled from the drawing loop and now ive got crappy md2 vertex lighting. Its crap, but better crap then no crap :)
now i need a mac, and build my linux box so i can get this crap working on those too :p