The Mighty Eclipse has me thinking…

The last two weeks I have found myself straying away from my Visual Studio .Net and grazing back into the world of Java and the awesome Eclipse workbench. I’ve never mentioned Eclipse here before, if fact I had never even used it until just last week when I fired up my old CO871 SpaceInvaders project. What can I say? I’m hooked!

I don’t think I’ve ever come across a development tool that was this quick and easy to use, download a zip, extract it and run the .exe, no installer, no configuring classpaths, it took care of everything for me right out of the box! 

I’ve decided to go back to this SpaceInvaders project for a couple of reasons, first, I promised myself I wouldnt’ be doing any more ‘free’ projects for work at home in my spare time.  And secondly, I thought it would be a excellent, easy to understand tech demo for me to show some of my skills to potential employers down the road.  Even back when I first submitted this project nearly 9 months ago I knew there were things broken or missing that I wanted to include.  I wanted a more robust multi-player system instead of the ‘competing by score’ that kinda works sometimes, there were some memory management issues with the vectors for storing game entities and the UI code could have used some more work on the double-buffering.  Sound and explosions would have been a nice touch too, but I suppose at the time I was just learning Java and ended up doing the whole project myself, so I don’t feel all that bad about it. 

Now for the list of things that I want to change/improve in the next version I release:

  • Rewrite the networking class to allow multiple simultaneous connections (will test my concurrency skills!) and to provide a cleaner interface to the game engine for sending and receiving objects from remote clients.
  • Update the UI with better support for double-buffering and some de-coupling from the game engine, will also be updating the scoreboard classes.  Would also like to have explosions and sound effects for supported platforms.
  • Abstract the game engine to provide a better framework for more game modes to be added using a set of standard interfaces.
  • Update the single-player game experience to include multiple levels of difficulty and enemies that drop towards the player, more realistic to the original.
  • Update the multi-player game to allow for more than two players to be playing at the same time, this will interface strongly with the networking module and require some design changes to the UI to allow for displaying a scoreboard of all connected players.  Would also be nice to have the ability for players on a ‘hot streak’ to send enemies to their opponents as a reward for good shooting.
  • Create a completely new Head2Head mode where two players are on the screen at the same time with enemy ships between them.  The objective would be to clear a path though the enemies so that you could take out your opponent, or simply outlast them being destroyed by the enemies.  I drool when I think about how much fun this would be to play against my friends.
  • There’s also some issues with my first version that I want to fix up too, some memory management issues and some generally ugly code that needs to be re-written.

I figure that’s enough to keep me busy for at least a little bit, after all it’s still the summer and I don’t find myself sitting at home looking for something to do all that often.  I need to get back into this stuff though because I feel like I’m loosing some of my programming mindset with the primitive work I’ve been doing in my current job. 

Here’s a question to those of you out there who are familiar with cross-platform threading with Java:  Does threading still work on handheld devices?  I had been thinking about having the main engine run in it’s own thread and then the UI could easily poll it for updates, before I go and change something like that though I just wanted to make sure that it would still be portable.  I’ll be doing some research into it, but if anybody has some first-hand experience it would be much appreciated. 

I suppose I should actually do some work today seeing as we just recovered from a crisis, but I had to get this all out before I forgot what it was that was keeping my awake at night.  As usual, once the game is ready it will be available here and I will be taking challenges from anybody who dares!

Take it easy.

Posted by Wally, 0 comments

To Certify or not to Certify?

Now that I’ve graduated with my Software Engineering diploma and am in the working world I find myself thinking more and more about my career and future as a software developer.  I’ve been doing a lot of development with Microsoft .Net technologies in the past 2 years and that got me thinking about going after a certification like Microsoft Certified Application Developer (MCAD) then later upgrading to Microsoft Certified Solution Developer (MCSD).  The drive behind this thinking is make my skills official and proven in case I find myself looking for a job in the near future.

There seem to be three very distinct responses when I ask my colleagues about this subject, here they are:

  • Many say to wait it out, get some solid experience then land a job with a company doing Software Engineering and then get them to foot the bill.

  • Some say that there is no point in certification anymore because it is too easy to cheat with all the exam solutions that are available on the net.

  • Then there is the group that is surprised that it has taken me this long (6 months) before I even started thinking about it.

I’m trying to gauge how much of a difference having a professional certification makes in the Software Engineering or Computer Programming fields.  In today’s job market it would logically make sense to me as every new, proven skill that you can add to a resume puts you that much higher on the list of potential candidates, but that is just the way my mind works.  Then, if I do decide to go out and take the exams, which ones do I take?  There’s the obvious .Net from my current work experience, but I’ve also done a lot of work with Java and I’m sure there’s something out there for C++ developers.

What I’m really hoping for is that some industry experts will find their way here and give me their perspectives on the value of professional certifications for programmers in today’s workplace. 

Any responses, good or bad, are greatly appreciated and will be posted back to the site.

Posted by Wally, 0 comments

An Interesting Read

I know I don’t normally do this, but I was reading This Article the other day after a visit to SlashDot and found that it made a lot of sense from my experience in the tech industry so far.

The main focus of the article is how companies need to embrace and encourage their creative types in order to succeed in the long term. It uses plenty of examples from SAS to make it’s point.

It’s all too true that most companies today try to cram their creative thinkers into a mold and force them to work within such tight controls. I really think that if creative people like myself were given more flexibility that would allow for our creative ways there would be a lot fewer burned out people and a lot less companies that are fighting to maintain their bottom lines.

Then again, that’s just my opinion, take it or leave it, just thought I would share the article with you.

Posted by Wally, 0 comments

Confused about US Patents

I was just over on Slashdot where I learned that Amazon has been awarded a patent on an algorithm that uses a customer’s viewing history to generate recommendations for products. While I do like Amazon and have bought many things from them, as a developer these sort of patents scare me.

Unfortunately, where I work I don’t end up doing any sort of innovative or experimental work, there simply isn’t enough time for that in our project schedules. In my spare time however I like to keep my skills fresh by taking a problem and seeing if I can develop a solution for it, just to prove to myself that I can. I also keep these experiments around in case a potential employer is less than impressed by my relatively boring VB apps from my current job.

Now my concern is this, am I expected as an independant developer to research all the applicable patents in a certain problem domain before I proceed with these experiments? Am I liable if one of my solutions happens to be similar to one that has been patented by a corporation? In software there are so many completely correct ways to do the EXACT same thing that drawing a solution between one of my designs and somebody else’s is a difficult endeavour. In fact, as I sit here and write this I have thought of a couple of different ways one could achieve what Amazon just received a patent for, what if one of my ideas is similar to theirs?

Really in the end, I just want to know if I should be worried about some company coming after me for an experiment that I did for myself to prove my skills? I don’t plan on selling any of this stuff.

Posted by Wally, 0 comments