About Travis Vroman

Originally written 5.4.2011. Last updated 11.4.2022.

Welcome!

I am a senior software engineer who has been developing software for almost 30 years. Making video games is my passion; it is what makes me want to get up every morning. In addition to this, I also have an extensive background in visual art and design (traditional and digital media) and am a percussionist. I am also attempting to learn Japanese and am working every day to improve my skills in that area.

In recent times I am probably best known for my Kohi Engine YouTube Series, where I detail the steps of creating a game engine, from scratch, using C and (for now) Vulkan. The website for it is here and the GitHub repository is here.

Work Stuff

Career Overview

I currently work full-time as a Senior Software Engineer in the 3D retail space on the web (room designers, product configuration, that kind of thing). Before that I was a Senior Software Engineer developing the next generation of electronic health record (EHR) software. Although I changed back to a web-based development job, I worked as a Lead Developer for just under 5 years at a game studio, and was responsible for the design and development of both server- and client-side products. This included the development of *two* HTML5 game engines using TypeScript as well as a server back-end developed in C#, which is responsible for millions of transactions on a daily basis.

Previously I have worked in web development in both freelance and professional capacities since 2005. I am proficient in both server- and client-side development in addition to database development. Most of my background revolves around languages and frameworks such as C, C++, C#, VB.NET, ASP.NET, the .NET framework, PHP, HTML, CSS, JavaScript, TypeScript, MSSQL (SQL Server), MySQL as well as many others. I have also done some Android development as well. I did have an app out on Google Play, but it's no longer maintained. It might still be available here.

Most of my game development work has been on independent projects over the years. I have experience using game engines such as Torque, Unreal 2004/3/4, and previously developed a product on the XNA platform. I am proficient at low-poly modeling, unwrapping, texturing, scripting and programming for games. I also have some experience writing plugins for applications such as 3D Studio max.

I have a firm understanding of the Windows operating system and hardware as well as knowledge in Mac OS and Linux.

Non-Work Stuff

A brief history

Born in Virginia but raised in Florida, I have been around for almost 4 decades at this point. Initially, I came from a traditional art background (drawing, painting, sculpting, etc.). I'm an avid gamer, software developer/programmer, and overall a big-time "geek". I normally try not to label things (especially people), but in this case I feel it is accurate. I enjoy looking at code on a screen (weird, right?), then seeing it in action when playing a game I'm developing. I'm fascinated by this, and I've no qualms about saying it. I wrote my first program at the age of 7 in MS-DOS QBASIC (I know, I know. Trust me, it was nothing fancy) on a 486 with a monochrome monitor (good ol' green and black!) and an installation of MS-DOS 6.22. I spent much of my time as a youngster writing programs and loved every minute of it.

I was very fortunate to have a supportive father and supportive grandparents with whom I lived with on an off over the years. My grandmother in particular always pushed me to do my best and to keep raising that bar. Having someone in your life to guide and push you to improve and support you can be the most powerful influence in your life.

I miss you every day, grandma. :(

I then went to an art school for middle and part of high school, where I made the descision that art was not the career I wanted to persue (at least not in the traditional sense). Video game development was on a steady rise then, and the industry was booming with activity and growth. At the time, I wanted nothing more than to develop a game on the PS2. Boy, was I in for a shock later on.

I later decided that I wanted to persue game art as a profession which led to my enrollment in the Game Art and Design program at the Art Institute of Fort Lauderdale. College was a tough time for me. My grandmother developed Alzheimer's disease (or so we believe, there's not really any way to prove it 100%, but I'm confident that's what it was) and it was a real eye-opener for me. At first I struggled with this and with school as a result, but eventually it pushed me to finish college while I still had time with her. I graduated in 2009 and could see that I made her proud.

She passed away in 2015, and I still miss her so much to this day. I owe much of my success to the foundation she provided. Here's a picture of me about 2 weeks before graduation (miss you, Archye and Eric!):

Here's one of the oldest photos I still have of myself, writing code circa 2008:

Yes, I had long hair! In fact, this wasn't the longest it got. It was down to my waist at one point. I grew it out and cut it off twice, donating it both times to cancer patients. UPDATE: I grew it out once more, a thrid time, for the same purpose! (link)

It was in these years that I worked as a computer technician at CompUSA. My knowledge of the underlying tech in computers greatly expanded during my time there, and the experience gained there was invaluable.

Most importantly, though, it was also the place I met the woman who would later become my wife! Sherlyn is the best friend and partner I could ever have asked for, and has been a key part of our success as the awesome team that we are. As of 2022 we have been happily married for 10 years.

Anyway, during college I discovered that while I loved the visual aspects of game development, I loved writing code for games more. I began my path in 2008 by taking initiative to solve a problem present in the Torque 3D game engine (then called TGEA), which was the fact that object materials had to be configured and coded by hand. There was no interface to configure them, which meant that adjustments in code had to be made, then launch the engine, load a level, test the changes, then repeat. As one might imagine, this was a very time consuming process. Thus, I began development of, and posted about, a material editor:

I also posted a blog about it on the GarageGames website here. UPDATE: This link no longer works as garagames.com was permanently shut down :( To my amazement, GarageGames actually contacted me and brought me on board to help write a solution they were coming up with behind the scenes! This material editor is still in the engine today. In fact, my name is still in some of the code files at the time of writing (2018), here. This is where I feel that I put my name on the map professionally.

After my contract with GarageGames ended (i.e. the material editor was finished), I worked briefly with a studio based in Colorado called Gaslight Studios as a developer. I had collaborated with the owner, Dave, on the material editor project for GarageGames. Gaslight Studios eventually disbanded for reasons I won't discuss here, but it also meant I no longer had work in that regard. I had two options at this point: Dave had offered me to come work at his new company, which was just starting, or I could look for a job at a larger studio. I wound up, namely because of student loan debt, chosing the latter. I think I would have been fine either way, but $77k of debt scared the crap out of me. For the record, Dave now runs a different, very successful company, called Cerulean Games. To this day I still look up to him as he is making his business work no matter the challenge, and I respect that.

So around came early 2009, time to graduate (yes, the program was 4.5 years). And, lucky me, I graduated college right in time for the economy to go straight into a nosedive. I built my portfolio (including a playable demo), applied to companies and worked freelance for anyone willing to give me a shot. Problem was; there wasn't much of anything available to someone with 'no' experience, fresh out of school. I had figured that since I'd helped to develop a material editor for a game engine (Torque 3D, specifically) that would get me in the door somewhere. I soon came to realize I was competing against people with 15-20 years of experience where their companies cut them loose to avoid going bankrupt (and for many, even that didn't help). I put in over 500 applications over a year and a half to various companies, with zero luck. To illustrate the point further, I was by far not the only person in this situation. As I recall I only know of two or three folks whom I went to school with who currently work in the industry. I mean, it's not like my work sucked (at least in my opinion - I also should note that link is outdated now, as I did that content back in late 2008/early 2009). It was at this time that I determined that my passion may have to remain my hobby. :(

So, realizing that perusing video game development as a primary career wasn't financially feasible, I decided to table it and move on. I eventually landed an interview at a small web development company about 30 minutes drive from my house at the time. I drove to the interview in a car which had no aircon in 90+ degree (Farenheit) weather with 2 dollars in my pocket. Already running close due to unexpected traffic, my car ran out of petrol about 2 blocks from the interview. This was the first interview I had gotten and I was not going to let these issues get in my way. With 5 minutes to go before being late, I pushed the car off the road into some bushes (literally) and left it there, running the rest of the way to the interview so as to not be late. I arrived at the interview on time, albeit hot and sweating. During the interview I became somewhat discouraged when being asked about technologies I had never used before, and when being asked about my experience. At that point I was thinking it was a long shot to get the job, so I decided to be 100% honest and not sugar-coat anything and be straightforward about what I didn't know.

As it turns out, that honesty is exactly what got me an offer, which I immediately accepted. From that point on I have made it my policy to be 100% honest and not try to sugar-coat what I don't know. Honesty is always the best policy in life, but especially in a professional environment. If somewhere ever holds that against you in an interview, it is probably a sign that the position isn't meant to be.

Incidentally, that company later became part of eBay, which helped immensely in a resume. I gained a massive amount of experience while there. I was there for several years, and it was an interesting ride. I learned a lot not only about web development, but the retail/supply chain industry as well. It's the kind of experience that can take you in ten twenty so many different directions all at once. It was interesting and fun learning everything, but I wanted more. My skills as a software engineer skyrocketed over what they were previously. To put this in perspective, however; I think that I am a good software engineer. I do not see myself as a great engineer though. Very few people in this world have the right to lay claim to that, and I do not yet place myself in that camp. It is a goal of mine to be a great software engineer, but it is always important to keep oneself grounded and not put oneself on a pedestal in your field. Others do not typically like those who view themselves as better than everyone else. A sense of humility should always be maintained. If someone is truly great at something they do not need to tell others how great they are; it simply shows in the work that they do.

As great as it was working at eBay, I began to feel in 2015 that my opportunities to expand and develop my skills further were beginning to dry up. The business unit I was apart of was also undergoing major restructuring and I became nervous about the longevity of my position there. I made many connections with great people, some of whom I still chat to regularly. However, I felt I'd reached the limits of my potential there and began to look elsewhere for work. In early 2016 I recieved a message from a recruiter about an amazing opportunity at a game development company as a developer - the exact role I'd wanted since graduating college.

The interview for this position was nerve-wracking as well, but I maintained my policy of absolute honesty. I was humbled once again when asked questions about design patterns. Being a self-taught developer, I did not have formal training on several Computer Science concepts - and one of the main areas was design patterns and algorithms. I admitted to this, though later supplemented that explanation that I'd been doing what the interviewer had mentioned all along but just wasn't aware of its official name.

I was asked to complete a performance assessment which loosely required that I develop two simple game clients using javascript in a week. In a stroke of luck similar to that of my interview at eBay, I came down with the flu that week and was too ill to work on it at all the first three days. The last four days of that week, however, were spent making the best version of it that I could. The original requirements stated that the games must be represented graphically and that all code must be my own, but did not mention *how* they should be rendered. Sometimes in life one gets the feeling that they have to deliver above and beyond expectations and think outside the box. This was one such occasion, and I got this feeling. Long story short, I wound up writing both games in one client, but in a three-dimensional environment with the ability to pan the camera back and forth between the two. I implemented it in raw JavaScript using raw WebGL. All the code, including for shaders and items such as matrices was developed from scratch in those 4 days. In addition, I also hand-painted assets for the project. It turns out I had made the right call and they were impressed. I recieved an offer a few days later. To date, I remain the only applicant to have submitted a game in 3D.

While unfortunately I cannot disclose specifics about what I have worked on due to Non-Disclosure Agreements (NDAs), I am able to discuss some of my experiences while I was there. It is a fast-paced workplace, and the experience I gained while there outweighs the experience from the entire rest of my career combined up to that point.

Part of a project I worked on resulted on my traveling to an office in South Africa, which was an eye-opening experience. It's a beautiful country with many wonderful people, as well as exotic wildlife and dreamlike scenery. It is not without its problems, some of which demonstrated to me exactly how lucky those of us fortunate enough to live here in the US really are. I still think about this often.

[I am working on a separate post about this, to be released sometime in the future.]

Fast forward to 2020 - the pandemic was in full effect, everyone was working from home. The pace of the casino game industry finally started to wear on me to the point where I was beginning to no longer like game development. I didn't like the products that were going out the door anymore, and the constant cycle of releasing games an average of once a month was taking its toll. As much as I appreciated the opportunity, experience and being surrounded by truly awesome people, it was time to go.

I left there for a company that writes medical software - specifically that used in hospitals. This was an industry I had zero exposure to. I went in and hit the ground running, but within six months or so realized I had gone too far in the opposite direction and wasn't being challenged. I tried picking up various projects, but between relatively dull subject matter (let's face it, medical software will never be fun to use, let alone make) and the lack of ability to have any sort of control over product direction, I decided it was again time to make a change.

TODO: Updates for my current position.

Japan

As you may notice by the content within the archives, I have a deep love for Japanese language, culture and Japan itself. In middle school I was introduced to anime by a friend of mine, Jessica. She had a love for it and drew it, and I fell in love with the style immediately. I simply could not get enough of it.

When I got older and had access to the internet, I began to research the culture. Every aspect of it fascinated me as it varies so far from Western culture in so many ways. I found Japanese music, art, history and television simply captivating.

I decided at the age of about 16 or so that I wanted to travel to Japan. It took over a decade to make that happen, but I finally did get to go in 2017! I am planning to go back in the next few years.