Oct 19, 2015 - Plight of the Weedunks

So I've just stuck up the (almost) entire source of Plight of the Weedunks to Github: http://github.com/stuckie/plightoftheweedunks. It's missing the amBX code, but you don't need that anyway... and the DLLs we had for it have long since expired.

Why put it up now?

Firstly, I lost it.

I only just found it while pouring over some backup archives, pulling together lost bits of projects - of which I've started and abandoned a huge amount of. Also, it's got some rather interesting bits and pieces in there... it binds Horde3D, ODE and Lua together.. the vast amount of gameplay logic is written in Lua, and from what I remember, we actually tick the engine over from Lua as well. It also has some quite horrendous coding practices, before I settled on anything remotely readable... but shh...

Secondly, it's important.

As I said, I lost it... and that's quite a big chunk of code to lose, and especially something that maybe not culturally important, but it's certainly important in my own programming history. It's also quite old now, and not entirely useful to a lot of people these days, so hopefully I haven't ruffled too many feathers over at Dare to be Digital as technically they likely still own the rights to it ( though I do believe our team leader was attempting to get them a while back, and the rest of us had agreed - me on provision of being able to release the code - but not sure how that went... ) Either way, the art assets are missing - I never had a copy of the source archive. The ones here are compiled and built for the game, so will be pretty difficult to use or modify for other things.

Anyway, some choice bits of the code to look at.

The Converter was modified slightly to pull in some more information that we were spitting out of Maya ( I don't have the Maya bits we wrote - that was in the Art repository, which I never grabbed... ) Most useful bit being in https://github.com/stuckie/plightoftheweedunks/blob/master/ConverterSource/Source/Collada%20Converter/converter.cpp around lines 1038 - 1351 .. where I start spitting out Lua files for lights, cameras and chunks of level code. This helped immensely as it let our artists and level designer set where everything was in Maya, and we just picked it up on our end and started writing logic around it. It did however have the huge caveat that if the level changed, so too did all the scripts.. and that caught us out a few times until we started chunking up the logic better.

Other fun things are that all the ODE collision information got passed out to Lua. So when something collided, Lua was triggered to see what to do with it. Vast majority of the time it would be nothing, but we were able to trigger sounds ( or amBX effects! ) and bounce things off one another and so on. I'm still surprised how well it worked. Again, all of ODE was bound out.. if you check the level loading scripts ( we'll take Toothy as an example; https://github.com/stuckie/plightoftheweedunks/blob/master/source/data/scripts/levels/toothy/physics/static/toothy.physics.static.lua ) they're all split into scripted, dynamic and static. We then just call ODE to bind the dimensions out properly... most of which got spat out by the converter.

We also effectively bound out all of Horde3D to Lua as well, so we were able to poke at the rendering pipeline from within Lua. For example, https://github.com/stuckie/plightoftheweedunks/blob/master/source/data/scripts/misc/engineSetup.lua actually sets up the resource paths for Horde3D, and I vaguely remember Lachlan doing some crazy shader stuff at some point through Lua as well, before we dropped the HDR pipeline completely.

It certainly has got me thinking about crazy projects to try with GameMaker...

I've been unearthing lots of old projects while digging around archives, so I'll be trying to get them up on GitHub as well. It would be a shame to lose them entirely, as almost happened here!

Sep 8, 2015 - Windows 10 (Nightmare Edition)

Perhaps installing Windows 10 while being ill was not the best plan... Not only that, but on a machine which Windows 8 didn't like to install on ( the tech previews installed happily, but the final retail did not, curiously ) However, sometimes a distraction can prove welcome, and Windows 7 was getting rather slow and clogged, so a reinstall seemed a good idea.

I'd already upgraded a couple of machines to Windows 10 without issue, and they did run faster... so thought that maybe this time, it'd be plain sailing. Nope. Straight after first reboot, it complained that something bad had happened, and to insert the install media and try again.


Ok.. so installing from scratch may not work, but I can upgrade from a Windows 7 install... so I reinstalled 7, and tried that way. This time, it didn't even tell me it had failed with a nice error box, it just decided "nope, failed, so let's revert back to 7, whether you want to or not" So that's a bust.

After having a quick look about, it seems there could be a few issues... 1) Drive formatted as MBR instead of GPT - so I fixed that, reinstalled, and nope... 2) USB devices acting funny - so I unplugged them all, reinstalled, and still nope...

But, I did come across an article that if there's a hardware incompatibility - due to missing drivers on the disc - it can do what I'm seeing. My machine is rather old.. it's an Asus M2N-E SLI motherboard, 8gig ram, GeForce 550 Ti GTX ( or somewhere there abouts) and an AMD 9850 X4 Phenom Black Edition processor. It's had all manner of Linux installed on it.. it's even had Mac OS X on it for a giggle while fiddling about.. and has been happily running Windows through XP, Vista and 7. Surely a hardware conflict would've raised it's head by now? Either way, I followed the instructions, which consisted of bringing up the Command Prompt (Shift + F10) when the "something bad" message appears. Calling up regedit, then finding HKLocal machine/SYSTEM/SETUP/STATUS/ChildCompletion and setting setup.exe from 1 to 3. This worked, and install continued happily... until the next issue...

Almost constant rebooting for apparently no reason once I got to the desktop.

One of the issues that could've been halting install was USB wifi, so I removed that and it seemed a bit more stable.. so off I went to get the driver on another machine, onto a usb stick, and install that way. I did the same with the nVidia graphics drivers too, as that was another hiccup I had seen regularly - borked graphics drivers. And it did seem slightly more stable. Until it started installing updates... and the reboot-loop began again. This seemed to be caused by a somewhat wonky update, so I removed the USB wifi again, and poked in the registry, finding HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList and deleting any with a ProfileImagePath. And that seemed to behave itself again.. so I stupidly turned the machine off for the night after a day of wrestling with it.

That was a fun mistake.

On booting in the morning, it crashed while logging in and rebooted. Only now, it's pretty adament I have the wrong password - even after changing it online. So.. back to the recovery command prompt. A run of chkdsk D: /F /R/ X ( to make sure it tried something ) took a few hours and ... nothing. Attempted to jump to the last restore point before the update and... computer says no. So.. it's stable at least, but I can't login and use it. I can't boot to the recovery console on the install itself, as it wants me to login... so I can't add a new user, or activate the Admin user. I can't use the recovery shell from the install disc to add a new user, as the net service talks to the recovery environment and not the actual install on disk.

I have been fiddling with computers from a young age - which I blame my parents on for encouraging me. I've installed Slackware 8.1 from floppies onto a 486. I've installed Mandrake and SuSE when nVidia just started pushing out binary drivers, and the madness that caused in system stability trying to use them. I even got my printer and scanner working under Mandriva! I've compiled Gentoo on an AMD Duron 1200 with a gig of ram just to see how it all worked. I've built embedded Linux systems with Debian and LFS. I've created cross-compiling toolchains between ARM, MIPS, x86, and x64. I've even built runnable Windows software under Linux via WINEGCC.

All of these have been fun projects as I wanted to fiddle with them. Never have I come up against a piece of commercial software - especially such a vital part of a computer's software infrastructure - that I've had to do such ridiculous hoop jumping just to get the bloody thing to work! And it still doesn't!

It runs fine on the laptop I recently upgraded from 8->8.1->10. It runs very well on the media centre I upgraded from 7->10. It'll likely run fine on the two netbooks I have, and another one of the laptops ( if I can get it's graphics chipset fixed, anyway ) But my main desktop? Nope. Not having that. Which makes me somewhat wary of letting it go near the Badgers work laptop as I can't really have that explode on me the way my desktop has.. it needs to stay running for those precious few minutes I can find to work on things. As life is.. well.. life.. it gets in the way of everything... For instance, this site is waay behind schedule of being sorted out.. The Badgers site at least runs, but I've not been able to do anything Badger related for about a year now... short of some patch work, and filing paperwork for the accountant to play with. I can't afford time to muck about with OS installs that go haywire anymore.. I need something that works, and funnily enough Windows just doesn't make sense anymore; Linux does.

I'll have another fiddle tonight with Windows 10, to see if I can get it to stick. But odds aren't looking good for it, and I might be back to fully Linux.

Good thing Debian 8.2 just got released, then!

Mar 10, 2015 - We've moved again!

So, let's see if this thing works at all...

I'm getting a bit fed up with the server going down a lot recently.. which seems to be Wordpress' bulkiness just being that bit much for the (in all honesty, aging) server. So lets start migrating away from it as best we can.

First up, bye bye Wordpress, and hello Jekyll. Jekyll is a static site generator... feed it some stuff and it'll spit out html based on templates and things. Nifty. I was just using Wordpress to basically log in, type some stuff, and leave it alone for a while... I stripped out Apache, stuffed in nginx, and various caching things to make it all run faster as the generation time for the pages was getting a bit much.. now, it's all static. There's no reason for it not to be static, and technically never was, so yay! Bye bye Mysql as well! Of course, I still need to edit the posts and create new ones.. so, let's move the site over to github, and host it from there, with images elsewhere.

No, seriously.

The blog is now on Github.

Not everything has been sorted out yet, and this likely won't be live on the main domain for a bit, but those who poke about will at least see this and understand what I've done and why.

Don't get me wrong, I enjoyed using Wordpress.. but it's a bit overkill for me to type stuff now and then, and have it constantly regenerate pages for little reason. Just eating processor time for the sake of it, really.

The Badgers site will be moving to Jekyll as well, and probably the same setup, but that'll take a wee bit longer to sort out.