Crusading Coder
...with the courage to conquer any conquest
Character Sketch
Class: Human
Level: 30
Next Level: 99 Days

Here is a brief summary of my technology related education and work experiance I have had over the past few years.
I went to school for programming and ended up leaving with 2 Diplomas in that field. The diplomas are Computer Engineering Technology(CNT) and Bachelors of Applied Information Systems Technology(BAIST).

I learned many skills from these courses for programming and otherwise. CNT taught me how to program in C++ and other languages. It was more than just programming as I also learned how to do basic networking, hardware troubleshooting and fixing, soldering and communication skills in regards to technical topics. BAIST was an extension of some of these courses in that it also taught me the communication in regards to technology. BAIST was a course more geared towards teaching my algorithms, security and more web development as well as reinforcing the programming skills I learned in CNT. After both of these courses I fell that I have a wide knowledge base of computer related technology.

Like most programmers I know many languages and have the capability to learn many more. I am currently focusing on 2 "areas" of programming and they are web development (in my spare time) since I enjoy creating web content. The second being 3D graphics and game engine creation, which is what I currently do for a job.
My current job is not a game, but a 3D house estimating software. That said it has the same premise as a game where we have the back end engine responsible for interpreting user actions and their responses (what I am currently in charge of) and the 3D graphics side for rendering the scene with this information (which I am currently learning).

This job is fun and challenging as I was "thrown in the fire" with very little experience and managed to design and create the current back end functionality for this program.

The basis of the program is a user designs a house using a blue print styled interface for adding walls, adding windows and doors and assigning material information for construction. We then extract that information and render it in 3D so the user gets a better understanding of what they are designing.

Some of the interesting features I have created are:
  • Cloning Infrastructure - Used to clone all of the data that currently resides in the active design, applies the users desired action, then checks the validity of the world and based on that result either discards the clone, or sets the clone to the current and appends the previous clone to the history list. This also gave undo/redo functionality for free.
  • Saving and Loading mechanism - This involved saving all of the current data in the design to an xml file with properties and relations saved as well, and in turn loading it all back into a blank design so the user can continue from where they left off.
  • Custom 3D model file format - As we were developing we discovered that the current 3D model formats were not adequate enough to support all the information we would need so I was put in charge of creating mechanisms for writing binary files of 3D model polygon information as well as any meta data we needed.
  • Procedural Geometry Creation - Since we now needed to use the new 3D model file formate I created, I worked on an in house application that is calls functions that generate 3D model geometry based on parameters sent to them, then gives you a preview of what the model will look like when rendered in 3D. This is used often for content generation.
  • 3D Model Object Browser - With the model being created we needed an elegant way of letting the user add them during the life time of the program. So I was responsible for creating this user interface. It involves a data table view to give 2D previews of the object, a tree view to list them by type and name as well as filtering options to narrow down the options.

For examples of these within the program see the anthology page.