Archive Page 2

Text Invaders Java 0.5

I’ve resumed working on my Java port of Text Invaders, and so far things are going fairly well. I’ve got an alpha quality release up on Google Code now, available at . Right now it’s just basic collision detection and graphics working. I’ve got a list of bugs in the issue tracker for each milestone, and I hope to get 1.0 out by the end of the summer.

The game is packaged in an executable JAR format, which should mean it’s cross-platform as I only use built-in nonnative libraries (Graphics2D FTW) but I haven’t tried it on anything other than Windows yet.


Driver’s License

I finally got my license today, somehow managed to pass on the first try in Fremont, which has horrible roads compared to Pleasanton, and I don’t really know anything about. I had 12 errors out of a maximum 15 so I guess I cut it kind of close. But I’ve never really cared much about getting my license because I don’t have a car to drive, but at least I can drive around on my own now if I need to.


I was playing around with homebrew on my Wii the other day, checking out new software on the excellent Homebrew Browser, when I came across something called MAsteroids. It purported to be a multiplayer version of Asteroids, something like what I did with LANeroids, but with local multiplayer and actual asteroids (!), which I thought was pretty cool so I downloaded it right away. It actually was very nice, it supports every control method available on the Wii and I realized it could be very fun. I’m thinking of contacting the developer once I get my feet wet with homebrew development on the Wii and asking if I could join him as a developer or something like that. I’d love to add wifi capabilities to it, although as of yet I don’t know how sockets work in C++, so that will take some learning.

By the way, the idea of multiplayer asteroids wasn’t mine, there was this really old game my friend had a long time ago which was basically multiplayer asteroids, with lots of crazy powerups and stuff. It was one of those Cosmi games, which I later learned were all on the same disc and you just needed the proper word from the manual to install all the games. In fact, a search for multiplayer asteroids turns up quite a few results. Funnily, the flash version was actually made after I made my project for APCS. Unfortunately, I can’t find that original game that was so much fun back then. I remember it had wormholes and several types of powerups or something like that. Bleh.

Text Invaders Plans

So I’ve got a handful of free time this summer, between robotics, getting a driver’s license, and trying to get back in shape, and I’ve decided to start working on a Java port of Text Invaders. Hopefully I’ll be able to finish the game this time. Unfortunately with the original VB6 version it languished for a while, and when I was actually interested in completing it I had learned Java and Visual Basic seemed too primitive. VB6 isn’t even fully object-oriented. For example there are classes and inheritance, but it’s only interface inheritance and not implementation inheritance, so any subclasses have to rewrite inherited methods, which kind of defeats the purpose of inheritance in my opinion. And my code for Text Invaders was so sloppy, and mostly in one file, that I just couldn’t bear to edit it anymore.

Now, I’ve taken the basic drawing code I used for my APCS final project, named LANeroids now, and modified it to use text instead of polygons. By moving to Java I gain a lot of nice things like true object orientation and instant cross-platform capabilities, but sadly I also give up some nice things like DirectX support. I think it might be possible to add DirectX to a Java app, but that would make it cease being cross-platform, so I don’t know if that’s worth it. OpenGL is a nice alternative I guess, but I’d also need to use OpenAL for sound most likely. And I was so proud of my 3D positional effects, too. Once I’ve gotten a definitive Java version done, complete with actual levels with perhaps multiple waves per level, bosses, online high score boards, automatic updates, and such, I’m considering doing a Wii or DS homebrew port. A post-1.0 version might also add in co-op multiplayer. Anyway, this is all speculation right now. Back to coding!

Cool Summer of Code Projects for Pidgin

It looks like Pidgin is going to be getting two of the features that users often ask for, and I personally am pretty happy about these features as well. The Google Summer of Code project pairs college students with open source projects and Google pays them for working with the project, and some very interesting things result.

The first project which caught my eye was the Theme Improvements project. This project basically aims to give Pidgin theming capabilities, which will be awesome and I hope this works out. Many people use bloated clients like Trillian because of its theme support, so I hope this attracts many new users in this way.

Another guy is working on finally adding Voice and Video support for XMPP to Pidgin. This is probably the biggest project for Pidgin currently, because going from strictly text chat to voice and video is a hue leap, and I hope this project works out as well.

It seems like a lot of people currently love to bash the Pidgin developers for not working on features they wouldn’t use and have no time to implement, so it’s great to see that students who do have the time and motivation to do these things are getting them done, because it’s not fair to expect the developers to work on whatever users want if they don’t use those features themselves. The beauty of open source is that people have the ability to add features they want, but it seems like a lot of the more vocal Pidgin users don’t believe this at all.

Finally, another guy, completely unrelated to the GSoC program, is working on adding a Facebook chat protocol plugin to Pidgin, which is awesome. Currently it can only send messages but not receive them, and it seemed like my friends would log in and out every few seconds, but once it works it would be great.

Yay, May…

So today’s the first of May, and brings lots of chaos, agony, despair, and yet a light at the end of the tunnel. For you see, May is the month of AP testing, and also my birthday, and the beginning of the end of our high school careers.

The first two weeks of May are going to be living hell, with AP tests coming in like buzzards to pick us off after finals have beaten and broken us down to senseless drones. This year, I’m definitely going to run out of AP labels, and the sad part is that I won’t even end up using much of my AP credit. I suppose it’s worth it just for grade inflation, but an annoying waste of money to be sure. Once AP testing is over though, the fun begins.

After AP testing I’ll probably pick up the laptop I want for college, the HP tx2000z. It’s a cheap tablet/convertible laptop, with a base price of $900 and HP has a student discount program on top of that for 7-12% off (7% in this case). We’ll be playing Brawl and bridge and maybe Mario Kart Wii in any classes that let us, and maybe even DotA if we have enough laptops for a LAN party. I suppose we’ll also do random projects and stuff to fill time, but that doesn’t really matter. School will pretty much be over.

Hopefully I’ll be able to work on side projects too, like DS coding, some Java stuff, and Robotics stuff. I also need to finish off Metroid Prime 2: Echoes before we graduate so I can give it back to Sid. I should probably also buy Orange Box and stuff and maybe Crysis to actually tax my PC.

I have a feeling this month is going to fly past, just like the rest of the year has.

LANeroids now online, will be worked on soon

Yay, finally got around to putting the source for LANeroids (my catchy name for my APCS final project) on my google code svn repository, and I plan to work on it further. I have some ideas about optimizing performance to make it not suck, such as ripping out all the serialization junk and replacing it with sending strings over sockets instead. Much less dense and less bandwidth required, and I have a feeling serialization takes a fair bit of time in Java. I was pulling out just the graphics code for a Robotics thing and I found that the graphics/keyboard input portion without the networking runs 10x faster on my computer, so the serialized network code is definitely to blame.