Sunday, January 24. 2010
Happy New Year - 2010! Posted by MrD.
in Blog, C++, Game Development, University at
22:56
Comments (0) Trackbacks (0) Happy New Year - 2010!
So, over two months. Not too bad, I really should update this more often... I start a new semester at University tomorrow so I guess I can try harder for that one.
AI My AI demo was finished and handed in. My extension task was behaviour trees and there is a video of the demo below, all in HD and powered by the Insimnax Framework. Insimnax Framework The Insimnax Framework has finally been released. It is cut down from what I had originally planned since I decided to move the integration of things like physics, GUI, audio etc to the games that use it so that developers could be more flexible. You can grab the full source code (licensed under the MIT license) along with the code for the Insimnax Common Framework (ICL) from here. I'm currently in the early stages of working on a level editor for it. Thursday, November 12. 2009
Welcome to the Madhouse Posted by MrD.
in Blog, C#, C++, DirectX, Game Development, University, XNA at
19:09
Comments (0) Trackbacks (0) Welcome to the Madhouse
Hmm, a month and a half. Oops. I forgot my password for my blog and since Serendipity doesn't have a password restore feature I had to use a certain PC that was already logged on to be able to change my password.
So what I have been doing since my last update. Well, I have played through Batman: Arkham Asylum, AND YOU SHOULD TOO! It's a great game (given, the boss fights aren't up to much) but I love the sneaky, pick people off one a time, parts (the Batclaw has to be my favourite weapon for doing this, just catch someone unaware and yank them over the side of a fence for an instant incapacitation). I have also been back at Uni, so have been working on a variety of game programming related tasks. My modules for this semester are Artificial Intelligence Techniques, Advanced 3D Graphics, Network Programming and my Applied Research Project (my dissertation - which is actually a year long module). AI AI has been interesting so far. We started by looking into State Machines, and then Behaviour Layering before moving onto Steering Systems and Path-finding. The culmination of this is that I currently have a demo application that uses a state machine to drive the steering behaviours of a steering system following a path calculated by an A* path-finding algorithm. AI path-finding demo, using the Insimnax Framework A3D Advanced 3D Graphics has three "mini-assessments", one of which I have already completed (Shaders), and the second of which I am currently half way through (Animation). The final one will be large-scene rendering. The shaders assignment took the form of a report looking into a particular field. This was a partner exercise and we worked on Post-processing effects. The animation assignment is looking at skeletal animation with blending, as well as being able to influence particular bones in a mesh to make them perform certain things (like look at a point of interest). Being able to attach objects to a mesh is also another desired feature. All this is being done in DirectX 9 and I currently have instanced skinned meshes (software and HLSL) with animation event callbacks. Instanced, animated, Tiny's Network Programming Network programming involves making a game (I am using C# and XNA) which can have 4 or more players playing over a network. I am making a 4-player version of Asteroids and currently have the "player-chat" lobby part of this working, as well as a nice framework for handling application layer packets. Main lobby ARP My dissertation is on the topic of "Visual Scripting Systems for Games". Not much to report on this yet since it has been mostly research based so far. Insimnax Framework The Insimnax Framework is a game framework I am currently working on which makes heavy use of OGRE 3D. The framework itself is currently a wrapper to make getting started and using OGRE 3D easier, although I have plans to extend it by adding "systems" such as GUI, Physics and Audio. I am currently using this framework for my AI project and hope to use it for my dissertation too. I plan to release it under an MIT license once it has reached a decent (and somewhat stable) stage of its development. ... and finally Finally, I have also started using WhatPulse to track how many keys I type, times I click my mouse buttons, and distance I move my mouse. You can find my profile here. Oh yeah, did you hear about Epic releasing UDK for free?! Crazy! Sunday, September 27. 2009
Templates and Streams, the perfect ... Posted by MrD.
in Blog, C++ at
02:47
Comment (1) Trackbacks (0) Templates and Streams, the perfect couple
Recently I've been doing some work templatifying my two I/O classes (see this entry), and from that have come to the conclusion that templates and streams make for the ultimate generic programming tool. Previously I had a load of old duplicate bloat code in these classes, that was all removed and replaced by one templated member function, and two specialised template functions from it, and best of all since this code is now able to take external streams as input/output sources, it means that I no longer have one code path for handing files, and another code path for serialising to memory. Instead I just pass an fstream when working with files, and a stringstream when I want to serialise to/from memory, simple!
One of the best changes the templates and streams has made is to my tryParse function. Previously there were a load of these, each handling a different variable type using old C functions. Now the function has been replaced by a single templated function, and a stringstream. If you try and tryParse a type a stringstream can't handle, it just doesn't compile, best of all is that you can still expand the function using template specialisation if you want to tryParse to your own custom types. //! Try and parse a string to another type //! \return true if the conversion was ok, false otherwise template <typename T> bool tryParse( const std::string &str, //!< String to convert T &out //!< Output variable ) { std::stringstream sstream; sstream.exceptions(std::ios::failbit | std::ios::badbit); sstream << str; try { sstream >> out; } catch(std::exception&) { return false; } return true; } I actually worked out the total number of lines of code before, and after my changes. The results are below: Old: Quite impressive Thursday, September 24. 2009
[C++] Anything to/from a Hex String Posted by MrD.
in C++, Tutorials at
20:11
Comments (0) Trackback (1) [C++] Anything to/from a Hex String
Two functions that can be used to convert anything to and from a hex string using C++ and std::stringstream.
To view the tutorial you will need Acrobat Reader. Download PDF. Friday, June 26. 2009Programming Mindfuck
I've spent today at work changing where some data is stored and upgrading it to a new format. When that was done I set about changing all the existing code to use the newly stored data, the problem was that after only three hours of doing this my mind had completely gone I was just unable to think about what I was doing. I was literally typing out a function without really being able to work out what the function was meant to do, which I'll tell you right now is not the easiest of things to do; later when I left work and had reached the train station (about 15 minutes) I was finally able to work out what it was I was trying to do and was even more amazed when I realised that what I had written with my mushed mind was in fact correct. I know for a fact that other people at work have a similar problem and it takes about 10 minutes after leaving work for their mind's to start processing anything other than whatever problem they were working on; maybe this topic title should be programming is a mindfuck.
|
QuicksearchpagesArchiveseventsCategoriesSyndicate This Bloglogin |