Home

Advertisement

Customize
birchlabs
30 August 2008 @ 03:13 am
Another sketch for my Flickr Gallery:

http://www.flickr.com/photos/25220800@N02/2810188162/

Might be worth doing a scan of this one, since it's photo-quality at the moment and I've made some amendments since I uploaded that.

GCSEs went pretty well. A*s in English Lit, Maths, Science, Additional Science, and Philosophy & Ethics; As in English Lang, French and Business Studies. B in Art (haha, maybe I should give up on my Flickr gallery. :P)

As far as games go... I've been working on a commission for my brother's school, which uses a MySQL database and accounts system (now that I've worked out how to do this, I could potentially use it to make games such as RPGs that save character stats to the server) for an educational game. Semi-finished, but lack of communication is making it hard to get off the ground.

I started trying to get some interface elements into Invasion 5, but it's not fun to do that in AS3, especially not with the custom buttons I had in mind. I've now also completed the switch to what I think is a Flash 10 development environment in FlashDevelop (believe it or not, I don't think there's any way for me to check if it's working), so in theory the game should be able to use GPU acceleration on a small handful of lucky computers. Development should be slightly easier now that I've got a bit more RAM (I have to run FlashDevelop in a VM, which used to be pretty taxing for my computer).

I think I've realized how to make a mode7 3D engine now (a post on Flash Kit pointed it out to me). Not only that, I think I know a way to extend it to support hills, which would get past the main limitation of this graphics mode. Not sure that I'll ever get round to trying it out, though.
 
 
Current Music: Kosutte! Oh My Honey - Hirano Aya & Sasaki Nozomi
 
 
birchlabs
29 June 2008 @ 09:55 pm
Oookay, so GCSEs are over! :D

I feel like I did pretty well. I'll find out for sure in a couple of months. As a majority of my friends are out on a variety of holiday-related excursions, I've been able to give Invasion a bit of love. The AS3 version now has all six unit types incorporated into its engine, and I have to say... it's not exactly running slowly. ;) Even on the low-spec Eee PC I've got temporarily custodianship of, it's running very nicely indeed.

So, here's what I've got so far:

http://www.birchlabs.co.uk/Invasion5.html

(Note: might show the old file. If that happens, go to http://www.birchlabs.co.uk/Invasion_5.swf beforehand and refresh; this'll update your browser's cache).

Finally on track, then. :) Just gotta add the castle's health bar, deployment UI and a pre-battle screen and it'll be all but finished. I've still gotta put some new features in, and I'll decide on what those are closer to the time... chances are I'll just go with whatever's easiest to draw.

I also have some more photos of my GCSE art, which I'll put up on the Flickr page eventually. They were taken with a (broken?) camera, so some have some pretty serious colour issues, but for the most part it's fine. I'll endeavour to draw a bit more content of my own accord soon.

For those who're interested, Diablo 3 has been announced, and it's breathtaking. Trailers, screenshots and information available on http://www.diablo3.com. Should be a nice companion to the also-upcoming Starcraft 2. And those of you looking into laptops for the next school year should seriously consider investing in an MSI Wind. Great specs for a great price, and it's ultraportable.

Anyway, that's it for updates. Peace out.
 
 
birchlabs
14 April 2008 @ 12:49 am
Added a neat little Haruhi sketch to my Flickr Gallery:

http://www.flickr.com/photos/25220800@N02/2409569229/in/set-72157604348204415/

More to come (when I get more time).
 
 
Current Music: God knows - Hirano Aya
 
 
birchlabs
02 April 2008 @ 01:58 am
It took two years, but I finally updated the website! :D

If you see any old orange backgrounds, refresh the page. If that doesn't fix it, go to:

http://www.birchlabs.co.uk/Gradient.png

And refresh that page.

And then go back to the page you were on before... and refresh that, too.

I've made a start on my Flickr gallery (Jamie will do his soon) and I've provided some long-due information on my Works In Progress.

Hopefully I'll finish Invasion 5 at some point. :P
 
 
Current Music: 天晴好心情 - 平野绫、茅原实里、後藤 子
 
 
birchlabs
31 January 2008 @ 11:43 pm
http://www.birchlabs.co.uk/Orbit.swf

So, what's changed in this version? Looks the same as the last example I posted, right?

Cosmetically, yes. But under the hood, it's a whole different beast. It's now written in ActionScript 3.0, which is what I've been using to make Invasion 5 so ridiculously fast.

Aside from the obvious speed benefits, it also means I'll be able to use the particle engine from Invasion if I decide to put any special effects in, and it also means I can use a lot more gravity points than I would under AS1.

Unfortunately there are some collision errors that I can't seem to fix. This is down to a lot of precision errors; I can only run a collision check on areas as small as a pixel, yet the character itself moves by fractions of pixels. I've spent at least 6 hours of development time trying to fix this error in numerous ways, but nothing has worked. The main problem is that since the character moves in non-isometric directions, his coordinates are far more precise than the terrain can be drawn. Rounding doesn't seem to help this at all.
 
 
birchlabs
29 January 2008 @ 10:16 pm
Gravity engine is complete!

http://www.birchlabs.co.uk/CommunalVectors6.swf

Now, here it is tackling the cherry tomato (I adjusted a few movement parameters to make the jumping a bit more Mario-like):

http://www.birchlabs.co.uk/Orbit5.swf

Also, I managed to figure out how to use Flex Builder (this being a replacement for my Flash 9 alpha version which doesn't run on Intel Macs). I'm working on a port of Invasion 5 to Flex now, which hopefully shouldn't take too long. I'm already a couple of hundred lines in as it is.
 
 
birchlabs
The engine now supports multiple vectors (joined or detached) for gravity:

http://www.birchlabs.co.uk/MultipleVectors.swf

And also points on their own, with no vector. The result is that we can now define the fruit and stem of the tomato separately, resulting in a more playable engine:

http://www.birchlabs.co.uk/Orbit3.swf

Also, I've done a bit of design work on the frontpage:



If you want to see it in movement (labels haven't been updated yet, so please note that the 'paintbrush' icon will refer to a gallery, which I haven't made yet), click here:

http://www.birchlabs.co.uk/ControversialIndex.swf

Obviously this is still just in the concept stage... I'm still getting feedback, and have decided I still need to change a couple of things.

I now have a Flash 9 beta operational again, so I can finish Invasion 5, although I'd have to do it in Windows (NOT fun). Here's where I had to leave Invasion 5 off when I changed computer:

http://www.birchlabs.co.uk/Invasion_5.swf

Regarding the Brain Training game... sorry, but that won't see the light of day. Can't play it at my own school, so there's no incentive for me to finish it and leave a server running to host it. Of course, that might change soon, for reasons I'm keeping to myself.

On the topic of multiplayer games, I have ElectroServer 4 running (I think I'm the first Mac user to do this), thanks to the SoyLatte port of Java 1.6 for Mac OS X. Being able to run ES4 means that (should I choose to), I have the power to make some pretty impressive multiplayer stuff (for example, real-time shooting games with audio chat).

I've just discovered the joys of Starcraft. It's a brilliant game, and you should pick it up if you've never played it (or wait for Starcraft 2).

There are a few games I need to add to the website. I've had a Wii version of THE BOX lying around half-finished for quite a while (need to put it on WiiCade.com, too). I also need to add Polarity, which I worked on as part of the Wrigley's Fusion ad campaign, and A Snowball Spectacular, which I wrote for Mason Zimbler during my work experience week.

There are loads of experiments I'll be adding when the new site design's finished, too. All my gravity experiments, for starters. My 3D engine. My DisplacementMapFilters. My sprite engine experiments. All my unfinished games (I have hundreds of them, some of them so premature I never even reached a name for them). Can't post my rotation matrices and Shunting-yard algorithm experiments, since those don't really have interfaces (and let's face it, nobody reading this knows or cares what they are anyway :P).
 
 
birchlabs
19 January 2008 @ 07:52 pm
I'm in the process of updating the site, and I feel that the index could do with a bit of a re-design. I've opted for a more uniform look in the icons, and also added a 'hover' effect to show which one's selected.

The problem is, I'm not sure that everyone will like these changes, so I'm posting a discussion topic about it on Flash Kit before it goes live.

Also, even when I do get the 'go-ahead' to change it, I've got to redo the 'Works in Progress' section and add a gallery.
 
 
birchlabs
19 January 2008 @ 12:26 am
Another pet project of mine is to try and recreate the engine used in Super Mario Galaxy (albeit in 2D).

http://www.birchlabs.co.uk/GravityProblem.swf

Here's a neat diagram that explains how the gravity is calculated:

Diagram

My birthday's on Monday, and I'll be getting a copy of Windows for my Mac to run my Flash 9 beta on. Once I have this, I can get back to work on Invasion, or port my Mario Galaxy game to AS3. Or I may sideline both of these projects and update the website. I did spend a few hours working on an update to the website (with bouncing icons and everything), but it was too buggy, and I couldn't make it work. I really want to add an 'experiments' page and a 'gallery', as well as getting rid of the 'links' and 'works in progress' page (WIPs would be posted in the 'experiments' section).

I'll keep you posted.
 
 
birchlabs
09 January 2008 @ 09:57 pm
Just tried out the socket server.

I can't connect to it. Why? For the life of me, I don't know. I can connect to it through telnet, so I know that I managed to get around the firewall successfully. That's good. But for some reason the Flash Player itself doesn't have any luck connecting.

Maybe I'm missing something. If telnet works, then Flash should work, too. The only thing that could be getting in the way is security issues with the Flash Player itself (and I already took measures to assure that that wouldn't happen).

Might give it one more try on Friday. I'll keep you posted.
 
 
birchlabs
06 January 2008 @ 12:41 am
Thanks to help from the guys at ElectroTank, I was able to get ElectroServer broadcasting on port 80.

So, what does this mean for you?

It means I can write multiplayer games that you guys can play IN SCHOOL. The firewall's not a problem any more. If you can browse the web, then port 80's open, so you can get through to my socket server, too. I know we already have LAN multiplayer working fine in our schools, but this will probably be the first time you've been able to play against people from outside your IT room.

Once I'm back in school, I'll run a test just to see if I'm correct about this. If that works out, I'll announce a date during which the server will be up, and you can try out Maths Battle, my Brain Training game (although it needs a couple of tweaks before it's ready to go public). Heck, I might even arrange a time for two schools to compete against each other.

Another upshot of this is that I can actually add features to the game as we play. I don't need to upload anything anywhere, or install any plugins to the server.

By the way, I finished my first 3D engine experiment:

http://www.birchlabs.co.uk/MyMode7_7.swf

I've got a plane being rendered in 3D. Brilliant. Next I'll try an _actual_ mode7 engine (or a raycaster, maybe, like Wolfenstein 3D). Once I figure out how.

I've also been itching to get back to work on Invasion, but I can't do that 'till I get a copy of Windows to run Flash 9 on. Gonna get that in a couple of weeks, for my birthday. =]
 
 
birchlabs
19 December 2007 @ 12:00 am
Over the past couple of days I've been writing a Brain Training-style 'calculations' game.

Now, that in itself is pretty underwhelming (unless of course you like Brain Training as much as I do).

What is interesting, however, is that this game is multiplayer. Not like Wing Commander, where two people would share the same computer. We're talking from computer to computer. I've already tested it, and it works fine.

After I've made a few finishing touches, I'll post it on the blog. My aim with this is to have it working in such a way that you'll be able to play it in school IT rooms. The workaround for bypassing school firewalls is simple. I just need to make ElectroServer listen on port 80, which is where all HTTP data will be going through (as such, schools need to leave this port open). I'm currently not having any luck, but I'm still looking into it. If I can't get it running on port 80, it still works on port 1234, so you'll be able to play it outside of school (although it means my computer has to be on at all times for you to play it).

I'll keep you posted.

Oh, and I made a bit of headway on my 3D engine:

http://www.birchlabs.co.uk/MyMode7_6.swf

There are two ways to get rid of the annoying "missing triangles" problem (note that these are being removed because they're behind the camera, so if I tried to render them you'd get horrible graphical glitches). One method is laughably simple, but the other (which is the preferred method) is incredibly hard maths. I don't think I can be bothered to try either of them, to be honest.
 
 
birchlabs
12 December 2007 @ 05:33 pm
As soon as I say there's nothing in production, this comes up:

http://www.mzl.com/asnowballspectacular/

A Snowball Spectacular is a game I worked on for Mason Zimbler during my work experience week in October. It finally went gold today (my placeholder art had to be replaced with Victorian-style drawings).

I think it came out pretty well. :) The game's different to where I left it off, but it's still great. I might add this to my 'Links' section soon. In fact, I think I need to redo quite a few things on the site. For starters, I need to add descriptions to everything, and add a line of text saying how many files there are in each folder.

I also need to add an 'Experiments' section, since I have a lot of engines and half-finished games that ought to see the light of day. Also, the games page runs slowly on account of how many objects there are in it... I'll split it up into subsections such as 'Strategy', 'Puzzle', whatever. I also think it would be nice for me to have a 'gallery' section. I've got some pretty nice drawings posted on this blog, and I can scan in a few more this week.

Also, I think I've thought of a way to make the whole spinny system run a bit more smoothly.
 
 
birchlabs
11 December 2007 @ 10:00 pm
I haven't posted in a while on account of my continued studies. Well, rest assured I AM still working busily away on Birchlabs stuff.

I can't continue on Invasion (note: Polygon's been put to the side at least 'til that's finished) because Flash 9 doesn't work on Intel Macs and I don't want to shell out hundreds of pounds on CS3 when I don't need it. Once Christmas comes, I'll have a Windows VM, so I can continue work on it using my Windows version of Flash 9 instead.

I did go through a phase of trying to write an implementation of the shunting yard algorithm. This converts infix expressions to postfix (Reverse Polish Notation). For example, this expression:

3+4*2/(1−5)^2^3

Would be tokenized (a 'token' would be any operator or operand of the expression), then the algorithm would output it as:

3 4 2 * 1 5 - 2 3 ^ ^ / +

When it is in this form, it can be easily parsed and evaluated.

Now, why the HELL would I do this?

Well, anyone who's ever used the Calculator bundled with Windows or Mac OS X for anything more complicated than basic sums will agree that it's a pain. For example, to solve the quadratic equation x^2-x-1=0 (let's just run this through the quadratic formula):

x = (-b±√(b^2-4ac))÷2a

You can't work that all out in one go with these programs. You either need a pocket calculator, or access to a programming language.

Had my attempts been successful, I would've finally been able to solve this problem, but I wasn't able to get hold of decent enough documentation on the algorithm to work it out.

Another little side-project of mine is my 3D engine. If it works, I'll post a cool diagram or demonstration of it. What I've managed to do so far is split a bitmap into triangles, and then apply an affine transformation to said triangles. This transformation will distort the bitmap such that its vertices are mapped to coordinates in 3D Cartesian space.

In other words, I can take any 2D square or rectangle (or any right-angled triangle, I suppose), and give it a 3D position, orbiting a camera around it with perspective and everything. This is a huge step toward a full 3D engine. Think about it: 3D models (not sure about ones that use NURBS) are just meshes of polygons. Polygons can be split into a set of triangles. Any triangle can be given a right-angle by using a shear transformation. This means that I can pull in a 3D model in the form of loads of right-angled triangles, then render all of these triangles in whatever 3D position I want.

So even though I've so far only got a square being transformed, that's just a stone's throw away from rendering a whole 3D model.

Of course, it's more complicated than that. There are issues such as lighting (not gonna happen, the maths behind it is complicated) and z-sorting (the renderer has no idea what order to draw the triangles in so that they will overlap in the right places. obviously the order keeps changing; if you rotate the object, triangles at the back will have to be drawn at the front instead). Omitting triangles that shouldn't be displayed is called backface culling, and I think the method for doing this is a simple raycasting algorithm. Don't think I'll get that far, though.

An easier, faster way to make a (much simpler) 3D engine is raycasting. This is how games such as Wolfenstein 3D worked. If you know anything about the computers that Wolfenstein 3D ran on, you'll know it's a pretty processor-friendly operation. I might try one of these, it seems like a fun project.

Anyway, the school term ends this week, so I'm hoping to get some Flash time in during the Christmas holidays (although I might be too 'busy' playing Crysis to do anything else =] ).
 
 
birchlabs
05 November 2007 @ 05:28 pm
Aluminium iMacs

Wow. Just wow. I got a new computer, it's the big one on the right.

Screen: 24" 1920 x 1200
Processor: 2.4 Ghz Intel Core 2 Duo
Graphics: ATI Radeon HD 2600 Pro
RAM: 2 GB
OS: Leopard
Random Apple additions: built-in webcam, mike and speakers. Little IR remote, and Apple handkerchief for cleaning the screen with.

Leopard is a thing of beauty. Not saying I've actually needed any of the features yet, but the interface is a lot nicer, and the computer itself... so much faster than my iMac G5. So much more screen space. And it can run Dofus Arena! How I lived before this, I can only guess.

If I had to pick a favourite bit, it's how quickly the computer wakes up fom sleeping. 'Bout 2 or 3 seconds, which is really good, since I always put my computer to sleep to save energy whenever I leave the room.

I'm sure a lot of people here will bitch at me for buying a Mac again. But I love the Mac experience, and I intend to get a Windows partition on it as well so I can try out these viruses I've heard so much about. :)
 
 
birchlabs
22 September 2007 @ 12:55 am
Didn't return home in the greatest of spirits today, so I decided to do some coding instead of starting my homework.

http://www.birchlabs.co.uk/Invasion_5.swf

What's so special about this, then? You've seen it all before, right?

Not quite. These are the same troops and collision checks I've used before, except... they've been applied to the super-zippy copyPixels() engine.

You may notice that the arrows stick into the troops as they walk along. That feature's been in Invasion for years, but none of the units ever got enough arrows sticking in them for it to be noticeable. In this example I gave the troops thirty times their usual health so that they'd survive the arrow storm.

Obviously there's hundreds of collision detections being run per frame now that I've got some units in, so the framerate's never going to be as fast as it was here:

http://www.birchlabs.co.uk/Invasion5CP.swf

But I'm still getting about 22 fps for 2,000+ sprites on-screen. This is FAR faster than any of the other versions I posted that had troops and collisions. And it's still pretty close to what I would've gotten without them.

Mainly did this to convince myself that the project wasn't dead. A lot of people have been asking about the status of Invasion 5, so I decided it was best to just take the plunge and get it over with (I'd been holding back for a while - porting the collision algorithms and troop handlers is a very arduous job; in the end I decided I didn't care how re-usable or flexible the code was, since I realized I was never going to finish if I worried about that too much ^_^).
 
 
 
birchlabs
07 September 2007 @ 09:44 pm
Was just reading NGamer a few minutes ago, and saw something that made my jaw drop... Shaft!

Shaft in NGamer!!

That's just... wow. :) Shall have to write in and thank them!
 
 
birchlabs
13 August 2007 @ 01:42 pm
Here's the latest version running as fast as possible:

http://www.birchlabs.co.uk/GridDisplacement5.swf

And here it is back at the original framerate - 31 - again (so you can actually see what's going on properly):

http://www.birchlabs.co.uk/31FPSGrid.swf
 
 
birchlabs
11 August 2007 @ 03:36 pm
All Geometry Wars clones I've seen have left out the game's coolest feature - the bending grid. Well, I've been playing with the DisplacementMapFilter, and come up with a similar effect:

http://www.birchlabs.co.uk/GridDisplacement.swf

It's based on other peoples' source code, but I've optimized it A LOT - the whole displacement channel is pre-rendered, so there's no intensive blur operations being performed at run-time, and it only displaces the ripple area rather than modifying the whole stage.

It's... beautiful.
 
 
 
 

Advertisement

Customize