Welcome To My Page: iOS


Lord of the Skies

Experience pixel graphics at their finest in this never ending battle against the birds. Travel from grasslands to barren volcanic wastelands. Mount your Pegasus, grab your lance... Fulfill your destiny as a Lord of the Skies!

  • Birds have 31 different skills
  • 7 unique areas to explore, 5 levels per area
  • Leader-boards for points, kills and highest level achieved
  • Saves your personal best score on your device
  • Controls designed for a touch screen / MFi Gamepad Support
  • Hidden themes that activate during specific holidays
  • No hidden fees / No Ads (new content being added on a regular basis)
  • Post your high score to Facebook
iOSAppSpy: 4.5 out of 5 Star Rating
AppAdvice: A Glowing Podcast Review by Robin Rhys
TouchArcade: "I'm really surprised with just how much I am enjoying playing Lord of the Skies"

Timeless Demo

Re-live the past... Now you can watch Tran's 1994 Timeless Demo on your iPhone, iPad and iPod Touch. This amazing demo features a constantly warping background, an original soundtrack and a handful of animated sprites that wiz around the screen.

  • This release supports pause and fast forward
  • A glimpse behind the scenes to see how the demo works
  • Unintrusive Ads that don't cover up the screen
  • The ability to play with the tint as the demo runs
  • OpenGL code runs smooth on all devices
  • Visual improvements
  • Smoother transitions

NeHe Tutorials: Some History

I embarked on my OpenGL journey in the mid-90s, a time when the digital landscape was far less accommodating to those seeking to master the intricacies of OpenGL programming. Back then, the web offered scant resources, and the lone example I stumbled upon was a rudimentary demo showcasing a white triangle via OpenGL/GLut. While I'd like to say it was written by someone from ID, I'm not sure anymore. What I do know is that its impact on me was unequivocal.

The triangle didn't do anything, didn't have color, didn't rotate, yet its existence was an awe-inspiring revelation. A few lines of code and I could create this image on my screen from three single points in 3d space. I was blown away!!!

I had invested in a 3dfx graphics card (I was also using a 19200 baud modem), a technological marvel that demanded integration with my existing video card and extensive setup. Despite the complexities, the visual output it offered was nothing short of remarkable, fueling my determination to delve deeper into this captivating realm.

I wanted more! I searched night and day (non-stop) for more examples... Nothing! I even reached out the original author of the triangle code... Nothing! I went to the local library (because that's what you did back then) to look for a book on OpenGL... Nothing!

The online landscape yielded minimal information, leaving me with no choice but to adopt a self-guided approach. Armed with limited documentation and a fledgling understanding of Visual Studio 6.0, I set out on an educational journey.

It was through this arduous process that I deciphered the inner workings of GLut and endeavored to replicate its functionality without relying on it directly (Lesson 1: screen setup).

My insights and discoveries found a home in notebooks and sketches on graph paper – reminiscent of a bygone era. But my focus was solely on personal growth and learning, rather than teaching others.

The release of my second demo (Lesson 2: the triangle) marked a turning point. Sharing it with a friend kindled a spirited discussion about the boundless potential of OpenGL, akin to the revolutionary work of ID Software.

Subsequent demos, including one introducing color rendering, sparked a cascade of inquiries from friends eager to comprehend the nuances of graphics programming. From clearing screens to manipulating objects, the thirst for knowledge was palpable.

My documentation transitioned from physical notebooks to digital .nfo files (the elite extension), a more convenient medium for sharing insights. Gradually, these materials found a virtual home on my personal webpage, which had previously been a repository of diverse projects (tapeworm, dukemap, atari demos, 6502 code). Although modestly frequented, this platform was gradually evolving into a repository of tutorials for my close-knit community.

A pivotal moment arrived with the creation of "Stars," a demo I submitted to 3dFiles competition. The accolades it garnered led to an invitation to establish a dedicated OpenGL section on the 3dFiles website. This transition marked my shift from sporadic code snippets to comprehensive tutorials. Given the lack of accessible OpenGL resources, my aim was to share knowledge and ignite widespread interest.

As my visibility expanded, the influx of views and feedback was both humbling and exhilarating. From novices surpassing artistic boundaries to professionals embedding my code in projects, the impact was far-reaching. An email from an ID Software team member further underscored the significance of my contributions.

While five tutorials had already been published, I sensed the need to bridge gaps with further content. My daily routine now encompassed coding, meticulous documentation, prompt email responses, and the exhaustive task of transforming notes into coherent tutorials.

This iterative process eventually led to a pace of releasing three to four tutorials weekly, each striving to outshine its predecessor. This period of prolific output, in hindsight, marked an intense and demanding phase that tested both my physical and mental limits.

As my audience continued to grow, my commitment to personally addressing every email remained resolute. Collaborative ventures flourished, including notable collaborations on projects like "opengl asteroids". User feedback consistently informed iterative improvements, often spanning multiple tutorials and download links. I also prioritized refining code quality and modernizing techniques, with collaborative contributions resulting in over 30 iterations of the base code.

The transition to GameDev represented a pivotal shift, driven by its focus on code, minimized advertisements, and enhanced user autonomy. This migration prompted a comprehensive overhaul, prioritizing user experience through streamlined navigation and customization. Collaborating with industry stakeholders, I procured hardware prizes and initiated contests, fostering community engagement and culminating in numerous code ports for various platforms.

The ensuing contests bore witness to remarkable entries, showcasing the remarkable potential of a vibrant community. Consistent updates effectively addressed concerns about outdated code, rekindling user enthusiasm and satisfaction.

Throughout my tenure at GameDev, I authored 48 tutorials, each meticulously crafted to elucidate complex OpenGL concepts. The website transformed into a veritable treasure trove, empowering enthusiasts to delve deep into the realm of graphics programming.

By this point there were dozens of sites hosting my tutorials (rebranded as theirs of course), there were a handful of absolutely amazing NEW sites with original content, and many professional sites starting to offer more than I ever could (as a single person). 3dfx had vanished, GameDev wasn't sponsoring or paying me, meaning all the prizes I was giving out were coming out of my own pocket. The questions via email were getting more and more complex and more and more demanding, and I started seeing the bad seeds. I'd get an email from joe blow asking me to plug his site, telling me how if it wasn't for my site, his site wouldn't exist. So I'd work with joe blow to craft a message he was happy with. I'd do a HUGE post about the amazing things on joe blows site, only to see a post from him the next day saying "NeHe's stuff is junk, this is where you need to be".

15+ years running web sites, personal site, 3-5 years at 3dFiles, maybe 10 at gamedev? and I'm burnt! I'm deep into the game of life and boy did it have some curve balls for me...

My brother's health deteriorated, marked by severe migraines, unsteadiness, and persistent sickness. The cause was traced to both his kidneys, which had hardened and ceased to function. Dialysis became a regular ordeal, and he joined a waiting list for a potential donor.

Simultaneously, my personal life faced upheaval. The strain of late-night coding sessions, the rural setting in a rental home due to financial constraints, and other factors led to a decline in my relationship.

Tragedy struck again when my mother discovered a lump on her back, a sinister sign of cancer. Addressing this on my website, I was met with incredulity and even accusations of ulterior motives, a deeply hurtful experience amid an already challenging period.

The passing of my mother plunged me into emotional turmoil, pushing aside any thoughts of maintaining the website. Despite my efforts to keep users informed, I found myself grappling with disparaging comments from detractors.

My personal life continued to unravel as my spouse departed. In the midst of this turmoil, a distressing call came from my brother, notifying me of our father's hospitalization. Racing to his side, I arrived only to witness his sudden passing without the chance to bid farewell.

Adding to the burden, the bank mishandled payments intended for insurance coverage during my mother's illness, leading to the cancellation of their insurance plan. Consequently, my brother and I were forced to plan and finance a second funeral, compounding our grief.

Amidst this cascade of challenges, I reached a point where I could no longer sustain the site's operations. I communicated my decision to GameDev, hoping they would steward its legacy.

Regrettably, my hopes were dashed as GameDev's management failed to uphold the site's standards. Updates dwindled, themes vanished, downloads ceased, and the tutorials grew increasingly outdated.

In the face of these circumstances, this page serves a specific purpose – to lay down some unequivocal facts:

  • Certain GameDev OpenGL tutorials hail from the 90s, a bygone era in OpenGL. Comparing this vintage code to its modern counterpart is an exercise in futility.
  • Should these tutorials be your resource for modern OpenGL mastery? Absolutely not. Over a decade has elapsed since their creation, rendering them nothing more than artifacts.
  • Does the site retain any value today? Certainly. It stands as a testament to my unwavering commitment to freely sharing knowledge, without expecting anything in return.
  • Did it empower aspiring coders or generate subpar developers? Many attest to launching their journeys with my tutorials. Numerous games bear the imprint of my foundational code. A multitude of web pages continue to echo the teachings of NeHe Tutorials, reflecting a legacy of learning. Even today, many new sites embrace my incremental tutorial approach.
  • The website was never intended as a coding bootcamp; it was an ode to OpenGL's limitless potential. Time and again, I emphasized its essence: the code compiled, the code ran, all you had to do is have fun!
  • "NeHe leveraged glaux, a relic of a library". It was a reflection of its era, when glaux was widely adopted. Later tutorials discarded it, and the base code didn't rely on it. I even created a tutorial on bypassing glaux.
  • To those who criticize, I pose a question: What contributions have you made?

  • This narrative concludes, acknowledging the challenges and triumphs that defined this extraordinary journey.