Hello my lovable minions, today let’s talk about board games.
Well, not really, but let’s briefly discuss that I made one. This was an all-important C++ refresher that I wrote in preparation for a small interview the other day where I knew I’d be queried on some C, so it seemed only practical to do some for the first time in a long time. Nothing particularly complicated, but a good refresher in pointers, memory management and classes/program structure. The one zip file I’ll provide includes both the source and a compiled exe, since C programs are so small anyway, and it’s only command line — download here.
Before the current Nerdshack, and before the previous Nerdshack, there was the original Nerdshack – the same site really, blog, portfolio and random drivel, but in a more designed shell.
I recently found this single screenshot of the old design and figured I’d publish it for posterity. I still like it – those boxy headline backgrounds were based on the window frames from the Watercolour theme in Windows Whistler (XP) builds 2410-2419, and the boxy layout of the sidebar complimented it nicely.
In the final iteration, the lower boxes on the sidebar contained links to recent blog posts, and clicking any link in to the blog triggered a smooth transition to the identically laid out but much darker design of the blog. I’m currently investigating building a similar theme for the current site – the grey is nice but it is a bit depressing after a while!
Hopefully this week I’ll be recieving a large number of LEDs and some replacement chips for ones that were fried in my first attempt and I can finish off my new Xbox mod. I pulled it apart and figured out all these problems over the weekend, and fixed a few small glitches while I was there, as well as finally switching the ROL lights in my 360 to blue so they match the Xbox1. One photo now, one in a few weeks when everything’s finished and beautiful :D
Well I’ve spent a lot of my downtime the last few days crawling through C++ in the Visual Studio debugger, and gathering crash data via adb from my tablet, all in the name of fixing threading bugs! A few core classes lightly stripped down and occasionally rewritten, a few things jiggled about and we have something that’s stable [on Windows].
I left several copies of this code running the other day as a test — none explicitly crashed, although there are persistent memory leak issues (aka, “gunking up”) over time which eventually lead to what is basically a freeze on the second thread, which does all the work. But in my testing all the sessions ran for at least half an hour at double speed (only a debug option right now, sorry), notching up an impressive health of over -5000. For reference, besides the threading related crashes everything else is basically the same as in the previous demo, so still lots of unfinished/unfixed/placeholder content and code.
Progress with Tower Defence has been slow recently, what with moving and the general disruption that brings, but the other day I did manage to settle in and resolve a few long standing and occasionally nasty bugs which brings the game to a highly playable level. As such, I felt it might be prudent to make a demo available so people can actually try this thing out themselves rather than watching my boring videos.
I’m a long way from guaranteeing it’s crash free, but it’s not far off. There are also bugs galore (see full release notes after the break), and a few things are disabled for being either half implemented or inconsistent in performance or reliability, but it gives a reasonable overview of the project. This release is in the form of a Windows binary, although if there’s any interest in OSX/Linux/mobile builds I’ll happily crank one out and you’re welcome to see if it works.
I regard Pixita as my first “real” programming project, way back around 2006/07. I had been experimenting with Visual Basic since about 14 (although how much I understood what I was doing is questionnable) but trying to make sense of other languages made my head spin; It wasn’t until University started teaching me Java that suddenly everything clicked in to place, and now I can understand most any language thrown at me.
At what point do you own too any games? Having just moved, I unpacked all my games and lined them up in the only place with enough room for them – the top of a wardrobe. It’s a pretty long line of stuff, and it doesn’t include all the games I keep on the hard drive of my original Xbox (also not pictured: Halo 4, Forza Horizon and L.A. Noire, because they’re all near my 360.) Only one game there is still in plastic (DiRT 2), although there are a few that I’ve only played briefly for whatever reason (most embarrassingly, Just Cause 2, because I thought the original Just Cause was amazing.) The plain DVD case at the top is a backup of ‘Chronicles of Riddick: Escape from Butcher Bay’ because my original copy was damaged long long ago, if you were wondering.
How many games do you have and do you think you have too many? As long as I have a chance of finishing them all before my aging 360 RRoDs again I figure I’m alright!
Occasionally I start Googling random collections of words related to video games — more usually, video game jobs, hoping some golden ticket is going to fall right out of Mountain View or something. I often end up reading lots of forum threads and blog posts about the topic and how to make yourself seem attractive to studios etc etc, and it was within one of these little quests that I read an idea that nagged me, “Just make something … Tetris or something, just show you know what you’re doing.”
So a few days later I got up and made Tetris.
All told it was maybe 6-8 hours work split across two days: Mostly production, with the final couple of hours on day two dedicated to bug squashing. Anyway, it’s super simple but I think it’s kinda neat for what it is. As ever, this game is built with Haxe NME (3.5) – to compile the source you will also need the Actuate tween library installed. Download the source here.
Continue reading “Quick project: Tetris”
Hello once again!
Today I’m happy to offer some code from my early prototypes of Tower Defence, build 13 from September/October ’12 if anyone is pedantic enough to want to know. It’s super basic: No maze generating algorithms yet, not much in the way of gameplay. A random maze is created (i.e, each map tile is 50/50 whether its walkable or not), start and end points generated and a route found between them using A*, and an “enemy” (green square) moves along the path. You can create a single weapon type – the gun – which fires very slow moving bullets at the enemy.
This code also contains remnants of my quick and dirty collision system, although Box2D is actually running the show.
Continue reading “Tower Defence prototype code”
Within the nme.geom package of HaXe NME you’ll find Matrices, Points, Vectors, Rectangles and… ColorTransform? Yes, it seems a slightly odd place to put it, but that’s where it is, and it can be useful in your project. No doubt, there are endless things you could do, but I wanted to talk briefly on how I’ve used it across my previous Pinball project and now, in Tower Defence.
Simply, sometimes you want the same object to appear multiple times in your project, but with subtle variations. Behavioral changes can be accomplished in code by subclassing, size variations by scaling, but what if you wanted it red in one instance and green in another? Including the same image twice with different colours seems redundant, even if the images in question are quite small, so what are your options? Well, a ColorTransform is an option if the image is a simple, single colour. In Pinball, I used this method to colorize the lights and lighting effects – the image files themselves were greyscaled, and were coloured in code before being displayed – and now in Tower Defence, I’m using it on some UI elements (the slider knob’s that change colour dependent on value).
Let’s step through how this works. First, of course, you have to create a graphic you want to use. Here’s the image of the slider knob in Tower Defence, as it came out of Photoshop…