Monday, October 5, 2026

Silent but not idle

It has been quite some time since I last posted here. I have not stopped working on the project though there have been stretches where I did not work very actively on it. Recently some things have reached a critical point and I have made some significant progress. Here is a quick demo of what I have right now.

https://asterax.phredsoft.com/demo1/

The thing to note is that I am using authentic colors, star generation, spin, thrust and top speed. I will go into this in more detail in later posts but I wanted to give a tangible update first.

As my past posts illustrate I've not approached this project as something to quickly complete by making compromises. I've always wanted to have the game behave as exactly like the original as I could manage. I'm also not a game developer so I've had to pick that up along the way as well.

Tuesday, September 19, 2017

At it again

Hello,

It has been a while. I recently found some time to work on this project again. Feel free to play around with what I have so far:

https://s3.amazonaws.com/files.phred.ws/asterax/index.html

Currently you can use the left and right keys to rotate, the up key to thrust and space key to fire. You can type the 'F' key to toggle "full screen". There is no collision detection yet so the ship and its bullets go right through asteroids right now.

Feel free to leave comments detailing any issues you have with this demo.

Tuesday, January 4, 2011

Platform Change... Again

So here we are starting a new year.  I've switched platforms for what I hope is the last time before I get something out and completed.  Because of the awkwardness of deploying the app with macruby embedded in the app, I have decided to go with an SDL on Objective-C solution.  This seems like a good mix of object-oriented language that still compiles and creates a reasonably sized binary.  I am now further along with this implementation than I have every been with any other.  I have asteroids and a ship the flies around!.  I'll post more on my progress later.

Sunday, February 28, 2010

Initial platform: MacRuby

I have made my decision.  The initial platform will be Mac OS X (probably >= 10.6 for now).  I am going to use MacRuby to develop this game.  One of the reasons I want to do this is to be able to create a focused polished game.  Even though I am going to use MacRuby, I would like to develop the game with the idea of porting it to other platforms later.  This will lead me to separate the game logic and the like from the UI and platform details.  If it makes sense, maybe later I could hook into another platform library.

Ruby

Since my last post, I have researched some ruby options.  It looks like MacRuby could be a good solution.  There is a way of compiling the ruby code and creating a stand alone application with it.  Problems with this are the size of the resulting application (> 50Mb) and that it would only work on a mac (and possibly only >= 10.6).  I also found a library/gem for ruby for game development that would allow me to deploy on linux/win/mac called Gosu.   The negative for this option is that I would have to work on different deployment strategies for each platform, but it would be cross platform.  Also, the gosu option would not including compiling of the ruby code.  Another possible solution is RubyGame.

Monday, February 22, 2010

In search of a platform

With this post, I will bring you up to speed.  My current dilemma is deciding what platform to develop the game on.  I have what appear to be conflicting goals for the platform that make it difficult to find one platform that is exactly what I want.  I have worked with SDL on other projects in the past.  I spent some time working with Slick for this project as well.  I even tried Qt.  My most recent foray has been with the HTML5 canvas element.  I have acquired experience and knowledge from working with each of these options, but also I have used up a bit of time with no product to show for it. My next goal on this project is to weigh my options and decide on a platform.

Most of my daily programming is in ruby.  I have spent time working with C/C++, Objective-C, Java, and many others.  One of the deciding factors for me will be what language I will use to program the game.  For my canvas trial, I used JavaScript, for Qt,  C++.  SDL is written in and most native in C but offers many bindings to other languages.  Slick is a library for Java.

I ruled out the HTML5 canvas option for several reasons.  Sound would be a problem and responsiveness was noticeably distracting to me.  I also noticed a occasional but semi-consistent lagging and the smoothness of the graphics rendering.  While it offered many great pro's, I don't believe that that platform is quite far enough along to use at this point for this game.  I will continue to watch this platform with interest.  For the curious, my father pointed me to a really neat project that aims to allow you to build desktop and mobile applications with web technologies and I had hoped to use it to make my game both downloadable and playable on a website.

I also ended up ruling out Qt.  The thing that I liked about Qt is that it had a nice GraphicsView widget that supports a view hierarchy and collision detection as well as the ability to be backed by OpenGL or software rendering depending on if OpenGL is available.  However, the framework must either be bundled or installed by the user and it is quite bulky and I would only be using a small portion of it.  I also had trouble styling the GUI to look like the original Asterax game.

In my next blog entry, I will go over what I see as my remaining available options and weigh them.

Sunday, February 21, 2010

Extracting the graphics

The main work that I have done so far that is durable is extracting the graphics from the resource forks of the game files.  This turned out to be more work that I expected.  I wasn't able to find a simple way to save the images in a modern format.  My solution was to use a outdated trial/beta version of Resorcerer that had been carbonized, so it runs on Mac OS X to load the images.  Since it wouldn't allow me to export the images, I took screen shots of strips of the images.  Then I wrote a ruby script to automatically load up the strips and extract the images based on a map of the sizes I fed it.

I now have the graphics extracted into png format so I can move on with development for the most part and save getting the sounds for later.  I have a copy of AudioHijackPro, which I am planning on using to record each sound as I play it in Resorcerer and then cut in up in a audio editing program.