Giter Site home page Giter Site logo

defender's Introduction

0.   Modern macOS

To make this game work, make sure the defender.app that was built is added to System Settings -> Privacy & Security -> Input Monitoring or the keyboard (and thus game) simply will not work.

I.   Introduction

I have been wanting to create a 2D sprite game for OS X for some time.  A few weeks ago, I created WCSpritemanager and the drawRect function in WCView.  This was enough to make it so I can make a game.

I remembered reading that Eugene Jarvis was to receive IGDA's Lifetime Achievement Award.  Eugene is perhaps best known for his work on Defender and Robotron: 2084 so with that, I decided to make Defender.  What I didn't realize is just how hard Defender is (to play) and I couldn't make it to the 3rd wave, never mind stay alive long enough to study the AI.  But, I made this game anyway. 

This isn't really a remake of the original, although I did match things as closely as I could.  I think of it more as a version in homage to the original as, like I said, I don't even know what happens after the 3rd wave in the original.

II.  Use and keys

The keyboard and Joystick controls are configurable from within the game.  These can be changed in the Preferences.  The game will also run in full-screen mode.  I only tested this on a MacBook Air at 1366x768 and on a Mac Mini at 1080p.

III. Technical

The game uses NSImage for drawing and there really is no sophistication here, but that's more than good enough to run the game at 30 FPS even on an 11" 1.4GHz Late 2010 MacBook Air. For Audio I captured the sounds from the original game using Mame and I play it back using NSSound.

The Joystick handling isn't great.  I really wanted to work on this game only in November and now my time is up.  I didn't get to build the IOHID stuff out beyond making it work with my 360 controller using the driver from http://tattiebogle.net/.  Even then, the triggers aren't usable because I quite arbitrarily assume a dead zone of 16,384 and the triggers generate values between 0 and 255.  To make it work I would need to figure out how to enumerate buttons and axis and what ranges these use.  Hopefully I'll have some time and can then come back to this.

IV.  Credits

The original game is Copyright 1980 by Williams Electronics Inc.  All credit to Eugene Jarvis, Larry DeMar, Sam Dicker and whoever else created that original game.  I am amazed by how much people did with so little back in the day.

V.   Video

A video of the game is on YouTube at http://youtu.be/YVFdiUXgYPg

VI.  Contact

Feel free to send me an email if you have any comments.

[email protected]

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.