Ive been working on a 2d engine recently that uses SDL. Its fully capable of making a game at this point without too many problems. Ide just like to go back and change the design of a lot of things(which wont be a lot of trouble), finish the Resource manager, add sound(I dont care about this feature at this time but I probaly will add it later since ive never messed with sound in games), do something about timers, and thats about it. At this point im very shocked that its about DONE, just the other day I was thinking I had a ton left but now that I look at it, theres not much.
I might go back and make a simple Scene Graph (probaly wont even be a graph/tree but just a list) used for rendering instead of sporadically drawing different things throughout the game loop and then swapping the buffers at the end) but I dont know if that should be considered a job for the engine or if its game specific(im trying to keep the engine specific and game specific things clearly separated). At this point I think im going to add it regardless of that fact that a scenegraph/list may be too ambiguous to be engine specific since trees vary so much and people may want to organize it in different ways or have it serve a different purpose than just a render list(such as object ownership or a game specific rendering order or layering method). Simply because it makes the game loop look so much more clear. I will probably design it to be inherited and maybe replaceable with their own(in the case that they want something very specific or if they would prefer doing it differently).
If anyones interested in using this, please tell me and I will put more polish on it and document it. I want to note that a big thing with my code is that I try to keep libraries as abstract as possible but also very very pretty/clean to the coder using it and make it so that it is almost TOO easy to use. If someone actually wants to use it and it doesnt have certain features that isnt game specific, such as sound, I will be glad to add it. I will be working on it for a bit long then I will release it and make another post on this journal containing the features and an example of use.
New Phone Rant/Bragging/Bragging
I got a new phone recently...a Cingular 8525! Its a very nice smart phone that runs Windows Mobile 5.0.(and hopefully cingular will release the free 6.0 update soon.) It costs about $600 dollars without a contract but I was able to get it for $150, WHAT A BARGAIN!
So far im loving it but there are some problems of course with it... most notably is the lack of documentation and a lot of features require to go through a lot of trouble to figure it out or to have a 3rd party intent to use it (such as a job) or just to guess (like I do) and hope it doesnt cost you anything to use or that you dont need it. Though, im sure all phones have this problem, I know my old phone did too.
Also, its a pain to deal with your SIM card using it. In order to properly use contacts, they have to be on the PHONE, not the SIM card. So I transfered all my contacts from the SIM to the Phone but then in my contact list, it now had 2 entries for ALL the contacts, a SIM entry, and a entry on the phone. This was very annoying and I couldnt find a option to hide the SIM contacts so instead I backed up all my contacts from the SIM to my old phone, put the SIM back in my new phone, and cleared it... its going to make things a pain, especially if I ever go back to my old phone.
Theres also some other annoying things such as you cant just highlight a song and select it as your ring tone like with most phones, instead you have to put it in My Device/Windows/Rings...which means that if I want to use a song from my music library, I have to make a duplicate of it and put it in that folder (waste of memory!!!) OR dump my music library into the Rings folder which I dont find appealing.
Getting programs/games to work with it has been kind of annoying. I knew this would be the case as soon I started searching for Pocket PC games and programs because of all the different types of phones. The first few simple games I downloaded worked fine, but then I got to chess (my love!) and it would not go past the intro screen. Then I got tetris but if I have my screen in the horizontal mode then it clipped part of the game area. At first I was having problems with this in the veritical position but after a little tweaking I got it to work. I was hoping to purchase Call of Duty 2 for it but the demo wouldnt run right so until I get word back from support on how to fix it, ill have to stick to my NES emulator.
All in all, its amazing. I went from a crappy, free phone to the the most expensive smart phone on the market(that I know of). Being able to hold it vertically and then slide out the full QWERTY keyboard and then hold it horizontally, is awesome. Too bad the touch screen isnt designed for finger use like the upcoming iPhone.(though this may be fixable with a modified theme to make things bigger and finger friendly) My friend has a phone (razr or slvr or rockr or one of those constantly advertised phones) and he would get a battery life of maybe 12 hours while my old phone had a life just short of 72 hours so I was worried that this pda would have a fraction of my friends battery life but it seems to be quite good actually with me playing music, talking, texting, and checking my phone every 2 secs and I just turned down the backlight a lot so that should help a lot too.
Now I just cant wait to start developing for this thing, if I can port my games that use SDL over then ill never be bored when im on the go!