Jan 7th, 09
Dunno if it’s real or just my feeling that everyone here is still in a holiday mood. Work levels have gone down and most of my colleagues battle for the few headphones in office to listen to some online music. Guess what I did in all this ? Went back to my first love, programming. Low level and graphics programming. For Christmas I had visited my friends Shibon , and he showed of his skill at a cool FPS game. That brought back memories of my own idle college days, when I too coded out of pure desire, and not for the pay at the end of the month. Between passing out (almost) and getting the first job, I had almost a year to kill, and during this time I kept myself busy in pure graphics programming using native system calls. My efforts bore fruit when I finally created a standalone 3d graphics engine out of pure C and assembly, no graphics drivers involved. You may find it here : www.geocities.com/ranjith_ravi/.
Well it all started way back while I was still in school, and played Wolf 3d and Doom. I was amazed by the programmers ability to code such kewl graphics renderer, and I wanted to do so too. I read about John Carmack, the guy who single handedly changed the face of computer game industry, and gave us games like wolfenstein ,quake and doom. His story reads like a dream, a self taught programming wiz kid, who had great vision and ideas and liked to disprove others. He implemented texture mapped orthogonal surfaces and raster scanning at a time when others where creating pac man and Mario clones for the pc. He was the co-founder of id software, and the company makes games even today, turning its creators to millionares. And all this when he was just 18.But I didn’t have access to the kind of technical data and info which I could use for a similar goal. This is one of the little reasons why I chose to pursue an Engineering degree in Computers. Funny thing was one of the core subjects was computer graphics and it had all he algorithms to create a 3d graphics engine. My coleagues where more scared and less inspired. I had the skills and all the information, but no one for help.
Another great programmer of the same type was Ken Silverman In comparison to the boys at Id software, Ken literally worked totally alone. And his engine powered a lot of other 3d games like Duke Nukem. His story is greatly untold cause ,well, he didn’t socialize much. But had his own ideas too. His build engine would be used to power many more 3d computer games later. Anyway, I was hooked. I started collecting everything on the topic, and finally I got time, after leaving college and having nothing to do. I am bad with dates, but I think I started something around December of 2005. Although the algorithms where all in one textbook, the assumptions made by the author did not allow me to directly implement it. I decided to see what a real programmer had done. Carmack had released the source code of Wolfenstein 3D to open source years ago. I downloaded a version and started learning his technic. Till that day, I had considered myself a kewl coder, but once it read Carmack’s code, I knew I was a baby scratching the surface of coding. It took me weeks to understand how it all went together. I also had to switch to 32 bit C compiler, since lots of textures where to be loaded into memory. I chose DJGPP compiler for it. One month of coding later, I had learnt to implement 3d polygon manipulation, and plotting them on the screen. And at the end of one months, I had my own rotating cube in 3d, complete with hidden surface determination and texture mapping. It would take me another month to implement the portal rendering system to have my own 3d walkthrough. I was amazed by it all, cause Carmack had himself did all this in weeks, and even after months, my code had memory leaks and crashed often. But hey, it was pure fun, to create entire virtual worlds and be able to travel through them.
Nowadays game designers can create entire games without writing even one line of code, lots of RAD tools and engines available everywhere. And pure 3d grapphics remains a hot research area. I understood that I cant go any further than this, I had neither the time or money to pursue it.
Later I was trying to implement my 3d engine in OpenGL, and had got the primaries through; that’s when my first job came flying through. I have never had the time to continue my interests again.
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.
No comments:
Post a Comment