Saturday, August 9. 2008Week #42 - The Magic Combination
Well, I still haven't got my Internet connection sorted at my flat yet, but that should be getting done soon.
While I was at work, I managed to totally kill the search in Visual Studio. It seems that it's a known issue, but is so hard to replicate that they just closed the bug for it, meaning that it still happens in Visual Studio 2008. Apparently the fix for it is to press "Ctrl + Scroll Lock"; now I don't know what that key combination does, but I'm guessing it sets the "m_dontCrash" flag in Visual Studio to "false" and then for a while, everything works ok. You will notice I have no other updates for what I was working on before, well, that's because this project is on hiatus while I am on my work placement; so apart from finishing off my Terrain Tech Demo and finally finishing that backup application I started for myself ages ago, everything else is on hold. Thursday, July 10. 2008Week #38 - Sayounara
Webserver stuff first, HostGator have finally upgraded the server my site is on to PHP5; this means that the events plugin (see right side bar) is now working so you can see which events I am planning to attend.
I am aware that my updates have been becoming increasingly short, and I am sorry about that; I normally have a lot of stuff I want to say, but forget it when I sit down to type it. Hopefully this update should be a little better. I have spent Wednesday and this afternoon messing around with Irrlicht, a 3D rendering engine, to try and progress along a project that I actually started a couple of months ago. Essentially my plan is to make an "engine" type framework using Irrlicht as it's rendering component and PhysX for the physics component; I had originally planned to use Havok but their free SDK only supports Windows and since I am a fan of cross-platform Windows/Linux development, using Havok would have meant me having to write an abstraction layer and then using Havok for the Windows build and something like Newton for the Linux build; since PhysX supports both Windows and Linux for free, I no longer need to do that. I also plan to make use of the Boost C++ Library, namely it's filesystem and std::tr1 features; and also some form of scripting language. As for the game I am planning to make, well that's a secret at this point but it's an idea I've had since November 2007. The structure of this engine is different to any which I have tried creating in the past, normally I would create an abstract "Application" class which you would derive from in your project and then build everything from there. This new structure uses a state pattern type approach, so the "Application" class (actually called "CGame") is set in stone inside the engine, and all new content is added by deriving a new game state from "IGameState", all "CGame" does is pass the correct information into the current state and that's it. "CGame" doesn't care about the current state, in fact, it's even the state's job to provide the next state object to change into. It works like this: #ifndef CGAMESTATEDEFAULT_H #define CGAMESTATEDEFAULT_H #include <IGameState.h> class CGameStateDefault : public IGameState { public: CGameStateDefault(); virtual ~CGameStateDefault(); public: virtual void initialise(CGame *game); virtual void shutdown(CGame *game); public: virtual bool onEvent(CGame *game, const SEvent &event); public: virtual IGameState* update(CGame *game); virtual void render(CGame *game); }; #endif Above is the header file for a concrete state derived from "IGameState", the implementation details of this file are not really important, so I won't show them. You will notice that "IGameState::update" can return a pointer to "IGameState", this is how the state handles changing itself; if it returns anything other than "NULL" from this function, "CGame" will switch it's current state to the one returned. The actual code that does this inside "CGame" is as follows: void CGame::update() { // Pass to state. if(m_gameState) { IGameState *newState(m_gameState->update(this)); // If we have a new state to change into... if(newState) { // Shutdown and remove the old state. m_gameState->shutdown(this); delete m_gameState; // Set the current state to the new state and initialise it. m_gameState = newState; m_gameState->initialise(this); } } } You may remember I talked about state systems before when creating my Mobile Devices Assignment, however what the code snippet I posted in that article didn't show was the huge switch statement that took care of deciding which state to change into next. This system does not need that and it makes it much cleaner and easier to expand compared to the version used in the Air Hockey game, aside from that however, the systems are quite similar. Now when creating a new application using the engine, all you have to do in your main is this: #include <CGame.h> #include "CGameStateDefault.h" int main() { CGame game(new CGameStateDefault()); game.run(); return 0; } Simple eh? While creating this, I changed from using Visual Studio 2005 like I normally do, to using Visual C++ 2008 Express; I must say I like it a lot more than 2005. It is a load faster and the intellisense is much more resilient to breaking randomly on you; the only thing I miss is Ankh since it doesn't work with the Express editions, a shame really since it is a very useful plugin when working with SVN repositories. Well I said this one would be longer didn't I, and I'm still not done yet. A while ago I wrote about being unsure of the new format used in Burnout Paradise (and in-fact pretty much all EA racing games of late). I have now worked out what it was missing, and it isn't the fault of the format as such, more the fact that you are now playing in a fictional city that seems to be in America, and this means one thing; it's big and the roads are wide. One thing I really liked about Burnout Revenge was the European and Asian locations because they were the antithesis of their American counterparts; they had narrow roads with complex corners and they were amazingly fun to drive on. This is something that feels lacking in Paradise with it's wide open city-scape and mile-wide roads. In-case you are wondering why my title is saying goodbye, it's because I am going down to Leamington Spa on Sunday, and start work on Monday. At present I don't know when I will have internet access again, so really this post is me going out with a bang until I get myself sorted out down there. Well, that's it for now, see you when I see you. Update I checked to see if this was the longest entry I had made. It wasn't, it was only the second; my longest entry is Download 2007. Wednesday, July 2. 2008Week #37 - What A Mug!
I ordered one of those uber mug's from Worse than failure and it arrived on Monday. Man these things are like a tanker and just great for all my caffeine related needs. I have attached an image. The mug itself came wrapped in two sheets of an American newspaper, well, that and a box.
As I stated in my last update, I went for a Job interview at Blitz. I am pleased to say that I was offered and have accepted a job there and will be starting on the 14th July. This means I need to move down to Leamington Spa so will probably be away for a while while I am without personal internet access. Recently, I have gotten interested in designing systems so that they can be easily modified by the end user in the form of a "mod". This seems to mainly take the form of XML loading for data combined with some form of scripting language and object factory. This is definitely something I want to look into more in the future. Finally, I have now managed to get the photos from Download 2008, there isn't a lot of them since the camera I take to festivals had died and I had to use my phone. You can find the post here. Tuesday, June 17. 2008Week #35 - A Gentle Kick
Amazing isn't it that when you have a job interview to go to the next day, you suddenly get a nice, gentle kick up the arse to finish some work. In my case, I spent all day today getting the physics back into my Terrain Tech Demo; I am thankful to say I managed it and also slightly annoyed since I now realise that a Release build of it when zipped with all it's assets comes to under the magic 5MB mark that Blitz accept for demos so I could have sent it with my application - as it stands, I'm taking it on my laptop and can show then from that; it should be a safe bet since I know it will run from my laptop.
I now have a video showing the Physics in action and will soon be heading to bed since I have to have a nice trip down to Leamington Spa tomorrow. Sunday, June 15. 2008Week #34 - Download 2008
As I stated before, I was away at Download Wednesday to Sunday last week.
Friday I went to see Disturbed, Seether, Judas Priest and the first part of Kiss - for me Disturbed were by far the best that day. Saturday I only managed to see Bleeding Through, I had wanted to see 36 Crazyfists but overslept. Sunday I saw Apocalyptica, In Flames, Airbourne and Children of Bodom. For me In Flames and CoB were my favourite sets, along with Disturbed; Airbourne was impressive though considering I'd never (knowingly) heard the band before, you really felt it in your soul. Update - 2nd July 2008. I have now (finally) gotten the photos off my phone: The campsite. Security guard number "1337". I also looked for "666" but we think that one might have been nicked. Warning; this tent can burn. You can't see from this photo, but there was a circle pit around the audio tower. Beer mountain. Those responsible for the construction of beer mountain. Left to right: Myself, Adam, Carl and Jon. |
QuicksearchpagesArchiveseventsCategoriesSyndicate This Bloglogin |