Websites | Sample Code | Web Applications | Source Engine: Mapping, Sample Maps, Modeling
Click on any thumbnail for a larger version.
Download source code here (~3mb) | View online demo »
This application is a paradigm example, as well as a proof-of-concept. This PHP application hooks up to a library I wrote that reads and parses Valve BSP files. The features lazy-loading of objects, object factories, binary file I/O & parsing, streaming data to the web browser, correction for architecture/VM-endianness, and advanced string parsing. It is also written and structured in a way to keep it extendable.
The library is the primary feature. the web application is a simple interface, but the the library was written in such a way that it could eventually be hooked up to a variety of front-ends or web services. It was tested on Left4Dead2 maps, though it was written to hopefully handle other Source BSP formats as well.
The proof-of-concept was to test how stressful the parsing of BSP files might be on a server through PHP. Ideally, if it would be done through PHP the BSP library would be written in C as a PHP extension, or converting the project to optimized C++ using something like HipHop PHP; however, the PHP prototype behaved quite well due to the way the file is read using cursors; the big bulk of BSP files usually resides within the Pak file. Tests with BSP files containing moderate-sized Pak files did not exhaust PHP of resources when extracting the Zip archive from the file and streaming it to the user.
This code was written entirely from scratch.
Download source code here » (~1.8mb)
This application was built on the Kohana framework. Below is a list of files containing MY code, with some particular notes here and there. To give this all some context, Kohana is a lightweight MVC PHP framework--it has a handful of helpers, a database abstraction layer, and a few libraries that keep developers from having to "reinvent the wheel" with each application.
This code is an excerpt from a proof-of-concept website. A demo of the site is viewable online at http://l4t.poitot.us, which demonstrates the user registration and login/logout process. Other portions of the site were not part of the proof of concept, and were not developed further.
Files to look at:
For many NDA reasons I am unable to release code used in client work; however, I've included a small, yet contained, PHP code sample for a Drupal 7 module written for a personal site. The module is used to allow for specific content types to be utilized as tooltips, used by an accompanying jQuery script. Rather than having this included at the theme-level, it was added as a module for... well... "modularily," as well as reusability in other sites.
File: ld_tooltips.zip (16kb)
I've been involved in developing several complex end-to-end applications for some rather large programs. Below are just a couple of examples:
BASICS is a substance abuse harm reduction program currently implemented by nearly 100 universities, including Columbia, UMass, Cornell, Harvard, University of North Texas, and Western Washington University.
Two distinct platforms have been developed: one is a licensed standalone product, and one as a SaaS (software-as-a-service) model.
The standalone solution utilizes a proprietary .NET framework called Illume, licensed by DatStat. The framework provides a backend for practitioners to manage participants and design surveys for the study arms. The front end provides participants with a survey and a feedback page containing calculated results and charts (custom-built). The standalone solution has the option of hooking into a university's LDAP directory for authentication, or have a standalone authentication method.
The SaaS solution is hosted as a PHP solution, and provides similar tools including a backend for managing students and surveys, and a front-end providing management tools for practitioners. The framework utilized in this is Kohana, a lightweight, open-source HMVC PHP framework.
The Well-Being Index is a joint venture between Gallup and Healthways. Employees from companies all across the country are polled for various health and wellness-related data, including workplace environment, personal health, and living conditions. All of this data is then aggregated and calculated into a variety of results and scores. These results are special-tailored for a company, with suggestions for areas of improvement, and are delivered in the form of a PDF report. Reports can be custom-tailored further by employee demographics.
I was involved with working with facilitating the pipeline between data retrieval, calculation and delivery. The framework used was DatStat's Illume, so the pipeline consisted of .NET applications. The reports were generated using InDesign Server, utilizing variables and placeholder pages and items to be replaced by resulting data after the calculations had been made. The content delivery server was custom-tailored to handle many filtered parameters to generate more targeted reports.
Click here for a sample PDF report.
Game development has always been a hobby of mine, especially in the area of first person shooter games. I took to modding games at an early age, starting with Doom 2 mapping. I instantly took a liking to making Quake maps later on, and also did some (rather amateur) mods for Quake2 with some friends as a teenager, mainly in the areas of mapping.
Since then, I've developed a keen liking for mapping for the Source engine. While I do not have as much time as I did when I was a student, I still try to maintain an active role with other developers. I actively participate in the official Left 4 Dead Mappers Mailing List, and I currently co-administrate the Steam Group for our list.
Given my familiarity with WorldCraft back when making Quake maps as a hobby, it was rather easy for me to transition to Hammer. Due to limited time, I've not been able to make a complete Left 4 Dead campaign, but I have made a few completed Counter-strike: Source maps in the past, which are available for download. Over the years I've managed to gain quite a proficiency with Hammer, as well as the underlying technology and techniques:
These are complete maps, and can be found on FPSBanana.
gg_gswarm_wall.bsp (download):
gg_gswarm_sandbox.bsp (download):
gb_deagle_final.bsp (download):
In 2007, I was getting involved with modeling for Counter-strike: Source. I was not very interested in using XSI (now Softimage) at the time, and wanted to attempt making models with Maya. After much trial-and-error, I managed to find a successful method for making models. I subsequently wrote a tutorial going through the entire pipeline of model development, from conception, to modeling, to skinning, and finally to exporting. The article was meant to be a paradigm, and it should demonstrate that I have a good working knowledge of the props and material systems.
An archived version of the article can be found here. (It's an old Drupal 5 site)
Skills learned or used:
I also have some moderate experience with programming, including working with the VBSP file format. I currently have a side project on the back burner writing a program that takes an audit of materials in a BSP file and points out missing textures, all in a GUI format. Project is currently being rapidly prototyped in C#, but may later be re-written as a Win32 app, depending on how complex the GUI gets.