Showing posts with label ramblings

Strange times

Posted on 11/13/2011 by Glenn

Labels: ramblings

Just some quick updates and cross promotionalizing, I’ve been doing a lot of work recently in generating procedural content for Junkship, I’ve written a post on what I’ve been up to on here. Also released a few updates to my gamedev framework MGDF (which coincidentally Junkship is using). Apart from that the main thing sucking up all my time these days is finalizing the details for my move to San Francisco for my new job in January. There really is a huge partially hidden tree of dependencies that have to be satisfied when moving your life halfway across the world, the complexity of which can only become obvious the further down into the details you delve.

0 Comments

Coloring the void

Posted on 6/21/2011 by Glenn

Labels: ramblings programming

Things are happening over at junkship.net for the first time in a long time (Well they will be soon!) I've finally got my homebrew game development framework (MGDF) to the point where I think I can release it (as an alpha) and more importantly actually start building a game on top of it.

 

MGDF is a framework built to focus on a couple of areas that I feel are neglected in most existing frameworks, in particular ease of distribution, updating, and ensuring all the boring but useful stuff gets done properly (logging, initializing DirectX, error reporting etc.) To achieve this, MGDF acts as an IOC (Inversion Of Control) container that loads up your game logic and calls into it at appropriate times during the rendering and game simulation loops (Render, Update, Save, Load, etc.) The advantage of this approach is all the audio, input, file-system, and DirectX rendering objects are set up by the framework. All you have to do is provide the code which actually handles the game logic and rendering (the fun stuff!)

 

MGDF games are distributed as .mza files which are effectively zip files containing the game logic, the game content (in the form of compiled c++ dll’s), and some metadata that the framework needs. These packages can be published online to an MGDF game source (An online MGDF game repository) which allow users to download the game, and will allow the framework to check for and download updates for that game. Anyone can host or run a game source, and it uses a JSON API to allow easy interoperability and the ability for alternative game source implementations to be written (The reference implementation is written in ASP.NET).

 

As a developer, pushing out updates to your game is just a matter of uploading the newer version to the online game source (you can also create update packages which contain only the differences between existing versions to allow for smaller update files). For developers wanting to publish non-free games the Game Source API has in built security controls that allow you to restrict access to certain game downloads to a set of authorized users (There are no forms of DRM built into the framework though, and there never will be :))

 

MGDF also has an optional statistics collection service (which is entirely opt-in by the end-user) which allows developers to collect statistics information on how users play their games. These statistics services also use a JSON API and can be hosted by anyone (there is no centralized stats tracking... no phoning home)

 

Its all pretty raw at the moment, and while there is a very basic SDK with a few docs that I've included, its all very much alpha software. I intend to use MGDF in my upcoming projects, and if there’s any interest by developers out there, I'll develop the SDK further. MGDF is released under the MIT license and the source code can be downloaded from github.com (see www.matchstickframework.org for more details)

 

So anyway, after winding our way through the ins and outs of MGDF, back to the original news - the changes over at junkship.net. As you may or may not know Junkship is a project that some friends and I had been working on on and off for some time, though for various reasons there was never really any concrete progress made. However, now that MGDF is in a workable state, it is now my intention to give Junkship a bit of a reboot and actually start some proper development. The main change is that the game is going to have less focus on a pre scripted story and be more heavily based on crafting, procedurally generated content, and hopefully multiplayer. I guess this reflects both my own changing taste in games, but also a sense of pragmatism as to what a small indie team is capable of accomplishing.

 

Anyway if you want to know more I will be writing up more details on the junkship.net blog, which I plan to use more as a dev-diary from now on (I guess I should also give the Junkship site an bit of a revamp as the content is pretty out of date). Rants and non Junkship stuff will still be posted here though :)

1 Comments

Nightmare scenarios, universal parables, and debugging

Posted on 7/18/2010 by Glenn

Labels: ramblings programming

Do you ever get the feeling that you are a subject in some sort of roundabout moralistic parable that is designed to encourage humility and patience in others? For me the most probable cause for this mindset is when a seemingly reasonable task becomes unreasonably complicated and that in finding a solution for the said task I have forced to become a more rounded, knowledgeable, and enlightened individual. Often in these cases, the cause of the problems is due to someone else’s laziness which further enforces the feeling that the moral of the story is that in a greater cosmic sense, slacking off will only create more work for others, in some form or another, at some point in the future.

 

Changing tack slightly, I find the worst thing about developing a large piece of software is the nagging feeling that somewhere in the core foundation of your application is a subtle design problem that is going unnoticed (Be it a performance issue, or a platform issue, or simply an incorrect assumption as to what is and isn’t possible) and that at some point in the future it is going to rear its head as a unsolvable problem that is going to render the entire application as a worthless piece of junk. Its more an unfounded nightmare scenario because thinking rationally, I can quite quickly evaluate the probability of this happening as remote. The reason being that up until now I have never experienced such an issue, and in the end every bug I’ve ever had in software was solvable or could be satisfactorily worked around. However, just because something hasn’t happened yet doesn’t mean that it can’t happen.

 

Now to subtly link the two previous ideas together in a thrilling conclusion filled with sage wisdom, I get onto the problem I had today. I was finding that my game engine was taking over 30 seconds to load when using the Visual Studio 2008 debugger. Of course this made debugging an incredibly frustrating exercise in tedium, and because this is a project that I work on haphazardly in my spare time I wasn’t sure it this was a new issue, or if the engine had simply been getting slower and slower and I had just never noticed. This was this as an incarnation of the nightmare scenario, was my game engine just a slow and bloated piece of shit? Well thankfully no (not yet at least anyway). It turns out that having a bunch of break points set (possibly old invalid ones etc…) causes visual studio to hang for an arbitrarily long time until it gets its shit together and actually loads the program for debugging. Why it does this… no idea (though it reeks of slack coding), but the solution turned out to be simple. Click Debug->Clear all breakpoints and voila, the engine loads up in less than a second.

 

The ironic thing is is that in wrapping both the problem and solution for this issue in a pile of worthless prose, I have effectively made it much harder for anyone else who is looking for a simple solution to find it, and hence I am perpetuating the very feelings of frustration I was complaining about earlier. A sobering thought indeed, but for better or worse its written now, what would be the point of deleting it?

0 Comments

Walden 2.0

Posted on 1/30/2010 by Glenn

Labels: ramblings

In the classic novel ‘Walden’, Henry David Thoreau went to live by himself for over 2 years in a hut near the secluded Walden pond. He did this, not to live in total isolation, but rather to live at arms length from society in a simple largely self sufficient manner, in order that he could look upon his own life and the lives of others with a greater objectivity and understanding, or as he more poetically put it.

 

“I went to the woods because I wished to live deliberately, to front only the essential facts of life, and see if I could not learn what it had to teach, and not, when I came to die, discover that I had not lived.”

 

Now in 1845 it was hard enough for him to achieve this goal, and now it is almost certainly impossible in 2010 to live in isolation, at least in the traditional sense. But what of the the meta lives that we all live out in various online communities?

 

In the beginning, the web was intended to be a platform where most people would self host a (largely static) website, over time this has evolved (particularly with the advent of web 2.0) and now we have a situation where the vast majority of internet users communicate through a handful of large sites run by a third party (the google, facebook, myspace, digg, twitter etc.).

 

I see a definite parallel between this loss of independence online and the loss of independence bought about by modern society. Now there are a number of good and valid reasons for this happening, the main one being that over time people tend to specialize as it makes society more efficient, and we resort to trade to fulfill the needs which we don’t have the skills to do ourselves.

 

It makes sense that most non-technical people wouldn’t develop or host their own personal site/forum/blog, just as I wouldn’t consider trying to generate my own electricity or grow my own food (well I have considered it… but I’m probably not going to actually do it). However as someone who does have the technical knowhow, it begs an interesting question: Should I bother with the hassle, or should I just sign up to facebook?

 

It’s not that I have anything against facebook or other web 2.0 services, but like Thoreau before he went to the woods, I’m not really sure whether this loss of independence (and by proxy loss of privacy)  is a good or bad thing, but I’m willing to stay out in the wilderness for a while longer in order to make up my mind.

2 Comments