Archive for the 'Video Games' Category

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.

(more…)

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.

(more…)

Cannonade 0.5.9 (Primer) is now seeded

May 23rd, 2011
Spencer Nielsen Follow snielsen42 on Twitter

I have decided to give names to all of my alpha updates going forward. I have chosen to follow a movie theme naming convention. I am therefore proud to announce the “Primer” update (Cannonade 0.5.9). Aptly named, this update finally adds the timeline scrubbing feature! This feature allows you to pause and restart the game at any point in the past by dragging the timeline slider and hitting the play button. Perforated glass doors quickly shut and you hear the low hum of time travel occurring in the background. Once the universe has temporally moved to your desired point the doors open and you can watch history repeat itself!

Complete Changelist:

  • Bumped engineCompatibility to 0.5.9. (this means all games previously created by versions <= 0.5.8 will be deleted)
  • Got the timeline scrubbing working!
  • Added a neat glass door progress indicator when you jump through time.
  • Moved auto-camera to only be active during opponent’s turns.
  • Did a top to bottom redesign of the cluster menu
  • Added basic OpenGL lighting to blocks.
  • Added an initial pass of the intro sequence.
  • Moved the castle picking view to one-quarter height up.
  • Used glPolygonOffest to correct decal the friction splatter.
  • Changed the editor so that it moves the camera to the half-height everytime the blocks change.
  • Baked the current levels and fixed some bugs related to baking.
  • Added history grabbing functionality.
  • Fixed a lot of bugs related to observing various points in the timeline.
  • Modified the project so that I could submit a dummy IPA to iTunes Connect so I can keep my identifier (I hope).
  • Made a new Pad+Phone based experience.plist.
  • Changed the level’s info format from a serliazed file to an NSDictionary/plist.
  • TONS of changes aimed at making it easy to integrate art.
  • Removed the individual block textures now that the atlas is working everywhere.
  • Pulling demo/intro values into the experience.plist.
  • Initial demo intro game type implementation.
  • Added a dummy account loging pragma (LOGINASAORENTEST1).
  • Minor tweaks.

Alpha Testing List

Would you like to be one of the awesome alpha testers that help make Cannonade great? Send an email to: [email protected] and I will reply with instructions on how to get onto the Trac server, Testflight list and tester forums.

Cannonade 0.5.8 is now seeded

May 9th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

The focus of this update is the new in-game tutorial! Now when you first launch Cannonade if you have never run through the tutorial it will prompt you to do so. The tutorial level is meant to teach new players how to use the battle interface and get them some target practice with the fundamentals. Give it a whirl and let me know what you think!

Complete Changelist:

  • Bumped engineCompatibility to 0.5.8. (this means all games previously created by versions <= 0.5.7 will be deleted)
  • Initial implementation of the tutorial game type and level.
  • Made some menu refinements and added a “Wiki/File A Bug” menu option.
  • Made it so that you are prompted to run through the tutorial if you havn’t before on that device.
  • A few quick menu sound effects.
  • Added detailed statistics gathering.
  • Fixed lots of little simulation execution bugs.
  • Tons of leak hunting.
  • Added friends info to the game server packets and cleaned up the server code a bit.

Alpha Testing List

Would you like to be one of the awesome alpha testers that help make Cannonade great? Send an email to: [email protected] and I will reply with instructions on how to get onto the Trac server, Testflight list and tester forums.

Cannonade Tutorial

May 6th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

For the past week I have been working on creating a gameplay tutorial mode for Cannonade. I am pretty pleased with how it has come out! There are still enhancements to be made and polish to be applied but I think it is good enough to put into the next seed. It is meant to explain the interface and get you some basic gameplay practice before you go up against real people online. It reveals the interface step by step, explains how you use it and lets you get some hands on experience with each concept as it is introduced. If you have never completed the tutorial before then it is the first thing that runs when you launch Cannonade. Previously the only way to figure out how to play was to just press buttons and experiment around after you had already entered a game with a real person. Hopefully by adding the tutorial I can help teach people about how to play the game before they play for reals.

Cannonade 0.5.7 is now seeded

April 25th, 2011
Spencer Nielsen Follow snielsen42 on Twitter

The two most note worthy changes in this build are SPEED and WEAPONS! After spending two days on physics performance optimization and a week and a half on graphics performance optimization Cannonade now runs a lot faster on both the iPhone and the iPad! There are still speed gains to be had but the framerate difference is like night and day. Thanks to your voting, in this build we also have the debut of the Gravity Bomb, Fire Bomb and Friction Bomb weapons. They still need to be tweaked and balanced but they are still fun to play with. Give them a shot!

Complete Changelist:

  • Bumped engineCompatibility to 0.5.7. (this means all games previously created by versions <= 0.5.6 will be deleted)
  • Did a lot more investigation into physics performance. Content with how much I have for now.
  • A HUGE graphics performance related commit.
  • Added the Gravity Bomb, Fire Bomb and Friction Bomb weapons.
  • Added powerSlider tuning buttons
  • Added a block override fade timer
  • Added all sorts of neat effects to the gravity, fire and friction bombs.
  • Added a new lava island level to design around the !FOGENABLED and NONBLENDEDLAVA speedups.
  • Initial “connection-less” Game Center implementation. Initial support for key-based communication (added libcrypto.a)
  • Added a label toggle button in game and removed the reticle label fade.
  • Reworked the visual styling of the shootMenu.
  • Abandoned scrolling on weaponScrollView because UIScrollView is too buggy.
  • Added BlockAttachements.
  • Added CANNON_IMPACT and BLOCK_POOF emitter types.
  • Tweaked Gravity Bomb effects.
  • Removed old levels.
  • Fixed a bug where resetCollisionFilters was not being called (killed replay).
  • Extended ASGlassButton to handle corners.
  • Fixed some ASGlassButton issues that were causing uneccessary redraw.
  • Added a biased decal shape as a hack until http://aorensoftware.dyndns.org:8000/TRAC/ticket/145 gets fixed.
  • Refined convex sweep tunnel protection even further.
  • Added convex sweep querying to block movements as well.
  • Added LOCALMODELVIEW so that we don’t stall OpenGL everytime we need to read/update the camera matrix.
  • Added more benchmarking oriented functionality and updated libbullet.a.
  • Tweaked build settings and switched compilers to llvm-gcc4.2.
  • Fixed the editor back into working shape.
  • Fixed cull and texture state for projectiles until they get their real objects.
  • Fixed big in terrain removal code that was smashing memory.
  • Fixed some block label override bugs.
  • Fixed key loading.
  • Fixed projectile state dirtying.
  • Added an in-game fps counter.
  • Added server games auditing to the ADMIN_MENU.
  • Checks first before copying into history now.
  • Misc bug fixes.

Alpha Testing List

Would you like to be one of the awesome alpha testers that help make Cannonade great? Send an email to: [email protected] and I will reply with instructions on how to get onto the Trac server, Testflight list and tester forums.

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.

(more…)

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.

Caster HD for iPad is on the App Store!

April 1st, 2010
Spencer Nielsen Follow snielsen42 on Twitter

One of the best third person shooters on the App Store is now on the iPad! Get Caster HD now in all its high resolution glory!

I am seriously excited for the iPad! Hopefully I will be able to get a hold of one soon and check out what may be the future of personal computing.

Caster for iPhone: A Postmortem

October 31st, 2009
Spencer Nielsen Follow snielsen42 on Twitter

My good friend Mike has for many years had a pet gaming project called Caster which he has worked on in his free time for graphics experimentation and his own entertainment. And for almost as many years I have been working with him to port it to various platforms such as Mac OS X and iPhone OS (as of this writing I am currently poking around with a Dreamcast build of Caster). Recently Mike gave a presentation we co-authored called iPort: How to Bring Any C++ Game to the iPhone at the GDC Austin 2009 iPhone Games Summit based on our experiences with porting Caster to the iPhone. Even before the GDC presentation Mike and I thought it would be cool to write a postmortem on porting Caster to the iPhone. At the time we thought we could turn it into a blog post or web article or something. After being accepted into the iPhone Games Summit at GDC we adapted a lot of the notes and material that we had produced for the postmortem into the presentation slides. The presentation went well and the slides were jam packed with a lot of good tips and tricks for both iPhone porting newbies and experts alike. However, I thought it would still be fun to use the original material to organize a story-like postmortem.

Entries (RSS) and Comments (RSS).