Archive for the 'Hacking' Category

iPod Touch Server

June 11th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

Top-down view of the Aoren Software datacenter in the living room corner.

Why, you might ask? In my case the answer is simply because it is my only alternative. In development of my game Cannonade there quickly arose a need to be able to replay my user’s completed games and validate the results with exactness. In order to obtain that level of exactness, my games must execute with complete determinism. Unfortunately the implementation of floating-point match according to IEEE754 can actually vary somewhat between x86 and ARM processors. This means that if I replayed a game that two of my users played using iOS devices on an x86-based server, the results of the replay would very quickly diverge. Thus I am left with no choice but to set up a dedicated iOS device to wait for notifications of the matches that it needs to replay and validate (a process I call judging). An iOS server you might say.


When Bullets Move Too Fast…

June 1st, 2011
Spencer Nielsen Follow snielsen42 on Twitter

Did you know that bullets (and other quick moving objects) in video games sometimes exhibit magical properties if they move too fast? If they gain enough speed, sometimes they can even pass completely through other objects without leaving a scratch or affecting them at all! You might have seen this happen occasionally in games that have a lot of complicated physics simulation. Sometimes fast moving objects just seem to pass through the ground or other objects. Unfortunately this is not a desirable user experience and it quickly breaks the illusion the game is trying to convey. This phenomenon is called “tunneling” and game developers attempt to deal with it in a variety of different ways. I thought I would share my unique combination of techniques to deal with it that I used in Cannonade. I have not seen this specific combination of techniques explained or suggested anywhere and so I thought it might be beneficial to share what I have learned with others who might also be suffering from object tunneling woes. First lets explain how most modern game physics simulation works and investigate why this problem crops up.


Play SNES Games On Your iPad Without Jailbreaking

May 23rd, 2011
Spencer Nielsen Follow snielsen42 on Twitter

Apple gets a lot of flack over its curated app distribution model. No matter what your opinion on the subject is there is no doubt that for Apple’s model to have any sort of success it needs to be the only commercially realistic distribution avenue on the platform. This leads many people to jailbreak their devices for a variety of different reasons. Lets examine just the motivation of wanting to personally use non-App Store approved apps. The argument is then almost always framed as a dichotomy. I can jailbreak and get access to apps that Apple cannot or will not approve but risk damaging the device, violating warranty/support expectation, losing the ability to directly update to the latest OS version and introducing instability. Or I could keep my device in a stock configuration that will ensure stability and a clean upgrade path but miss out on some truly awesome and useful jailbroken apps out there. People don’t often remember that there is actually a third way to load apps onto your iOS device that has its own set of unique pros and cons. Apple fully supports loading apps on stock devices outside of the App Store through its developer program.


Determinism in Games

January 28th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

One day while I was hard at work a couple weeks ago I hit a really difficult technical snag. I stood up from my desk, let out a sigh and declared to the other person working in the office that “I’ve lost my determinism!”. He then inquired how I had lost my motivation while visibly wondering if I had used the word correctly. Although I had hit a significant roadblock, my determination to overcome it and make progress on my game was higher then ever. The “determinism” of my game however, had been lost. Now I needed to take it back.


Going Indie! (again)

November 16th, 2010
Spencer Nielsen Follow snielsen42 on Twitter

The entrepreneurial itch has gotten me once again! After nearly five years with Apple I have decided it is time for a new adventure! In many ways I think I prefer to be the big fish in the small pond. As far as the startup life is concerned, there has already been so much said by so many that I don’t think I have anything particularly insightful to add other than that it is indeed an absolute rush.

The first time I went out on my own was right after college. For two years I developed an extensible 3D interface framework and window server called Vision. It is no longer in development but you can still check out material on it in the Archives (I might get a patent out of it yet though). Even though things didn’t turn out like I had hoped, I still wouldn’t trade that time for anything! I learned a TON during that period of my life in all sorts of areas. The technical skills and business knowledge that I acquired during that time have proven to be invaluable in everything I have worked on since. The lessons I learned have also shaped my plans for this next go around.

The first thing I decided to do this time was to start small and build up. I am going to attack small problems/projects with the goal of getting some sort of sustainable revenue quickly. These small projects are the kind that one person can bring to market by themselves. Because of the small scale I also plan to not seek funding and bootstrap everything myself. That way there really is nothing standing in the way of getting a fully finished product out the door other than my own skill and effort. Hopefully I will be successful enough to bring others on board and attack progressively bigger problems.

I have already laid the plans out for my first project which will be introduced in a future post. I will say that it is an original iOS game like nothing currently in the App Store today. My plan is to take this first month to code up what I would comfortably call a playable alpha and start organizing a testing community around the game. Apple has made such compelling and easy to use development tools/frameworks that it is going to be a joy to dive headfirst into iOS development full-time.

I also plan to regularly document my progress and efforts here for anyone who has interest in independent software development. I know that I particularly enjoy reading about the experiences of other indie developers out there. Got any advice for me? Let me know in the comments!

Neo Geo cart hacking is still alive and well

October 16th, 2010
Spencer Nielsen Follow snielsen42 on Twitter

A couple of years ago I wrote an article called Neo Geo Cart Conversions which detailed a cool hobby project that involved turning a Neo Geo game called Metal Slug from an MVS (Arcade) version cartridge into an AES (Home) version.  The primary reason for performing the conversion was to save the thousands of dollars it would take get a hold of an authentic AES cartridge and experience the original game at home legally (plus, doing the actual conversion was tons of fun!).  A few years later I decided that it would also be fun to do a write up of my experiences and share my findings for others to enjoy.  Over the years people have occasionally emailed me about the article with compliments and questions about the article.  It has also been especially satisfying to hear about people who have successfully performed their own Metal Slug conversions by following my article.  So far there have been four people that I know of who have done so, the latest of which is Akira Van who sends this image of his finished product:

It just goes to show that despite the end of officially produced Neo Geo carts, the wide and cheap availability of Neo Geo games in virtual console/compilation form and essentially the entire video gaming world moving on that there is still a vibrant and thriving community of enthusiasts and hackers dedicated to this great platform.

Entries (RSS) and Comments (RSS).