Team Eternity

James D. Haley
P.O. Box 551
Tecumseh, OK  74873

A job that will require my skills in cross-disciplinary programming, team work, organization, and communication, as well as my diverse talents and creativity.


  • Computer Languages: Fluent in C, C++, Java, and DHTML with CSS and JavaScript. Experience with PHP, Small, ML, and QBasic. Some knowledge of MIPS assembly, x86 assembly, 6502 assembly, and PL/SQL.
  • Libraries and Programs: Extensive experience using SDL and supporting libraries to create multi-platform game engines. Experience with OpenGL for 2D and 3D graphics. Experience using Microsoft Visual C++, DJGPP, and MinGW. Experience creating graphical user interfaces with Windows MFC and Java Swing. Experience using Subversion to maintain online source repositories.
  • Methodologies: Firm knowledge of object-oriented design principles. Familiar with software engineering techniques for scheduling, cost estimation, metrics, documentation, and prototyping.


Bachelor of Science in Computer Science, December 2002
Oklahoma State University, Stillwater, OK
GPA: 3.4 / 4.0

High School Diploma, May 1998
Tecumseh High School, Tecumseh, OK
GPA: 4.35 / 5.0 (Honors Diploma)


  • Computer Graphics: Established a strong understanding of three-dimensional computer graphics, including use of the OpenGL library in C++. Final project was the development of a complete binary space tree rendering engine and supporting utilities.
  • Data Structures and Algorithms: Learned dozens of algorithms and how to implement them independent of language used. Acquired skills for selecting the appropriate solution to a problem based on factors such as input size, efficiency, and practicality.
  • Object-Oriented Programming and Visual C++: Developed skills in object-oriented program design. Established proficiency in use of the Visual Studio development environment. Created numerous programs using both console and Windows MFC interfaces. Final project was a complete edutainment game with database interaction.
  • Linear Algebra: Established familiarity with vector and matrix algebra. Addressed applications to computer graphics and physics simulation.
  • Software Engineering: Addressed industry-standard software design practices and issues. Included term-length team project to specify and prototype a web-based Java source code database. Project included interaction with an assigned client.


Library Assistant
Tecumseh Public Schools -- Tecumseh, OK; October 2005 - Present
Assumed full responsibility for day-to-day operations of the high school library, including circulation, shelving, overdue list processing, sale of supplies to students and teachers, card catalog maintenance, user records maintenance, discipline, and care of books. Full experience with LibraryPro acquired. Significant portion of job centered around maintenance and upgrades to computer systems both within and outside of the library; as part of this effort, the LibBlock application was developed to facilitate fast and easy blocking of inappopriate websites from school computers in a manner not available from normal filtering software. Other improvements made were the installation of VNC to monitor remote workstations and tightening of Windows 2000/Windows XP security settings to disallow alterations to computer and web browser configurations.

Substitute Teacher
Tecumseh Public Schools -- Tecumseh, OK; September 2003 - October 2005
Monitored classrooms of various size at the elementary and secondary levels. Assigned work and taught lessons provided by licensed teachers. Performed assistant duties including operating copying and duplicating machines; monitoring halls, recess, and dismissal; classroom paperwork; and reading with students to satisfy Accelerated Reader program requirements. Operated LibraryPro software to check books in and out of school library.

Sales Associate
Pratt Foods -- Shawnee, OK; May 1999 - August 1999
Operated cash registers, bagged groceries, restocked merchandise, performed janitorial duties, and assisted customers.

Grocery Bagger
Pratt Foods -- Shawnee, OK; October 1997 - December 1997
Bagged and carried out groceries, restocked merchandise, and performed janitorial duties.


Hobbies and Activities
I am an avid gamer and enjoy games of all types. I program games in my free time, including the Eternity Engine and RayCaster. I also write poetry and compose music. I was involved in music throughout junior and high school where I played percussion and sang tenor in choir. I was a member of the 1998 All-OMEA Honor Chorus, as well as various other honor music groups.

Freelance Programming Work
These are projects on which I have worked either in my free time or for contract.
  • The Eternity Engine
    Based on id Software's DOOM, the Eternity Engine is an evolution of the game that provides exciting new features for both players and editors. Programming work on this codebase in excess of 120,000 lines of code has included addition of the Small scripting language, integration of the libConfuse library to provide a custom data specification language (EDF) for game entity classes and finite automaton states, porting the code from DOS to Windows with use of the SDL library, repair of many stubborn and hard-to-crack bugs including issues specific to the Windows XP platform, and close attention to user requests for new gameplay and interface features. The Eternity Engine is a team effort with programmer Stephen McGranahan.
  • Eternity Frontend The Eternity Frontend is a complete Win32 application for launching the Eternity Engine written in C++ and using the Windows MFC library. All game engine commandline options are available through a tab-based interface. Many settings are stored in the registry, and process communication is achieved through a generalized, extensible system for writing options from dialogs into a response file. This program is also capable of running an external utility called SLIGE to generate a set of randomly constructed game levels.
  • RayCaster
    RayCaster is a retro game project using an update of technology employed in games such as Wolfenstein 3D and Rise of the Triad. It employs a ray casting engine to draw a texture-mapped world and supports looking up/down and change of viewing height. The game engine is written from scratch in C++ with object-oriented design, and it uses the SDL library for video, input, sound, and image loading. This is a work still in the early stages of progress. It will eventually function as the platform for a complete 3D RPG game, the first episode of which will be available as shareware.
  • Fachtier
    Fachtier was a 2D tile-based game similar to Pokemon which was a project lead by an acquaintance. The project was canceled, but before it ended I implemented various subsystems for the game engine including font display, dialog boxes, world tile array, and movement clipping. This project required teamwork and the modification of previously existing code.
  • LibBlock
    LibBlock is a Win32 application targeting Windows 2000/Windows XP systems which allows the user the ability to edit the local machine's "hosts" file in order to block access to websites which are deemed inappropriate under CIPA or local usage policies. Hosts are read from and written to the file on application open and close, and they are stored in a hash table with double-linked buckets during execution. Buttons allow the addition or subtraction of individual sites from the list, as well addition or removal of a list of sites from a text file.