<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nistur</title>
	<atom:link href="http://nistur.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nistur.com</link>
	<description>Diary of a Slacker</description>
	<lastBuildDate>Fri, 01 Jul 2011 22:33:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The problem with libraries</title>
		<link>http://nistur.com/the-problem-with-libraries/</link>
		<comments>http://nistur.com/the-problem-with-libraries/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 22:33:32 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=253</guid>
		<description><![CDATA[I have had mixed successes with other people&#8217;s code. I know most of the people who write libraries and things are much more experienced than me, so I am definitely not complaining about that. But&#8230; some of the decisions just leave me wondering why&#8230; I always have a design, even if it&#8217;s just in my [...]]]></description>
			<content:encoded><![CDATA[<p>I have had mixed successes with other people&#8217;s code. I know most of the people who write libraries and things are much more experienced than me, so I am definitely not complaining about that. But&#8230; some of the decisions just leave me wondering why&#8230;<br />
<span id="more-253"></span></p>
<p>I always have a design, even if it&#8217;s just in my head, of how I want things to work. My design is usually coherent with itself and, when coded, should make a reasonably decent, clean, efficient application.</p>
<p>Libraries don&#8217;t always agree with my design.</p>
<p>This is why I usually end up reinventing the wheel and trying to write everything from scratch.</p>
<p>My current pet peeve is libraries for file loading, such as image and model loaders and in particular, currently, the FBX SDK. My resource management design is that I have a resource manager that loads the files and copies the data into file classes, created from factories, which then know what to do with the data. The reason behind this is that at a later date it will be easy enough to replace/extend the resource manager to load the files from an archive, decompressing the data into the buffer in the file classes. This means it&#8217;s only the resource manager that would need to change, nothing else cares where it comes from, and the resource manager only has to change one code path. I could even stream data over the internet or by sampling electromagnetic waves around the computer, it wouldn&#8217;t matter.</p>
<p>I&#8217;ve talked to other programmers, and they agree, this is a reasonable design. So I set up my file loading framework and made it load, and parse my config files. No problem. All my code. Nice and simple. Next, I wanted to load an image to display on screen. libjpeg is open source. So is libpng. I took a quick look at these and found there was no simple way to load from a data buffer, they just took filenames and FILE*. Sure I could hack this and either inject the data into a FILE struct, or use a temp file, or even fix the libjpeg source code myself if I so wanted&#8230; but this seems like far too much work for something which seems such an obvious thing. In the end I went for <a href="http://freeimage.sourceforge.net/">FreeImage</a> which did allow for loading from a data buffer. My model loading so far is stuck with hacking in FBX.</p>
<p>Here&#8217;s the thing, FBX does animation, texturing, lighting, model loading, everything. It&#8217;s awesome and amazing in the amount it does. It&#8217;s free. It would be perfect for my engine to use. But it breaks my design. This has got me so worked up that on several occasions I&#8217;ve thought of just ditching FBX and writing my own model loader for something simple and starting from there but I&#8217;ve stuck with it.</p>
<p>Another thing that pains me about libraries which offer &#8220;solutions&#8221; such as FBX, or actually SDL for that matter, is that they can very often do a lot of different things. SDL is actually a better example here as it does window management, input, 2D graphics etc. However you have to use them in precisely in the way they expect, and if you use one component, you almost always have to use everything. What I&#8217;m referring to here is SDL, again breaking my design in a way I&#8217;ve ranted about before. I begun using SDL to create my windows, as it was nice and portable. However, since I wanted all of my modules to be as uncoupled as possible, I didn&#8217;t approve of SDL requiring me to use it for the input handling. Sure I could have written my input handler module to use SDL, but then I couldn&#8217;t replace it later on for something that had better support for joypads or something. I don&#8217;t know, it might seem pedantic, but I would really _really_ like it if you could just turn off features in some of these things. If I had the choice whether or not to use SDL for input, I&#8217;d probably be using it.</p>
<p>No matter how amazing your design, if you build your palace out of other people&#8217;s work, it will look patchy, uneven and will make you wonder why you made a nice design in the beginning.</p>
<p>On the other hand. If you designed a great pyramid and tried to build it single handedly, you&#8217;d drive yourself insane&#8230; so I guess when needs must&#8230; enlist slaves.</p>
<p>Has anyone else had any interesting arguments with libraries? Some design ideas that make you wonder what the original writer was thinking? I&#8217;d love to hear them, especially if they don&#8217;t affect me</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/the-problem-with-libraries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Professional? Me?</title>
		<link>http://nistur.com/professional-me/</link>
		<comments>http://nistur.com/professional-me/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 22:51:03 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=244</guid>
		<description><![CDATA[It&#8217;s weird, I still don&#8217;t really feel like a professional programmer, but I&#8217;m on my 4th game now, the first 3 being of differing successes. I guess I am then. What else? I still have my side project going which I hinted to so long ago. It&#8217;s been slow starting up properly, but I think [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s weird, I still don&#8217;t really feel like a professional programmer, but I&#8217;m on my 4th game now, the first 3 being of differing successes. I guess I am then.<br />
<span id="more-244"></span></p>
<p>What else? I still have my side project going which I hinted to so long ago. It&#8217;s been slow starting up properly, but I think it&#8217;s really getting somewhere, I am planning on having my &#8220;engine&#8221; to alpha stages by around September time. At which point I will probably be a bit more open about it. I have a team of people I know working with me on preproduction right now and hopefully it will be a fun project. Also, as a bit of a teaser, I have a little corner of some of the concept art I have commissioned from my good friend <a href=http://redmooonrising.org>Rose Loughran of the amazing webcomic Red Moon Rising</a><br />
<a href="http://nistur.com/wp-content/uploads/2011/06/sneakypeek.jpg" rel="lightbox[244]"><img src="http://nistur.com/wp-content/uploads/2011/06/sneakypeek.jpg" alt="" title="sneakypeek" width="219" height="223" class="aligncenter size-full wp-image-245" /></a></p>
<p>I have one or two more things in the pipes, but they will be kept quiet for now until they are more definite. I intend to start writing a bit more about my experiences with engine development soon. Knowing me that will be in a few months though. We shall see.</p>
<p>Incase anyone comes across this blog and finds my writing in any way entertaining, do they think I should write about my experiences with indie engine development? Or maybe I can throw some random game design ideas out there and explain small concepts I have?</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/professional-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What? BrassMoonlight is evolving&#8230;</title>
		<link>http://nistur.com/what-brassmoonlight-is-evolving/</link>
		<comments>http://nistur.com/what-brassmoonlight-is-evolving/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 13:49:05 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Application Framework]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=220</guid>
		<description><![CDATA[As I mentioned, I have entirely rewritten my framework, practically from scratch. Strangely enough I&#8217;m missing the renderer, which would seem to be a major part of a game framework. Well, it&#8217;s getting there. Honest.I am actually starting a game project using it, which will be announced once I have a website set up for [...]]]></description>
			<content:encoded><![CDATA[<p>As I mentioned, I have entirely rewritten my framework, practically from scratch. Strangely enough I&#8217;m missing the renderer, which would seem to be a major part of a game framework. Well, it&#8217;s getting there. Honest.<span id="more-220"></span>I am actually starting a game project using it, which will be announced once I have a website set up for it&#8230; which first needs a web designer. Still looking. Anyway, I&#8217;ve got everyone for the project apart from artists (and a web guy) so it&#8217;s looking good. Getting narrative written up and everything.</p>
<p>So, where&#8217;s the framework at? Well, I&#8217;ve added quite a few new things, and set up a few git repositories for it. All in all, it&#8217;s moving forward.</p>
<p>As this will be part of an upcoming game project, I won&#8217;t be releasing the source for it. Not initially anyway. I think I want to list the expected features of the framework/engine.</p>
<ul>
<li>Cross platform support. <em>As a linux user, I&#8217;m constantly frustrated by the lack of native games. But obviously most gamers are still using Windows. If I&#8217;ve got one *nix system, I will also try and get MacOSX supported, if I can find a computer to do testing on.</em></li>
<li>OpenGL and Direct3D support, where available. <em>As the system&#8217;s modular, I&#8217;m going to be focussing on OpenGL, but I intend to add a Direct3D graphics module at a later date which should just be able to replace the previous.</em></li>
<li>2D UI layout system.</li>
<li>UI creation tool. <em>This will be a necessity as I hate manual UI layout.</em></li>
<li>Possibility of encrypted, archived game data. <em>Will explain this later.</em></li>
<li>3D audio. <em>Well&#8230; hopefully.</em></li>
<li>Studio Design tool. <em>This is a long shot. But I really want it to come together. It should have the UI tool built in.</em></li>
<li>Scripting. <em>Not sure if it&#8217;s necessary yet for the current game, but it&#8217;s always useful, probably be Lua.</em></li>
<li>Input. <em>Can&#8217;t have a game without human interaction, can we? Might just be keyboard/mouse. Might include joypad.</em></li>
</ul>
<p>Can&#8217;t think of much more at the moment. There&#8217;s a load more that I&#8217;d love to add in eventually. AI for example, also proper 3D collision, which I think we&#8217;re possibly going to avoid for this current game, we&#8217;ll see how things go.  Probably go with ODE for an initial implementation when I do, as it&#8217;s nice and cross platform.</p>
<p>With regards to the encrypted data, and the releasing source for the framework, I&#8217;m not intending anyone to work on my project for free, but I&#8217;d be happier to release the game for free. As such, I&#8217;ve suggested to the contributors that we do so, and stick a donation button on the site, when it&#8217;s up. Then we&#8217;ll set a milestone for donations which will cover everyone&#8217;s pay for the game. This total amount will be made public. I&#8217;m also going to set up one of those progress bars so people can see how close it is to the milestone. When the milestone has been reached, the game will have it&#8217;s source code released, and the data unlocked. Hopefully we&#8217;ll have something people want to play around with. Of course when the game becomes open source, the engine API will have to be released, along with documentation (currently busy doxygen-ifying what I&#8217;ve done so far). This will allow other developers to develop their own subsystems if they want, as well as, of course, other games. The engine source code itself will be released after a second public milestone is reached.</p>
<p>The timescale I&#8217;m currently looking at is that we have something vaguely playable by shortly after Christmas. This will be a rough UI setup, input, models with animations and at very least one location. Easter time I&#8217;m hoping to be able to release a demo which will be continually updated until release, however will only contain an hour or two of gameplay (plot limited) as we don&#8217;t want to spoil the story for anyone who&#8217;d actually be interested. I&#8217;m hoping to finish the game towards the end of 2011. Of course this depends on a lot of things, but that&#8217;s what I&#8217;d like to see happen.</p>
<p>Now, I&#8217;d best get back to coding. I have a lot to do</p>
<p>If anyone&#8217;s interested in helping with the project, give a shout please!</p>
<p>Edit: I&#8217;ve just re-read this post, now half way through 2011 and it seems like my prediction has moved almost a full year back! My current schedule is to have a prototype for demo purposes by December 2011. Wish me luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/what-brassmoonlight-is-evolving/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Silence reigned supreme</title>
		<link>http://nistur.com/silence-reigned-supreme/</link>
		<comments>http://nistur.com/silence-reigned-supreme/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 01:01:48 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Application Framework]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=217</guid>
		<description><![CDATA[I keep complaining about how little I write&#8230; and then don&#8217;t write anything for 7 months. I&#8217;m useless. I have been doing work though. As well as my new job down at Ideaworks 3D I have been experimenting with my application framework a little. I had a brief stint, trying to get it working on [...]]]></description>
			<content:encoded><![CDATA[<p>I keep complaining about how little I write&#8230; and then don&#8217;t write anything for 7 months. I&#8217;m useless.</p>
<p>I have been doing work though. As well as my new job down at <a href="http://www.ideaworksgamestudio.com">Ideaworks 3D</a> I have been experimenting with my application framework a little.</p>
<p><span id="more-217"></span>I had a brief stint, trying to get it working on Android using NDK. This was unsuccessful for a number of reasons. The main being that, much as you <span style="text-decoration: underline;">can</span> compile C++ with NDK, many many libraries aren&#8217;t supplied as standard. For example STL. The Standard Template Library. Standard. Yep. That&#8217;s missing. Before anyone thinks I&#8217;m stupid. I know you can get things like uSTL or other standin/replacements&#8230; but my struggle with various libraries that I expected to exist made me realise that, much as my code is quite neat, the structure of my classes and such leaves a lot to be desired.</p>
<p>With this in mind, I set off on an epic journey to rewrite my entire framework.</p>
<p>Well. Kind of.</p>
<p>The way Brassmoonlight was organised was that there was a &#8220;common&#8221; directory which had various modules, all of which got compiled down into a static library and then linked with a game library into one big happy executable. One of the main problems with this was that module A could quite happily see module B and I guess I cheated a bit by knowing the internal workings of the modules. So I could rely on a particular thing happening.</p>
<p>I started a new project. This one was named after my new bonsai&#8230; I named it &#8220;Bonsai&#8221; I know, I&#8217;m creative, right? I should point out now, much as I have huge plans for all my projects (this one I would like to be a 3D 3rd person semi-action game thing&#8230;) I have one specific goal at the beginning that I aim to complete. This is so that I can learn a new technique or something before the project inevitably falls on it&#8217;s face. I am still hoping for the day when my project will become something. It would be nice if this would be the one. We&#8217;ll see. The target for this project is then to make a totally dynamic and more flexible framework. This would mean totally restructuring how Brassmoonlight did it. I didn&#8217;t throw code away, however. I&#8217;m still busy grafting code from Brassmoonlight into Bonsai. The new system would be much cleaner though.</p>
<p>The plan is this. The application/game builds however it wants, parts can by dynamically loaded if the developer so chooses. The main executable must be built against  libbonsai. This is tiny. It consists of one compiled source file. This constitutes the &#8220;bonsai system&#8221;. It took me a while to decide on this as I didn&#8217;t want it to become a &#8220;god class&#8221; but the design ended up being that the system was a singleton which had the sole responsibility of loading and dealing with libraries. These libraries would then be called from within the game where the system would decide which library to pull in to fulfil the job.</p>
<p>The way these were organised in directories was that each module (graphics, input, window management etc) would have a directory withing the bonsai system root. Inside this directory would be an interface for that particular module with no specific code. Then the implementatio would be within separate folders inside. In this way I can limit the knowledge any module has of any other module. I am not allowed to go more than one directory deep into the module, meaning any specific implementation should be hidden. If you look at the directory tree at the bottom representing a chunk of the framework, so for example, the graphics subsystem, in this case gfxGL, cannot see how the window is created. There are two possible methods, using SDL or using XLib. It can only see bonsai/window/window.h.</p>
<p>This also helps with the libraries that need to be linked in to compile the final executable. If there&#8217;s a chance of SDL being needed in any form (audio, video, input etc) then you need to link against the SDL libraries. In this method, however, only the subsystems are linked against the libraries, the executable doesn&#8217;t care in the slightest.</p>
<p>One problem that occured was that with these generic interfaces, some subsystems overlapped. Again, using the gfxGL and the windowXlib. In this case, the window subsystem has to prepare the surface for OpenGL to draw on, but Xlib shouldn&#8217;t know about OpenGL at all&#8230; so an extension system was implemented. What other uses this will have I don&#8217;t know. We shall see. Now gfxGL can request a new surface, windowXlib can then request the extension needed from the system.</p>
<p>The goal for all these subsystems and extensions is to make them self regulating. They are currently loaded on demand by the application explicitely and only cleared at the end of execution. Eventually this will not be necessary. For example, the graphics subsystem should only be loaded when the application calls a graphics subsystem method. Each subsystem must then be able to manage itself and be &#8220;aware&#8221; of when it is no longer needed so it can ask the system to close it. In practice this may be difficult for certain subsystems.</p>
<p>I have also started a small containers collection in the framework. Currently it just has an array which consists of a templated doubly linked list. As there are no algoriths it cannot currently be a replacement for any STL containers but I think I prefer having something which works the same wherever. Plus I can tinker with it and add more features when they&#8217;re necessary.</p>
<p>What else is there. Oh yes. SDL sucks. It doesn&#8217;t really, it&#8217;s an amazing library. There&#8217;s so much you can do with it. You can play audio, make a window, display 2D graphics, networking, even multithreading. And it works cross platform. It works on my GP2X. It&#8217;s awesome. However. For this setup. It sucks. With SDL you can choose not to use SDL_Thread, and use pthread or boost or whatever. You can use Winsock instead of SDL networking. This I believe is because SDL is little more than a wrapper for these things in general. I expected the same to be true of input. I haven&#8217;t tried this on Windows but on Linux, you can choose not to use SDL input, but you cannot register any other key listeners or mouse listeners as SDL is firmly holding on to it. I enquired on #sdl on irc.freenode.net and I got the response &#8220;That&#8217;s not how SDL works&#8221;. Well great. I didn&#8217;t want to rely on my window being created by SDL for an SDL based input system. That breaks the whole reason I spent ages reworking my framework. And the shared event queue makes sense, but again, breaks my encapsulation. Hence the entrance of Xlib. I did play with still using SDL for a while, and attempting to poll raw devices, but decided to give up on that notion. Instead I am using a less cross platform solution but one that won&#8217;t break my pretty system.</p>
<p>The next thing I am planning to do when I get time (I&#8217;m going to visit my girlfriend next week so who knows when) is to add a config file parser. This will put me a little further onto the invisibility of the subsystems as the game can request a graphics subsystem and config file can specify that the default graphics subsystem is GL for example&#8230; or specify alternatives. Initially I think I&#8217;m going to use an existing system for this, I&#8217;m not entirely sure what yet, I&#8217;m playing with the idea of googles protocol buffers as I like the sound of it automagically binarising, but I may stick with what I know for now and use tinyXML. Something I do want to do is write a parser and/or binary serialiser into my config system. This isn&#8217;t just me being obtuse and wanting to code everything from scratch, I really like the idea of writing parsers. It&#8217;s strange. I did one module at uni. It didn&#8217;t even go particularly well for me (although I got a B) but I&#8217;ve wanted to do more file based things. So yeah.</p>
<p>After that&#8217;s done I want to make the input system actually work. Technically all that needs is me ripping the command structure from Brassmoonlight. Bonsai currently has a keylistener and a partially implemented mouse listener in OIS, but no way of sending commands (just a hard coded exit) Once I have the command system in place, it should just work (ha!) Looking beyond that, I need to make the system actually render something. As of yet, I have a hard coded square in the gfx render code. I need to sort out how I&#8217;m going to sort rendering objects, both in 2D and in 3D. Then I need to rip my resource management system out of Brassmoonlight, along with my threading, as eventually, I want resource loading done on a separate thread. Then I need an internal event queue. Then a UI subsystem. Then. Then. Then.</p>
<p>We shall see how it goes.</p>
<p>It&#8217;s always a bit depressing when you spend hours and hours coding and the only thing you have to show for it is a black window that goes away when you press Esc. I could have written that in 10 minutes. I swear the code is REALLY COOL though.</p>
<p>.<br />
├── bonsai<br />
│   ├── bonsai.cpp<br />
│   ├── bonsai.h<br />
│   ├── containers<br />
│   │   ├── array.h<br />
│   │   └── containerBase.h<br />
│   ├── extension.h<br />
│   ├── gfx<br />
│   │   ├── gfx.h<br />
│   │   ├── gl<br />
│   │   │   ├── gfxGL.cpp<br />
│   │   │   ├── gfxGL.h<br />
│   │   │   ├── Makefile<br />
│   │   │   └── Makefile.in<br />
│   │   ├── Makefile<br />
│   │   └── Makefile.in<br />
│   ├── input<br />
│   │   ├── input.h<br />
│   │   ├── Makefile<br />
│   │   ├── Makefile.in<br />
│   │   └── ois<br />
│   │       ├── inputOIS.cpp<br />
│   │       ├── inputOIS.h<br />
│   │       ├── Libraries.in<br />
│   │       ├── listener.cpp<br />
│   │       ├── listener.h<br />
│   │       ├── Makefile<br />
│   │       └── Makefile.in<br />
│   ├── lookup3.c<br />
│   ├── Makefile<br />
│   ├── subsystem.h<br />
│   ├── types<br />
│   │   ├── Makefile.in<br />
│   │   ├── string.cpp<br />
│   │   └── string.h<br />
│   ├── types.h<br />
│   ├── util.cpp<br />
│   ├── util.h<br />
│   └── window<br />
│       ├── Makefile<br />
│       ├── Makefile.in<br />
│       ├── sdl<br />
│       │   ├── Libraries.in<br />
│       │   ├── Makefile<br />
│       │   ├── Makefile.in<br />
│       │   ├── windowSDL.cpp<br />
│       │   └── windowSDL.h<br />
│       ├── window.h<br />
│       └── xlib<br />
│           ├── displayExtension.h<br />
│           ├── ExtXlibGL<br />
│           │   ├── ExtXlibGl.cpp<br />
│           │   ├── ExtXlibGl.h<br />
│           │   ├── Libraries.in<br />
│           │   ├── Makefile<br />
│           │   └── Makefile.in<br />
│           ├── Libraries.in<br />
│           ├── Makefile<br />
│           ├── Makefile.in<br />
│           ├── windowXlib.cpp<br />
│           └── windowXlib.h<br />
├── cscope.files<br />
├── cscope.out<br />
├── extensions<br />
├── main.cpp<br />
├── Makefile<br />
├── Makefile.base<br />
└── Makefile.in</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/silence-reigned-supreme/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Rawr. Update finally</title>
		<link>http://nistur.com/rawr-update-finally/</link>
		<comments>http://nistur.com/rawr-update-finally/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 09:55:05 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Application Framework]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=209</guid>
		<description><![CDATA[Ok. I&#8217;ve been silent. This is bad. I also have not updated my honours project blog for a while. I&#8217;ve just been too busy with everything unfortunately. Now, however I will try and make amends here quickly, then update my honours project blog with slightly more coherent versions of the notes of what I&#8217;ve been [...]]]></description>
			<content:encoded><![CDATA[<p>Ok. I&#8217;ve been silent. This is bad. I also have not updated my <a href="http://tiara.nistur.com">honours project blog</a> for a while. I&#8217;ve just been too busy with everything unfortunately. Now, however I will try and make amends here quickly, then update my honours project blog with slightly more coherent versions of the notes of what I&#8217;ve been doing. Anyway, back on topic. The framework.<span id="more-209"></span></p>
<p>Ok, so, to be honest, with me trying to do my dissertation, and my AI coursework, and several other things got in the way of me continuing working specifically on the framework and my demo game. I also realised that, for a steampunk game, I would need far too much shiny art, and I know no artists with spare time unfortunately. I have opted to change the style to something simpler, and my girlfriend is currently happy doodling flowers for it. So I&#8217;ve changed the game to a 2D platformer in a kind of stylised, almost impressionist style (I tried to avoid using stylised and style in the same sentence, honest) My current plan is to add some post processing effects too which might make it shiny, a kind of bloom (for 2D?) or something.</p>
<p>Ok, so far all I have is a crappy coder-art stickman which slides left and right, and some paralax backgrounds. Technically I could have written the entire application in a few hours and got the same output. This annoys me slightly. However, the level data is stored in an xml file, the content for the application is stored in an xml file. The code itself is structured in a way which (hopefully) will allow me to do what I want for this game, and allows possibilities for things I only dare dream of (code <strong>can</strong> make me fly, honest!) so I guess I&#8217;m not too upset about the small amount of output for my work. I like my code.</p>
<p>I need to comment more.</p>
<p>A lot of my framework has comments, however, the game stuff itself, has virtually none. I will rectify this soon.</p>
<p>I also managed to get rid of the stupid memory leak that I had. I honestly can&#8217;t believe it took me that long to find. Anyway, my vector class should now work perfectly.</p>
<p>Ok, some downloads. These are currently only tested on Visual Studio 2005. I have Linux Makefiles for most of the stuff, however, I haven&#8217;t got X running on any machine, so graphics are kind of limited to an &#8220;ncurses&#8221; display (which, ok, isn&#8217;t fully implemented&#8230; but compiles) so yeah&#8230; basically, Linux support isn&#8217;t there yet. When I get time to reformat my PC, I&#8217;ll make sure I set up Linux properly again (i.e. with X) so I can fix that.</p>
<p>Download Source: <a href="http://nistur.com/wp-content/uploads/2010/03/brassmoonlight-demo-02-src.zip">Brassmoonlight-0.2</a></p>
<p>Download Binaries: <a href="http://nistur.com/wp-content/uploads/2010/03/brassmoonlight-demo-02-bin.zip">Brassmoonlight-bin-02</a></p>
<p>There&#8217;s still a lot to do, obviously. The next thing I intend to do is get some basic physics working, make Mr Stickman slide around on the ground, and jump ideally. Then put some more objects in he needs to jump over&#8230; then try and get some animation done. After that, it&#8217;s time for more game-esque features, pickups, maybe enemies, then menu, that sort of stuff. I intend to do the physics and ideally get the animation working by the end of the weekend. We&#8217;ll see.</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/rawr-update-finally/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick update on PS1</title>
		<link>http://nistur.com/quick-update-on-ps1/</link>
		<comments>http://nistur.com/quick-update-on-ps1/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 14:39:46 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Modding]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=204</guid>
		<description><![CDATA[I have been away over the weekend, visiting my Dad in the Netherlands, so I haven&#8217;t done much on any project recently. However, I have now acquired all the bits I need to finish the playstation I think. I hope so anyway. I just hope I don&#8217;t destroy the case first. Well&#8230; I already have&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p>I have been away over the weekend, visiting my Dad in the Netherlands, so I haven&#8217;t done much on any project recently. However, I have now acquired all the bits I need to finish the playstation I think. I hope so anyway. I just hope I don&#8217;t destroy the case first. Well&#8230; I already have&#8230; sort of. I took my Dremel to it.<span id="more-204"></span></p>
<p>Not much of an update, but I just thought I&#8217;d share this one photo of the one side of the playstation in progress.</p>
<div id="attachment_205" class="wp-caption aligncenter" style="width: 610px"><a href="http://nistur.com/wp-content/uploads/2010/02/2010-02-10-141337.jpg" rel="lightbox[204]"><img class="size-large wp-image-205" title="side grill" src="http://nistur.com/wp-content/uploads/2010/02/2010-02-10-141337-1024x768.jpg" alt="new side grill" width="600" height="480" /></a><p class="wp-caption-text">new side grill</p></div>
<p>Ok, it&#8217;s quite obvious it&#8217;s not very neat. I know this. The fibreglass is blocking up a lot of the holes. There are some reasons for the shoddyness so far:</p>
<p>1. I didn&#8217;t have something to cut curves neatly, I used a cutting disk on my Dremel and&#8230; well, disks don&#8217;t bend while spinning.</p>
<p>2. There was nothing underneath supporting the metal so I had to begin with the fibreglass from below, PS1 upside down so the metal lay flush.</p>
<p>3. There are gaps in the top where I haven&#8217;t yet filled in with fibreglass which I couldn&#8217;t do until it was supported from beneath.</p>
<p>What I plan to do tonight is to fill in the fibreglass from above, probably blocking up yet more holes (yay, more to re-drill through!). I will also purposefully block up the holes where the bubble will go. Then when it&#8217;s all hardened, sand the whole thing down so it&#8217;s all smooth and you can&#8217;t see the joins. Drill out the holes again, apart from around the bubble and paint. I have a small problem in that I don&#8217;t know where the reset button should be mounted, or even how I&#8217;m going to mount it, I&#8217;m thinking of trying to drill a hole in the correct place, then wrapping the original button holder thing in fibreglass, making a slight conic mount&#8230; but that would require almost exact positioning, which I&#8217;m not looking forward to. I might do this after it is sanded down, at least a little, so that I have a flat surface to measure and mark out on.</p>
<p>Anyone any comments?</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/quick-update-on-ps1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update: Various projects</title>
		<link>http://nistur.com/update-various-projects/</link>
		<comments>http://nistur.com/update-various-projects/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 13:49:35 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Modding]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=200</guid>
		<description><![CDATA[Ok, I seem to have 2 non-programming projects on the go (3 if you count the amplifier as separate) and none of them are complete. This is not because I&#8217;ve got fed up of one, have no attention span or anything. I am working on everything, taking it in turns to keep things different. So, [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I seem to have 2 non-programming projects on the go (3 if you count the amplifier as separate) and none of them are complete. This is not because I&#8217;ve got fed up of one, have no attention span or anything. I am working on everything, taking it in turns to keep things different. So, a quick update of where I am with these:</p>
<p>Amplifier: I have all the amplifier modules built up. I next need to build the case (possibly counting as yet another project) and mount the components inside. I still need a power button, rear connectors (2x phono in, 6x speaker out (3x red, 3x black), 3pin kettle power)volume control + nice black dial, transformers and a crossover. Not entirely sure how I can merge a stereo signal into a single sub output. I&#8217;ll work something out.</p>
<p>Speakers: I have begun the finishing on one of the speakers. It&#8217;s been primed, and sanded down, now it needs to be filled some more, sanded, primed, sanded etc until it&#8217;s as smooth as I can get it, then it will get a couple of coats of black spray paint. I will begin with the other speaker soon too. I have also got some 3mm black acrylic which I will cut into circular covers for the back of the speakers to mount the connectors in. Once both speakers are done, and the amplifier is built, I will begin work on an 8&#8243; sub unit.</p>
<p>Playstation: Now, a few things have changed with this one. For one thing I decided it&#8217;d be crazy to try and spray bubbles with a can. I ended up acquiring an airbrush which I have been harassing the cat with. The paint is yet to arrive. I&#8217;ve also decided that the vents on the side of the PS1 are hideous and won&#8217;t be neat sprayed anyway. So I&#8217;m cutting them off, I&#8217;m also going to cut an arc out of the top on both left and right sides (well, would be an arc if the disc cover and buttons weren&#8217;t in the way) and then I will fix some sheet metal there with 3mm holes as ventilation. The buttons will be mounted in their original places, and where the bubbles were planned to be on the case, the holes will be blocked up and sanded flush with fibreglass.</p>
<p>Sorry there are no photos at this point. I&#8217;ve been busy with other things, and also have been collecting the things I need. I&#8217;m currently waiting on some diamond encrusted cutting disks for my Dremel (only £4 for 5!)  and the fibreglass then I can get started on the PS1. The speakers I&#8217;m slowly slaving away at, but visually there&#8217;s no real change in them at the moment.</p>
<p>Anyone have any comments? Done anything similar?</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/update-various-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update: Application Framework</title>
		<link>http://nistur.com/update-application-framework/</link>
		<comments>http://nistur.com/update-application-framework/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 13:32:49 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Application Framework]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=198</guid>
		<description><![CDATA[Ok, I haven&#8217;t updated this in a while. This is not to say I haven&#8217;t been working on it. As I&#8217;ve been using the application framework for my coursework I&#8217;ve been extending it for that. I have found a HUGE memory leak in it (ok, I kind of knew it was there anyway, but I [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, I haven&#8217;t updated this in a while. This is not to say I haven&#8217;t been working on it. As I&#8217;ve been using the application framework for my coursework I&#8217;ve been extending it for that. I have found a HUGE memory leak in it (ok, I kind of knew it was there anyway, but I hoped it wouldn&#8217;t be that big&#8230;) But the Vector class, the destructor doesn&#8217;t delete the elements stored. Which sounds easily fixable, apart from that my operators then throw a hissyfit. Yay. Anyway. I will be using the framework for my honours project, and should be extending it further with that. I need to speak to my lecturers to check it&#8217;s ok for me to put code I&#8217;ve now submitted as coursework online, but it should be fine. This should be updated soon then (hopefully)</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/update-application-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sound system</title>
		<link>http://nistur.com/sound-system/</link>
		<comments>http://nistur.com/sound-system/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 15:38:41 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Modding]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=188</guid>
		<description><![CDATA[Ok, this isn&#8217;t technically a mod, it&#8217;s a custom build&#8230; but it&#8217;s going in my mod section because I refuse to have loads of categories with next to nothing in them. So here it goes. I have given up with PC speakers. The last set I had was a 4.1 Logitech set that worked well [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, this isn&#8217;t technically a mod, it&#8217;s a custom build&#8230; but it&#8217;s going in my mod section because I refuse to have loads of categories with next to nothing in them. So here it goes.</p>
<p>I have given up with PC speakers. The last set I had was a 4.1 Logitech set that worked well for several years until the connections in the back of the sub got so loose that every step I took across my bedroom, one of the speakers would turn off, and another would turn on. I replaced them with a set of not-too-cheap ones from Argos. They worked for a while, then randomly changes volume, anywhere on the scale. Useless. Now I&#8217;ve given up with PC speakers. I know that I can probably get some nicer ones that will work, I just can&#8217;t be bothered any more. Plus this sounds like a great little project.<span id="more-188"></span></p>
<p>Ok, so, what&#8217;s the plan?</p>
<p>Right&#8230; so this is to be for my PC, it has to fit on my desk. This unfortunately means that a standard HiFi amp won&#8217;t fit. I have quite limited space with my two monitors. I&#8217;m wanting to build an amplifier that fits either above or under my PC case. Which means that the easiest thing to do would be buy the same PC case that I already have and take my Dremmel to it, cutting it down so it&#8217;s low, but still the same footprint. I&#8217;ve started looking into what amplifier components to fit in the amp and will be using 2x Velleman 7W amplifier kits from Maplins for the speakers, and a Velleman 200W amplifier kit to run the subwoofer. These are cheap, I know this, but I&#8217;m planning on getting something working, then replacing the guts when I have the money and time.</p>
<p>Now, what about the speakers themselves? Well, I found myself in Maplins on Friday afternoon looking at speaker units. I ended up buying 2x 4&#8243; units and some little tweeters, then I went to my friend&#8217;s house and built some speaker boxes up. They&#8217;re not great, but they&#8217;re (more or less) level, they&#8217;re smooth and once I&#8217;ve sanded them a lot more, primed and painted them, they should be quite nice.</p>

<div class="ngg-galleryoverview" id="ngg-gallery-2-188">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://nistur.com/sound-system/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://nistur.com/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=2&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-207" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://nistur.com/wp-content/gallery/speakers1/2010-01-29-162927.jpg" title=" " class="shutterset_set_2"  rel="lightbox[188]">
								<img title="Speaker panels marked onto chipboard" alt="Speaker panels marked onto chipboard" src="http://nistur.com/wp-content/gallery/speakers1/thumbs/thumbs_2010-01-29-162927.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-208" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://nistur.com/wp-content/gallery/speakers1/2010-01-29-170047.jpg" title=" " class="shutterset_set_2"  rel="lightbox[188]">
								<img title="Speaker panels cut to size" alt="Speaker panels cut to size" src="http://nistur.com/wp-content/gallery/speakers1/thumbs/thumbs_2010-01-29-170047.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-209" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://nistur.com/wp-content/gallery/speakers1/2010-01-29-192925.jpg" title=" " class="shutterset_set_2"  rel="lightbox[188]">
								<img title="Speakers built up roughly (before sanding)" alt="Speakers built up roughly (before sanding)" src="http://nistur.com/wp-content/gallery/speakers1/thumbs/thumbs_2010-01-29-192925.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-210" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://nistur.com/wp-content/gallery/speakers1/2010-01-30-140708.jpg" title=" " class="shutterset_set_2"  rel="lightbox[188]">
								<img title="Speakers sanded smooth" alt="Speakers sanded smooth" src="http://nistur.com/wp-content/gallery/speakers1/thumbs/thumbs_2010-01-30-140708.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-211" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://nistur.com/wp-content/gallery/speakers1/2010-01-31-123807.jpg" title=" " class="shutterset_set_2"  rel="lightbox[188]">
								<img title="Holes filled with filler and top/bottom sanded a bit straighter" alt="Holes filled with filler and top/bottom sanded a bit straighter" src="http://nistur.com/wp-content/gallery/speakers1/thumbs/thumbs_2010-01-31-123807.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


]]></content:encoded>
			<wfw:commentRss>http://nistur.com/sound-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PS1 Part 2</title>
		<link>http://nistur.com/ps1-part-2/</link>
		<comments>http://nistur.com/ps1-part-2/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 02:11:42 +0000</pubDate>
		<dc:creator>Nistur</dc:creator>
				<category><![CDATA[Modding]]></category>

		<guid isPermaLink="false">http://nistur.com/?p=176</guid>
		<description><![CDATA[Once again I am satisfied with how much coursework I managed to do today, so I got to have some time playing with my project. Good news. 2 parcels arrived today, the blue paint and the blue LEDs so I could have a bit more of a fiddle around. I love soldering Unfortunately I had [...]]]></description>
			<content:encoded><![CDATA[<p>Once again I am satisfied with how much coursework I managed to do today, so I got to have some time playing with my project. Good news. 2 parcels arrived today, the blue paint and the blue LEDs so I could have a bit more of a fiddle around. I love soldering <img src='http://nistur.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> <span id="more-176"></span></p>
<div id="attachment_178" class="wp-caption alignleft" style="width: 250px"><a href="http://nistur.com/wp-content/uploads/2010/01/dscn0324.jpg" rel="lightbox[176]"><img class="size-medium wp-image-178 " title="dscn0324" src="http://nistur.com/wp-content/uploads/2010/01/dscn0324-300x225.jpg" alt="Look, it's white" width="240" height="180" /></a><p class="wp-caption-text">Look, it&#39;s white</p></div>
<div id="attachment_177" class="wp-caption alignright" style="width: 250px"><a href="http://nistur.com/wp-content/uploads/2010/01/dscn0330.jpg" rel="lightbox[176]"><img class="size-medium wp-image-177 " title="dscn0330" src="http://nistur.com/wp-content/uploads/2010/01/dscn0330-300x225.jpg" alt="Albino controller" width="240" height="180" /></a><p class="wp-caption-text">Albino controller</p></div>
<p>Unfortunately I had already realised I cannot replace the Analogue LEDs in the controllers as they are reverse surface mount ones and even if I trusted myself to solder that fine with the tip I&#8217;ve got on my cheap iron here, I have serious doubts I could find replacement LEDs anyway. Not much of a project report today, all I did was give almost all of the playstation a first coat of white gloss and replaced the power LED. I realise this is bad as the paint hadn&#8217;t fully dried (it had been more than an hour for most parts) but I assembled everything without screws so I could get a look at how things were turning out and I took some photos for a look-see.</p>
<div id="attachment_179" class="wp-caption alignleft" style="width: 250px"><a href="http://nistur.com/wp-content/uploads/2010/01/dscn0327.jpg" rel="lightbox[176]"><img class="size-medium wp-image-179 " title="dscn0327" src="http://nistur.com/wp-content/uploads/2010/01/dscn0327-300x225.jpg" alt="Oooh, blue" width="240" height="180" /></a> <p class="wp-caption-text">Oooh, blue</p></div>
<p>As you can see, the paint job isn&#8217;t great yet. To be honest, I was never expecting it to be at this stage, cramped working conditions and, as you can see, the cat constantly interested, then not interested, then interested then&#8230; ooh a ball. </p>
<p>The next plan is to get some fine grade Wet+Dry paper and rub it down as smooth as possible then carefully give it another coat all over. Have been debating what to to with the analogue sticks but have decided to try and make the base of them look like a bubble and keep the tops white. The action buttons will get the symbols hand painted on, not entirely sure about Start and Select. I think I&#8217;m planning on hand painting a PS logo on both the case and the controllers but I&#8217;m still debating whether colourful is better, or just blue. Once I&#8217;ve got it all white and shiny I can start on the blue. Which will be fun. I will be away until Monday so it will probably be near the end of next week before I&#8217;m up to the blue stage. Hopefully by the end of the following week it will have lacquer on and polished up.</p>
<p>At the moment, it still looks quite boring, I mean, without changing the shape of a console, how exciting can it get? Especially painted in one flat colour. In my imagination though, I see where the bubbles are going to go, and what bits will be blue, and it already looks cool <img src='http://nistur.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Hopefully it can become true. I still need to paint another controller and 2 memory cards when they arrive, I think I may need to buy more paint, I hugely underestimated I think.  Looking good though, right?</p>
]]></content:encoded>
			<wfw:commentRss>http://nistur.com/ps1-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

