Jeremy Read

From idea to failure

January 3, 2009 on 10:36 pm | In Uncategorized | 6 Comments | Jeremy Read

During the party I went to at New Year’s I realised that TVs are now large enough, that a lot of people can sit around them and that just about everyone now has a cellphone. So why restrict yourself to only having a maximum of 4 players for a game? If you could use a cellphone as a controller via Bluetooth, then you could have many players playing the same game, perhaps playing virtual cricket.

Figure 1. Crude drawing of people sitting around a TV playing cricket.

This seemed like a cool little project to work on. Since the bluetooth protocol has named devices, you could automatically have your name appear in game. Also FPGAs are cheap now, so combined with some basic bluetooth hardware it would be possible to build your own console system, though for now I was going to use my laptop as a testbed.

The first task was working out how to connect a bluetooth device (in this case my cellphone) to my computer via code. My language of choice is C# as it’s the language I’ve worked with it for about 4 years now and tends to have better library support on the Windows platform.

After a couple of minutes hunting around I discovered that there was a bluetooth library in the Coding4Fun samples. From there it was a breeze to programmatically find my cellphone and connect it and prod it, and it’s at this point I realised I had a problem. I can’t fetch arbitary input from it, hence I can’t use cellphones as input devices.

Which kind of throws a spanner in the works. Now I could target specific phones from this point on, and write an app that sends the information I want via Bluetooth, but currently this idea is on hold as what I really want is a nice general solution for all cellphones.

Jeremy Read

10 Games you should have played, but probably didn’t [5-1]

September 21, 2008 on 1:39 am | In Uncategorized | 3 Comments | Jeremy Read

5: Wonderboy 3 : The Dragon’s Trap

How good is this game? There’s an emulator dedicated to it. Platform game for the SEGA master system. Killing a dragon at the start of the game results in you being transformed into a lizard, and hence your quest begins slaying all that stand in your way in your quest to become HU-MAN again. It’s well worth playing the sequels on the mega drive as well, Wonderboy 6 (Monster World IV) is particularly good.

4: Transport Tycoon Deluxe

Chris Sawyer’s masterpiece. Shift goods around the map for profit. Easy to get into while you try and construct a transportation monopoly, bribing town officials as you go. What makes it really interesting though is the OpenTDD clone that uses the data files. This lets you play the game multiplayer over the internet with 8 players. Complete and utter chaos, but also good fun.

3: Skyroads

Only three buttons needed. Left, right and the spacebar to jump. You can download it here from Bluemoon software directly.

2: Captain Comic 2

The original Captain Comic may have been the first sidescroller for the PC. Telling a story of genetic experiments gone awry. It’s never really explained why the natives of the planet have access to a machine that can travel in space and time but since in the first half of the game you meet some guys called the Skrejgib perhaps the machine can be explained away by Ecivedtolp.

1: Twinsen’s Odyssey.

Epic. Seemlessly going from puzzle to puzzle, while stretching a storyline across three planets. You’ll find yourself playing it for hours longer than you meant to. Trust me, it’s worth the effort getting this game. Your life just isn’t complete unless you’ve played this game.

Jeremy Read

10 Games you should have played, but probably didn’t [10-6]

September 12, 2008 on 3:22 pm | In Uncategorized | 2 Comments | Jeremy Read

10. Metal Slug 3

Unless you’ve spent some time in the arcades you probably haven’t even seen or heard of this game, because it’s home platform is the Neogeo. Simple sidescrolling run and gun. The pinnacle of the series, the final mission can only be described as epic, involving defeating a country, fighting aliens, assaulting an alien mothership in space, blowing it up and fighting the alien brain while you plummet back to earth. Arriving back just in time for lunch. Unless you want to spend a day or two wrestling with a Neogeo emulator your best bet now would be to grab it for the Wii or Xbox360.

9. Netstorm: Islands at War.

Netstorm suffered from being pretty much online only and being released in 1997. Though to be fair it was playable on 24.4K. Titanic Entertainment was responsible for this title and you probably haven’t heard about it because you could convert the demo into the full retail version, hence sales weren’t exactly strong. You can download it here at Netstorm HQ. It still has an active community even now, a quirky little RTS that’s kind of like Tetris in the sky.

8. Quest for Glory 3

Sierra hybrid RPG/Adventure game. The most user friendly of the Quest for Glory series, it doesn’t have a text parser like the first two and isn’t plagued by bugs like the fourth. Insanely expensive to get nowadays, the QfG collection depending on the day could set you back nearly 140USD on Ebay so it might be easier to source it from elsewhere.

7. Eternal Daughter

Free platform game from Blackeye software. Reasonably difficult but well worth the effort to finish. If you want to play it you can get it here off Derek Yu’s site.

6. Traffic Department 2192

Top down shooter that was rarely known even when it was released. The game is a bit mundane, but makes up for it with the most random story line ever. Includes such bizzare lines as “you duranium dildo”.

Jeremy Read

Itamar is cold

August 25, 2008 on 10:08 pm | In PXT | 1 Comment | Jeremy Read

Itamar is perpetually cold.
Even in the middle of summer.

Jeremy Read

O_o Guy Java Source Code and Game

August 1, 2008 on 12:46 am | In Uncategorized | 4 Comments | Jeremy Read

As promised here’s the source code to O_o Guy (formerly known as Noodles). The code is a mess and there’s a lot of bugs, but it’s still playable.

Commands: Up/Down/Left/Right move our hero. R restarts the level.

And how can you not love a game with art like this?

If you just want to play: Click Here

Otherwise hit read more for the source.
Continue reading O_o Guy Java Source Code and Game…

Jeremy Read

28th June

July 30, 2008 on 9:16 pm | In Code | 7 Comments | Jeremy Read

Watched a world war two doco, it’s interesting. Watch it.

Another game for you to enjoy: Noodles

Up/Down/Left/Right for movement. R restarts the level. There’s only eight levels.

I’ll post the source code for you later.

Continue reading 28th June…

Jeremy Read

Butterchicken Chips

July 18, 2008 on 1:40 am | In PXT | No Comments | Jeremy Read

Jeremy Read

Computers

July 16, 2008 on 3:13 am | In Uncategorized | 4 Comments | Jeremy Read

About 15 years ago I touched a computer for the first time in my life. I was 6 years old, and the computer was running Pac Man. I wasn’t very good, I thought the aim of the game was to run into the ghosts and my game playing abilities obviously haven’t improved much. However computers would go on to have a major impact in my life.

I learnt to read because of computers, well more because of a game. My parents had decided that I wasn’t allowed to play Civilization until I could read the Civilization manual. For those who’ve never seen manuals of the era, the Civilization manual was a hefty tomb, about a centimeter thick similar in page size to a National Geographic except with the seam along the skinnier edge.It contained a wealth of knowledge on the history of the civilizations included in the game, and why each of the technologies were important and responsible for our current society.

Once again my inability to comprehend what was going on came into light. The Settler units I thought were representing bugs, same as in Captain Comic below. Though perhaps I can be forgiven for not recognizing them as I hadn’t covered American history by then.

Also for anyone complaining about patches today. The mouse didn’t work in the first release of Civilization but since the internet wasn’t exactly readily available most people did not have access to the patch. I use to play that game entirely with the keyboard. Then again we didn’t own a mouse until later so I suppose I wasn’t missing much.

So I played a lot of games for the next few years, until something happened that made probably the single biggest impact in my life. A VTech Pre Computer 1000 came into my possession.

Incredible isn’t it? And it classy blue as well. Although it might not look like much, it packs something truely amazing. A BASIC interpreter. While studying the manual for the computer I saw the “Hello World” example and gave it a ago. Programming for the PC 1000 was truly awful. It had a 20 character line display and no permanent storage capacity. So all programs I wrote had to be carefully written out on paper and copied over. Often they wouldn’t work, but occasionally I’d manage to create something that ran as intended. I can also remember that my second program ever for it consisted entirely of REM statements and a comment saying I was trying to write image editing software. Obviously this never came into fruition stifled by the lack of graphical output other than characters and other inherent limitations with the platform.

But still, for the next few years I read everything I could on programming. Not that I understood any of it, even the library’s copy of how to avoid the Y2k bug, written during the late 80s was poured over. It consisted of examples in C, Pascal and x86 assembly, none of which I understood, but still I read.

Later on when I was 13 I was given a pirated copy of Visual Basic 5, which to me meant the world. It could compile stuff that would work on a REAL computer. You have to realise I didn’t have access to the internet, I didn’t goto school and I didn’t have the financial means to purchase my own compiler to write my own software. To make matters more fun the pirated copy of VB5 nuked my registry, such that the common control dialogue control was incorrectly registered so I couldn’t use it. Which mean I had no easy way in the drag and drop IDE to make open/save boxes.

So I read the Win32 API. No documentation, just trying random things and hopeing my computer didn’t crash. About a year later I’d figured out how to make an open dialogue box, along with BitBLT and Keyboard input. I had a really terrible space invaders clone running. Then the next important thing happened. I gained access to the internet. All of a sudden I had access to most of the resources everyone else had and could upload what I was working on. Pyrosoftware was born a year later, someone gave me VB6 and I worked on trying to sell what I was working on.

I never made much money, but I did break even with my webhosting bills and received postcards from around the world thanking me for pieces of software that I’d written to fix things that were annoying me.

I did write some cool software though (and a lot of crap [why on earth did I write an ASCII art editor?]):

The Microsoft documentation for the External object sucks. It took me about a week to get the mass image downloader working for Mike. It downloads all the images on a page without prompts and automatically renames them. I got paid for this one, I think 10USD, but to me that was a LOT of money back then.

Taylor’s still bitching at me for a new version of Spike :P One day I’ll get around to writing a new C# version for him. It’s to my great annoyance that I can’t port my syntax parsing calculator though over to C#, since I can’t figure out how on earth I got it to work, looks like I’ll have to write a new one.

The PyroDVD plugin for Winamp. One and half years of work on my behalf. It automatically loads your currently selected Winamp 2 skin and reskins itself! It also plays DVDs. I didn’t get the window to “jump” to the Winamp windows though. I think this screenshot was taken about 2 months before I started uni.

I was panicing by now. I’d made up my mind to take Computer Science at the University of Auckland, and I thought that everyone had studied so much more than me. Ask Andie if you don’t believe me. In fact I was so keen to start that I turned upto my first CompSci lecture, CompSci 101 in summer school in 2005 over 25 hours early (mainly cause I got the day that uni started wrong).

Three years of partying - playing dota- later I’m still here at uni. Except there’s some crazy people who think I might know something now.

Computers still mean heaps to me. They still annoy me, and don’t do exactly what I want them to do, but I’m still doing my best to fix this as I’ve done for many years.

Has anything really changed? I’m typing this up on a laptop that has 4000 times the amount of ram my first computer did. It has over 500 times the processing power. And a 1000 times the storage space. Even my router completely outclasses my first computer. But guess what, Pacman still runs on this laptop (and I still suck at it).

Link of the day: PLT1 Tower Defence Scoreboard

Jeremy Read

Further proof that I’m an idiot (yet again)

July 9, 2008 on 11:59 pm | In Uncategorized | No Comments | Jeremy Read

Extending upon the previous post, while refactoring the Tower class in the Tower Defence I made a mistake that resulted in a rather cool looking bug.

I’d switched over from using the primative types int x; int y to using Point pos to represent internally the position of each Tower.

Now when a monster is detected within the range of the most basic tower, if the gun has reloaded it fires a new bullet using the following code:

bulletArray.add(new JavaTowerDefenceBullet(pos,myMonster.position(),myMonster));

And within the bullet code, we have the move method as follows

        lifeSpan--;
 
        int myMove = Math.min(speed, (int) pos.distance(destination));
 
        double distance = pos.distance(destination);
 
        double dxang = Math.acos( (destination.x - pos.x) / distance);
        double dyang = Math.asin( (destination.y - pos.y) / distance);
 
        int dx = (int) (Math.cos(dxang) * myMove);
        int dy = (int) (Math.sin(dyang) * myMove);
 
        pos.translate(dx, dy);

Unfortunately I’d forgotten that I was passing via reference rather than value!

Thus rather than the tower fireing a bullet which moved towers the monster, it was firing ITSELF! And there were flying towers all over the map :P

A quick change to the Tower code to

bulletArray.add(new JavaTowerDefenceBullet((Point)pos.clone(),myMonster.position(),myMonster));

and it all works as expected. Though in some ways I prefered firing entire towers at the monsters, simply because they’re bigger.

Jeremy Read

Further proof that I’m an idiot

July 8, 2008 on 4:36 pm | In Uncategorized | 5 Comments | Jeremy Read

For everyone who ever wanted conclusive proof that I’m an idiot. At the moment I’m currently working on the Java Tower Defence game, which is slowly progressing along, if you’re lucky it should be released later this week with the C# and XNA versions following. Hopefully Abhishek can get a Clojure version working and everyone will be happy. I’ve gone a little bit more overboard this time, rather than writing the simplest Tower Defence I could I’ve been writing a slightly more extendable version so people can have fun with it.

Anyway last night I was working on the pathing code for the Monsters.

This is seemingly a trivial piece of code.

Continue reading Further proof that I’m an idiot…

Next Page »

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^