This online portfolio has been made to showcase the skills the Lord has blessed me with, not to brag about my accomplishments: in every demo page you will see not only the positives, but also a retrospective of each title that will demonstrate where things went wrong and the efforts taken to correct them. I am a human being, and as such do make mistakes - though with the Lord's help I correct them.
I pray that the pages and game demonstrations linked to in the outline below will help you come to a solid understanding of what the Lord has blessed me with; not to be a show of pride, but instead reflect Him and the convictions He has given me.
As you are no doubt aware already, my name is Ricky Curtice. I was what I liked to call a nonviolent game programmer - that is to say that I wrote nonviolent games. The decision to remove violence from the primary goal of the games I create provided me an interesting set of design issues, but more often proved an advantage than it has a hindrance during my school years. Since that time I've gained a stronger interest in virtual/augmented reality systems and how they'll likely change our lives dramicially over the upcoming year - if the world lasts that long.
I chose game programming about midway through earning my Associate in Science in Computer Science degree from Sierra College in Rocklin, CA. That semester I took my first "art" class: Introduction to Multimedia Production. Which turned out to be a long-winded way of saying "Intro to Flash Animation." Midway through the class our professor introduced us to ActionScripting. Now, just to let you know, I've been writing software since my dad could convince me that it would be fun. That was almost two decades ago, and about 12 years before the class. So I was suddenly back in my element: code! We had a final project to write for the class: a full mini-website. I decided to try my hand at a simplified MMO - not a simple task as you are probably aware. I commandeered my dad to write the web-service in ASP that I would communicate with from my flash-based "client" program, and spent the next two weeks having a ton of fun and frustration: food and sleep became necessary annoyances; family interaction didn't happen, except where I was working out the communications protocols with my dad; etc. That is when I suddenly realized what my goal was. I had long known it would have something to do with programming, but now I knew it was game programming.
Once I was nearing graduation, I found myself not knowing where to go next. As I am a Christian, I turned to the Lord to help me and guide me. At that time Sierra had its annual school faire, where a bunch of colleges came and tried to attract some students - the type of thing that I normally avoid, as the noise and bustle is jarring to me. However, my personal preferences were overridden by an urge to go investigate. This was when I got my first contact with DeVry University - where I would then spend the next 3 years, taking all my classes online, before graduating Summa Cum Laude with my Bachelor of Science in Game and Simulation Programming. All I can say is that the Lord guides and blesses.
I used to play a lot of FPS and RTS PC games, being a PC gamer for almost all my life, but several years ago I made the personal decision to not play any games that deal with death and destruction. Since I've made that decision, I've actually come to an appreciation of several other genres I used to not care for: such as the racing sim and adventure genres to name a couple. For instance, I delved deeper than I ever expected into Myst's storyline! This is mostly due to the fact that the later games in the series, including URU, were based around FPS engines and so were very familiar to me.
This has provided me with some rather unique games during my course work at both schools. One course in particular was a heavy trial for me, but one that the Lord helped me through by inspiring me with one of my more unique game concepts. The class required us to produce a "First Person Shooter" - it didn't specify what kind of FPS, only that the basics of an FPS had to be used: first-person, rooms with obstacles, power ups, etc. The result was that I simply added an extra word into the genre title: First Person Photography Shooter. This was the game Aperture Attack - a game where instead of shooting to destroy, you took pictures of objects in a timed trial. The gameplay turned out to be quite addicting. The most fun part came from the design of the code: I had to do some intensive research into the mathematical model of how light, aperture, shutter speed, and film ISO all correlated and turn that into a gameplay algorithm. Very fun work.
Since that time I've moved myself away from fiction: it tends to provide too strong of a distraction for me and makes it so that I cannot reach my spiritual and life goals. I've retargeted my existing skilsets and knowledge into designing an advanced Augmented Reality ssytem that for much more than just games, but the progress has been slow with my minimal free time.
I've had a fair amount of experience in C++ as I am both an open source contributor to the Second Life client, and co-developer of the NLS Engine - an open-source, permissively licensed, game engine started and maintained by myself and Adam Martin. My Java experience, gained at Sierra College and continued in many of my own projects, has ingrained many OOP principles into my mind, mostly obliterating my GW-BASIC and QBASIC roots.
I'm a programmer. I have multiple pet projects I code on that change as time goes by - ask me what I'm working on! I was into "classic" sci-fi (ST:TNG, BSG (the original - not the modern mess), FireFly, Star Wars, you get the picture) for many years. I listen to large, magestic orchestral classical/classical-esque music, such as Mussorgsky's "Pictures at an Exhibition: The Great Gate of Kiev," older Mannheim Steamroller tracks, Star Trek: The Next Generation's "Ressikan Flute" piece, The Jurassic Park theme, and the music from the original Bard's Tale (PC edition) adventure game. My tastes at times seem older than I am... I also have a lot of fun building and, of course, scripting in Second Life and InWorldz. If you haven't been in SL, get an account - it's free - and get in contact with me: my SL name is Cron Stardust. Working with the scripting in SL sharpened a lot of my programming skills and broadened my understanding of things such as vector math, quaternion rotations, state-machine and event-based programming, and much more.
GCS/O d-() s: a- C++$ UL*+++$ P+ L++$ E---- W+++ N? o? k? w++ !O M+ V? PS-- PE++ Y PGP- T+++@ 5+ X- R+(+++) !tv b+++ DI+@ D+++@>++++@>$@ G e++ h--! !r !z-
Richard "Ricky" Curtice
Dependable, highly motivated graduate with Bachelor of Science in Game Simulation Programming pursuing a challenging position in the Simulation/AR/Software field. Looking for coding/software programming position within the gaming industry that will enable me to display my creativity and innovation skills. Strong points include problem-solving, creativity, a strong work ethic, and teamwork skills. Wish to utilize my education and experience to help create quality products and services. Excellent verbal and written communication skills, great in team environments, detail-oriented and organized, self-motivated and responsible, with strong work ethic and leadership qualities. My goal is to write code that drives amazing 3D / augmented reality user experiences and work in a dynamic environment where trust and friendship among coworkers is paramount.
Platforms and Operating Systems: SysAdmin on MSDOS, Microsoft Windows, Mac OS X, VMWare ESXi, GNU/Linux (Gentoo, Ubuntu, KDE, XFCE4) and experimented with several more.
Applications and Tools: Eclipse, Microsoft Visual Studio, Mercurial, Subversion, CVS, Photoshop, GIMP, Blender, Terragen, Adobe Flash, Audacity, CoolEdit Pro, LibreOffice/OpenOffice.org Writer, Draw, Calc, Presenter, Google Docs, proficient in Microsoft Word, Excel, Powerpoint, Publisher
Computer Graphic & Sound Abilities: Modeling, Texturing, Foley (Sound Effects Creation)
What you really wanted to know now that we're past the keywords list: I am a computer programmer who has concentrated on getting a operational footing in as many computer languages as possible so that I can get into working usefully in any language that's needed to be used. The languages I'm most up to date on depends on what I've been using the most recently.
DeVry University, Elk Grove, CA
GPA: 4.0 - Summa Cum Laude - Dean’s List Honors - Dedication to Excellence Award
|Discrete Mathematics||College Physics||Programming C/C++|
|Game Engine Design and Integration||System Architecture and Assembler||Object Oriented Programming|
|Simulation Design||Project Management||Math for Game Programming|
|Software Engineering for Game Programming||Visual and Design Fundamentals||
Data Structures and
|Logic and Design||Multi-media Programming||Programming Java|
SAM: DATA vs Dr. Mal Ware is a fast-paced hand-eye coordination experience utilizing the “NLS Engine” produced by myself and one other. The game itself is a blast to play, however the concentration I placed on this project wasn’t the game itself, but the development and enhancement of the engine that we created.
Sierra College, Rocklin, CA
GPA: 4.0 - Summa Cum Laude - President’s Honor Roll Honors
Volunteer at Sacramento Central SDA Church, and then Granite Bay SDA church serving under many roles:
Below is listed a selected collection of demonstrations, each covering something special: whether a unique game concept, the result of exploring an idea, or simply an example of something I really enjoyed working on.
You will note that for the games demonstrated, while the genres involved are quite diverse, death or destruction is not a part of the primary gameplay; if death or destruction exist in the game it is something to be avoided by the player, not to be dealt out by the player. This is one of my strong convictions. Those who have read the About Me section of this online book will understand why.
Many, but not all, of the items demonstrated were built as course projects - this is because of how much time I dedicate to my school and my job: these combine to leave me with little time at home for anything but God and family.
Kakra Racing was an online team project completed after only eight weeks of development in June of 2011 as part of the GSP-360 course offered by DeVry University.
I was blessed to be chosen as team leader due to the completeness of my game proposal, among other factors. In this project I advised my team, and they agreed, to take a much lower aim than most students seem to go for: no new model or texture assets, instead to concentrate only on different gameplay and level layouts. Thus we were able to produce three distinct levels, each produced by a different member of the team and then polished in a collaborative manner.
As we were short on programmers, myself being the almost the only one on the team, I was assigned with all programming tasks, from developing all the UnrealScripts required to make the gameplay differentiated from the engine defaults, to assisting every level designer with their Kismet networks.
Placed in a detailed universe filled with corporate greed and machination, Kakra Racing involves both the need for speed, and the need for skills: winning is no longer just about finishing first; you must race with style to achieve the victory. The result is a game filled with thrilling high-speed tracks that will keep you coming back for more. The only question is: can you keep up?
Built on the powerful Unreal game engine.
Player experience through the Racing Points system.
Amazing track layouts.
AI designed to keep up with, and challenge the player by aggressively picking up power ups and using them while keeping away from walls and other obstacles.
Kakra Racing is a high-tech high-stakes racing game. In the future, there are planets who have decided to stop wasting resources fighting wars, and instead settle differences through contracts written around the outcomes of an alternative form of arbitration: racing. Many disputing companies or governments have their own private racers, but many also hire talented independent racers - much like they would have hired an independent military contractor in the old days.
In an interesting twist, modern racing no longer puts the racer directly in the pilot seat: instead the racers control android bodies through a brain-computer interface. Some high-credit racers don’t even leave the protection of their homes: they just connect remotely to their personalized droid. This allows for a much more relaxed set of “safety” rules on the track, leading to some fairly aggressive racing styles.
Races are occasionally team-based, where every so many laps the team with the lowest racing points loses it’s slowest member. However, races are most often every- man-for-himself. Whichever it is, it is not always the team or racer that crosses the finish line first that wins - though this is by far the most common case. Teams win by gaining the most “racing points” in the given race. There are several ways to gain such points, making jumps, performing tricks, crossing the finish line first, bribing judg... ahem. [No, that last shouldn’t be in the game mechanics! Maybe a plot twist though...] Winning racers often get, as part of their contract, extra upgrades for either their pilot droids, and/or their hoverbikes, allowing them to perform better in future races.
Racing is different on almost every level. While there is a common theme of all racers being lined up in an array, and countdown to indicate race start, each level has it’s own details. As the race progresses, there are different locations where the player’s hoverbike can gain some special ability - such as a speed boost, jump boost, temporary forcefield drops, and more. Some races are simple ovals, some are much more complex. There are also jumps and shortcuts on some levels, each giving the accomplished player the opportunity to score more racing points. Each map also determines the race termination condition: one might be a lap count race, another might be a timed race, another might be a race to be the first to a certain number of race points.
The player to have the highest number of points at the end of the race is the winner.
The controls are based on the familiar mouse and WASD keyboard controls, with some extensions for the gameplay.
|S||Down Arrow||Brake / Reverse|
|A||Left Arrow||Strafe Left|
|D||Right Arrow||Strafe Right|
|Left Shift||Air Brake|
|Left Ctrl||Fly Down|
|E||Enter or Exit vehicle|
|Left Mouse||Right Ctrl||Use Powerup|
|Middle Mouse||Toggle Accessory power status|
|Right Mouse||Use Accessory special ability|
Note that since it's the player with the most points that wins, just making it to the end of the track may not actually finish the game - though it will likely give a boost in points!
In the first track, Test Zone, located in the rocky heights of the edge of the Ktafas Crater, the winner is the player who has gotten to 1000 points first, and the level is not complete until a player has reached that number of points. The track is laid out in a curving start-to-finish manner, but don't be limited by the walls: bonus points are awarded to the player to first go exploring! And keep an eye out for the secret exit!
In the second track, Rock Run, located in one of the secondary impact craters around the Ktafas Crater, the winner is again the first to reach 1000 points and, again, the level will not complete until that point value has been gained. Yet this time the emphasis is on your ability to show off while on a circular race track. Jumping rocks is a good thing!
In the third track, Echo Speedway, located in a sector of the the lush Llia Rift, the first player to reach the end of the straightaway finishes the course - but may not be the winner. As is normal, the player with the most points wins: yet finishing first still carries a hefty bonus that might just tip the scales!
We met our limited time frame, but not without cutting a few features. As this was my first time delving deeply into UnrealScript and creating not only a host of new object types and a new game type, I made a few mistakes in placing my data: at that time I didn't know about what it took to set up the scripts for replication. Thus the multiplayer portion had to be cut. This resulted in having to work harder on the AI, which I'm glad to say I was able to do fairly well - though since AI is not my strong suite the bots still have some issues.
Another problem was in keeping in contact with one of my teammates. He was not able, for many reasons given over time, to make it to all the team meetings. He was able to make it to a couple of the early meetings where he expressed an ability in programming and a strength with Flash. Because of this he was assigned to create Scaleform-based menu and HUD systems. We were all then given deadlines to get functional implementations in place in time for our Alpha release and feature freeze on week 5. This he did not make, and so the menu system was scrapped and I was tasked with creating a replacement HUD in less than 2 days. This was accomplished, with much help from my Lord, but as I am no artist, it wound up looking like programmer art...
All that said the problems don't really affect gameplay all that much. The core gameplay is there, the levels are strong and demonstrate a strong portion of the expressiveness of the design and the capabilities of the scripts written.
This engine represents the "Next Logical Step" in engine design, utilizing the component-based entity system design pattern, modular core loading, and a centralized message system. The use of components, allowing easy creation of new components that can be integrated into an existing entity, and allowing dynamic core module loading, so new cores can be integrated at run-time, the engine can be expanded with minimal code.
Dynamically loaded modules
Component-based entity system
Engine scripting and prototyping via AngelScript
Highly permissive open-source license
The NLS Engine is a collaboration between myself and Adam Martin. It started out as a class project in game design under the name of Saturn V, but we've since rebased the source code and have taken far beyond what SV was able to do.
Both Saturn V and NLS were created from scratch in C++. While Saturn V was explicitly designed for executing solely on Windows, as we only had 6 weeks of development time, NLS has been scheduled to be cross platform - alowing development on all three major operating systems: Windows, Mac, and Linux in both 32 and 64 bit modes. There is a lot of work still to do, but we are making progress.
Designing an engine from scratch is quite the difficult proposition. Thus far we've proven that it is possible to do, and have even started creating games with it. However, the engine is not without its faults - but neither are any of the other engines, even the commercial ones, on the market. We've yet to design a GUI toolkit for it, but the scripting system is powerful enough to make games without such.
SAM:DATA vs Dr. Mal Ware 2: Saving Your Friend’s Computer From Being Taken Over By An Evil Overlord, or How to Defeat the Evil Doctor Again is an epic continuation of the original SAM:DATA vs Dr. Mal Ware game series. Continuing the use of the NLS Engine, DvW2 is set as a 1st-person twitch game where players take control of SAM:DATA as he speeds through the circuitry of another computer where the need to purge the infection must be carefully balanced with the need for preserving the user’s programs, and the need to keep SAM:DATA online!
The evil overlord’s defeat at his attempt to take over your own computer hasn’t slowed down his attempts to take over other computers! Due to advances in security you are now able to help SAM:DATA directly by assisting in the identification of Dr. Mal Ware’s evil creations. You’ve got to be fast though: SAM:DATA can’t stay in the computer’s circuits for too long without becoming noticed by the dreaded Spy Bot!
As SAM:DATA is speeding through the tunnel-like circuits looking for the source of infection, you keep your eye open, marking every program that whizzes by you as either clean or infected. Be careful! Missing your marks decreases the time SAM:DATA can stay in the circuitry as each bad program you miss notifies the Spy Bot of SAM:DATA’s presence. Each correctly identified good program increases your score!
It’s critical that SAM:DATA find the source of infection in that circuit before the Spy Bot finds him!
The year is 1991, and the evil Dr Mal Ware has begun infecting computers with the first forms of computer viruses. You, as a Robot Virus Hunter, are leading a new generation of skilled computer technicians who can control the virus removal robots. With a great deal of practice you mastered the indirect control method required to guide your robot SAM:DATA around the inside of the computer hardware and software. But this was what was needed last year when you cleaned your own computer of Dr. Mal Ware’s minions. Over time he has increased his attacks, requiring new ideas to counter his baleful influence: you’ve rebuilt SAM:DATA as an externally-interfaced program, leaving the robot body behind.
Just as you finished rewriting SAM:DATA a friend knocked on your door complaining that his computer has gone on the fritz and has used its modem to knock out his phone service! You immediately recognize the handiwork of the evil Doctor, and take SAM:DATA’s interface hardware over to your friend's house to clean out his system and, more importantly, try to find out how Dr. Mal is infecting these computers.
A different and modern rendition of an old-school gameplay mechanic done in a new and exciting manner guaranteed to appeal to a large section of current gamers.
High-speed, high-stakes gameplay.
Compelling story with use of comical and witty humor and monologue.
Classic arcade-game feel in a modern layout.
Practically infinite levels: the game just gets harder.
Uses the NLS Engine
The player will interact in real-time with the game from the perspective of the digital edition of SAM:DATA, attempting to manually identify the two types of programs, “basics” and “malware”, as SAM:DATA flies past them in the wire. Correctly identifying the good basics increases the player’s score, while missing or incorrectly identifying bad malware will result in time penalties. Too many time penalties will prevent cause the Spy Bot to identify and eliminate SAM:DATA from the system, with the consequence that the player loses and is taunted by Dr. Mal Ware.
Incorrect identification of a Program, whether Basic or Malware, will result in lost points. Points cannot go negative.
As a twitch game, the gameplay is simple: click fast and accurate. While there’s some randomness in the position of the programs as the player flies past them, the final score is almost entirely dependent upon the skill of the player. As the game progresses, the speed and density of programs that need identification increases, reducing the margin of error and demanding ever faster response times from the player.
While the gameplay is simple, there is room for players to develop strategy. Players will need to balance the need to mark the good basics, so as to increase their score, against the need to mark the malware, so as to keep their game time from being reduced below the threshold that marks when they are expected to reach the end of the level. If the time left runs out before reaching the end of the level, the player loses. On the flip side, the more time the player has, the longer the gameplay, and therefore the higher the potential score - depending on how many Basics are identified.
Theoretically, a player could play for hours and get a score of zero. This would be accomplished by ONLY marking the Malware. However, while players might do this for a variety of reasons, most players will tend toward balancing the marking of Basics and Malware so as to attempt to reach the highest score.
Building this game was a reminder as to why games are produced by a team. Having to act the parts of designer, programmer, 2D & 3D artist, Foley/record studio, etc. was quite the exercise. However, a flexible plan and a solid vision helped make sure that the game was produced within the allotted time with a minimal remaining bug count.
GDC2012 was a success - not only did the game demo well, but it received some high praise. Many of the players noted that this would work very well, possibly even better, as a mobile game - something I am planning on doing. During the show the game, as well as the engine, received several updates and new features. If I recall correctly the login screen system was finished at the show! Adam, my co-developer on the NLS Game Engine, even hacked controller support into the engine in a single evening - though we never committed that code to a release as it was too hacky for a production release and didn't really enhance gameplay for this game due to precision issues. (Turns out that even with a clean non-linear response curve, joysticks just do not have the needed resolution to target the bots accurately and rapidly.)
My only complaint about this game is one born of my deep underestanding of the code: the screen/menu system is based on a finite state machine, and as such it made devleopment of the menu system very modular and easy to extend and maintain. However you'll notice the background pop in and out when switching between some screens. While this could be cleaned up, the ultra short development time combined with the complexity of the fix and the realization that it didn't detract from the gameplay, resulted in that being marked very low on the to do list. If the game gets popular, or when I revisit it for porting to a mobile platform, I will definitely revisit the design.
interNational Geographic wants you to be their next world-renowned photographer. As your first step, they have sent you to their training facility to evaluate your skills by giving you shots of objects that you need to find and take good photos of as fast as possible. Hurry up, the clock's already ticking!
Not often can you find a game where basic camera settings are highlighted. This game does just that. Plus there are few photography games on the market, and the style of the game has much appeal.
Objects based on real-world promotional products
Players can keep any photographs they take in-game
Full 3D environment
Realistic digital camera operation
As the game begins, the player is informed that he is being recruited by “The interNational Geographic Society” as a field photographer. However, every new recruit is put through a series of tests. These tests are administered as photography challenges in on of their specially prepared warehouses. Once in the warehouse, the player will have a fixed amount of time to find and shoot as many of the warehouse's items-of-interest and return to the starting point.
To accomplish this goal, they player is given their choice of camera, a picture of the items that are to have their pictures taken, and are then released into the warehouse.players must then move rapidly, taking as many shots of as many of the items as possible. Each location has a different amount of light, so the player mush balance his ISO, shutter speed, and aperture to compensate and not have too narrow a depth-of-field or too blurry a shot. Each shot drains the battery on the camera, and fills the chip, so scattered throughout the level are battery cells and memory chips the player can pick up to replenish.
Once they feel they've taken as much as they need, the player then finds his way back to the starting desk so the tester can review the shots and score the player appropriately. With a high enough score, the player is then allowed to move on to the next level.
This game was prototyped in a single week using the 3D tools inside the Game Maker engine. The gameplay was proven to be viable, and most importantly, fun - even though the limits prescribed by the engine, such as a lack of dynamic lighting, really cut into the visual impact of the game.
Due to the 1 week of combined design and development time, which in reality was less due to needing to work and do other school projects, the protype has several bugs, and is keyboard-action only.
Just as your squadron of XR10 star-fighters clear the hangar, an enemy Destroyer fires a powerful laser pulse deep into the reactor core of your mothership, the Alliance Defense Frigate Arkon. As she explodes into fragments behind you, she launches a full complement of torpedoes and incinerates the enemy capital ship. With the destruction of the enemy Destroyer, the combat drones you were sent out to fight deactivate and you are left in deep space trying to find a way back home...
The Spaceflight genre has never, as far as I know and have played, been merged with the Adventure genre. This provides a “fresh” perspective on the gameplay. Also, the Spaceflight genre disappeared about the time the bulk of the Millennials reached a mature age leaving them with only a passing familiarity that should attract them to the game. Once they realize it was DESIGNED for cooperative play, the Millennials will likely message their friends and play it together at the next LAN party or even online.
The story is designed to allow for the possibility of sequels; in future games they might start a rebuilding, or reforming, of the interstellar society, maybe they will start a subversive campaign!
You and your friends take on the interstellar elements in a primeval struggle for survival after your mothership is destroyed. Use what resources you can find along your journey back to your homeworld. But remember, time is against you, so don't delay!
Players must work as a team to gather enough fuel and supplies from the surrounding debris and drones to retrofit their ships for an interstellar flight to their distant homeworld. Once they leave, they must survive on what they can find in flight. As they travel and explore they will start to piece together, from disjointed clues, the history behind the conflict. Along the way they will meet other interstellar travelers, some friendly, some not, who will either try to help or hinder them in their flight.
I've been working on CotA off and on since early 2009 when it started as an exercise during a game design class. However, while it seems to me to be a sound game concept, I've not explored it outside of school. The attached cutscene prototypes are primarily an example of the skills in the art of foley the Lord has blessed me with: all sound effects and voiceovers are my own creation.