Meditations on Life and Happiness: The “Simple” Triad of Health

A conscious life, to be well-lived, must have a guiding principle. Else, that precious gift of the universe is squandered in a reactive cycle with its environment, and the unique control of a conscious mind – free will – lies unused and wasted.

There are many guiding principles, but one that aligns with the zeitgeist of the 21st century — and indeed with human biology – is thus: seek to maximize happiness. Be vigilant that you do not idle on local maxima, but instead use all the resources around you to seek the highest peak on the invisible, unknowable terrain of the future.

Vigilance and wisdom are also needed to avoid the other trap: throwing away a great thing in pursuit of even greater heights, and in doing so losing sight of the goal: to maximize happiness. This metric is a summation across your entire lived life, and a life spent in miserable pursuit of happiness is a poor life indeed. In this way, life is a calculated gamble. You try to hike along a ridge of success to find the mountain peak of bliss and hope that any descent is merely one side of a narrow mountain ravine; a blip, rather than a steady slope down into the foothills of mediocrity.

It must be noted that there are other guiding principles to choose from. Prosperity for your descendants, maximization of total global welfare, establishing an eternal legacy for your name in history, seeking to live in accordance with your religion. Life is meaningless without assigned value, but any principle will do. Indeed, you could try to live all of them. But maximizing happiness has the added benefit of feeling good – a circular argument, but we must accept that our consciousness runs on an imperfect substrate of hormones and neurotransmitters.

What resources can we harness in the pursuit of bliss? We live in a time of near-boundless knowledge, and one must simply be willing to reach out and grasp it. Happiness is of the mind, and the mind is of the body, so we should first begin with the body. How can the mind thrive if the body is sick?

Scientific research confirms some ancient principles and gives them falsifiable form. Bodily health is surprisingly simple, despite the complexity the body. After all, we have evolved to be healthy in as many situations as possible. Catch enough good sleep, eat and drink properly, and exercise. Following these three straightforward principles yields massive results, yet nearly everybody fails to do it.

Roughly 50% of people report not getting enough sleep. 35% of people report their sleep quality as “poor” or “only fair”. 67% of people who aren’t getting “good” quality sleep also report “poor” or “only fair” overall health. Getting enough sleep increases your expected lifespan increases by 10 years, and lack of sleep is heavily correlated with mental health issues.

36% of Americans are obese, and 75% of Americans have an eating pattern that is low in vegetables, fruit, dairy, and healthy oils. Nearly everyone exceeds recommendations for added sugars, sodium, and saturated fat. Only 50% of Americans meet the suggested level for aerobic exercise: 150 minutes of moderate-level exercise a week. That sounds like a lot, but that is only 20 minutes of walking a day, or 10 minutes of running a day. All-cause mortality is 35% lower for these physically active people. Conversely, obesity is a horrible condition that lowers your quality of life across the board.

Yes, these statistics are not rigorous, nor definitive. In addition, there are many difficult-to-change factors that confound execution of the “triad” of sleep, diet, and exercise. Men are more likely to have sleep apnea, and women are more likely to have insomnia. Lower income and less educated people are more likely to have low quality sleep. It is easy to see that this can become a vicious cycle, considering that nearly half of Americans are medically underinsured, and 40% of underinsured individuals report delaying required care. Health problems cause lack of high quality sleep, and not getting enough good sleep hurts the body’s ability to heal. Meanwhile, mental ability and willpower are reduced by lack of sleep, which when combined with health problems makes it difficult to hold a steady, well-paying job. And thus, this theoretical individual remains poor, underinsured, sick, and tired. Being poor sucks.

But even among the educated, liberal techno-elite of West Coast cities, we fail to consistently follow the simple triadic principles. We spend money hand-over-fist on “healthy” food, all while gaining weight. We constantly tell ourselves that we need to hit the gym more often. We may even blame our mental shortcomings on missed sleep the night before. But there is no excuse for squandering the monumental privileges of this life. We are college-educated, we make at least 2 to 3 times as much as the impoverished individual previously described, and we typically have had adequate medical care throughout life. Not only have we been led to water, as the proverbial horse, but we are being met with a deluge; we have been thrown bodily into a pool of clean, delicious water. All we must do is open our mouths and drink. And yet, we don’t.

We stress-eat, or we eat out of boredom. We eat too much of our purported health food because we lack the discipline to stop. We skip sleep to medicate away our profound emptiness of purpose with alcohol and psychoactive drugs, or hyper-stimulating entertainment. We complain that we lack the time to exercise, or moan about the wrist, back, and neck pains that come with our jobs. Instead of seizing the obvious and easy solutions before us, we commit our time, energy, and money to a secular religion of consumption. We fritter our days away praying in sad cathedrals of our own construction: buying the latest iPhone, seeing the latest blockbuster movie, playing the new popular videogame, spending an afternoon scrolling through the endless stimulation of Twitter and Facebook. Better yet, we seek to resolve our guilt by insisting that obesity isn’t a problem and that mental health issues are an inevitable result of a broken social order.

An unhealthy body leads to an unhealthy mind. In the new generation of upper and upper-middle class adults, mental health issues like depression, anxiety, suicidal thoughts, and loneliness occur at more than twice the national average rate. These issues then generate new somatic issues like headaches, stomach aches, and body pains.

Despite personal wealth, despite being well-educated, despite living in a wealthy society, we do not live in an environment conducive to health or happiness. Just as the archetypical impoverished fellow in America is trapped between poor education, low income, bad parenting, bad childhood habits, unhealthy food options, and untreated chronic health conditions, so is the archetypical member of the tech elite trapped by FOMO, social media algorithms, society’s metrics of success, and ubiquitous advertising. Fortunately, we have the good fortune to be able to control our environment.

Is sitting all day at your job giving you back and neck pain? Is staring at a screen destroying your eyesight? Some of that may come with the territory, but much more of it is avoidable. Get up and walk around the office at regular intervals. Get a standing desk. Take a twenty second break to rest your eyes. We’ve heard it all before, and yet we don’t do it.

Perhaps your job won’t allow you to switch between sitting and standing as your body desires, or you are simply too busy to take five minutes to walk around every hour. Ok, so go walk for twenty minutes when you get home. Too tired? Do it anyway. Even that brief exercise will boost your energy levels when done consistently. Better yet, take that walk in the morning, which also helps align your circadian rhythm and improves sleep quality and consistency. Improved sleep will bring more energy and better health, which will make the regular exercise even more invigorating and enjoyable. We’ve heard it all before, yet we don’t do it.

Stop drinking soda, control your insulin cycle. Wean yourself off caffeine to enable a regular sleep schedule and to boost your sleep quality. Limit your alcohol and drug consumption and wean yourself off any chemical sleep aids (including THC and CBD); they near-universally decrease your quality of sleep. Drink more water. We’ve heard it all before, yet we don’t do it. We’ve literally been led to water, yet fail to drink more of it.

If you don’t already pursue a healthier, happier life by implementing these simply practices, dear reader, you probably aren’t going to start as a result of reading this. Many people will agree with the goal of maximizing happiness and agree that all of the things I’ve mentioned are good, healthy habits. People are educated on the necessity of sleep, diet, and exercise. But we live in a local maximum of happiness. Alcohol and drugs feel good, while exercising the discipline to drag your ass out on a 20-minute walk is hard. Enjoying the hyper-stimulation of a movie or videogame feels awesome, while getting an extra 30 minutes of sleep is incredibly boring. Eating good food activates neural pathways that look an awful lot like those activated by good sex. So, why shouldn’t I eat a delicious “healthy” snack that is still packed with more sugar and fat than occurs in any natural food, thereby hyper-stimulating my caveman limbic system?

Well, if your life’s guiding principle is to maximize happiness, and you know for a fact that a glorious peak of bliss lays just across a small gulley of effort, then you should not rest on your small mound of dopamine no matter how high it feels at the time.

Fortunately, in a psychosomatic miracle of free will, we are not bound to continue this unfulfilling trudge. We can exercise conscious discipline and jump the track. We can push slowly but surely on the flywheel of happiness. Soon, a healthy lifestyle will turn from sheltered flame to raging fire, from an endeavor we must actively foster to a pillar of life we can lean on. We must simply make the decision to escape the biological determinism of our current situation and work around our psychological and physical shortcomings. Let’s use our big brains and avoid being controlled by our dumb bodies.

From Light

I haven’t posted in a while, in part because I’ve been busy with a lot of things. Maybe I’ll make posts about some of those other things at one point, but right now I just want to talk about From Light.

Logo for the game.

From Light is a game that I have had the pleasure and honor to help develop. It was originally created as a class project by two other students, but when it showed promise they decided to develop it further. Our team has now grown to 10 people, all (save one) students at USC.

The game is a 2D puzzle platformer based on long-exposure photography (holy hell have I said that line a lot). Basically, you can etch out light trails onto film using the stars in the sky, then jump on those trails to navigate the levels.

I mention that I’ve said the above line a lot because the game got accepted into the PAX 10 for PAX 2015, and I went up to Seattle last weekend with 3 other teammates to show the game off at the four-day gaming convention. This, you may have gathered, is completely and mindbogglingly awesome. I get to work on a game that is recognized and validated by real-world people! And truly, the reception of PAX was way more than I ever would have expected. People frickin’ loved the game!

 PAX 10 Logo  Photo of us at the booth.

And at PAX one of the things I heard again and again was that taking a game to completion, to the point where it could be shipped and sold as an actual game (y’know, for money), is an invaluable experience. Not only do you get a sellable game and a fantastic line on your resume, you also get all the experience involved in taking a game from 80% to 100%, and all the non-development business stuff involved in getting your game out to consumers. Needless to say, this convinced me that we should take From Light to completion. Before, I had been hesitant because as students it was unlikely we could put in the time to finish it fully. However, I am now willing to work harder than I have ever worked before to finish this game.

In the meantime, if it strikes your fancy please “like” the game on Facebook, or follow us on Twitter, or just download the game from our website.

Introduction to Programming

Taking an introductory programming course this semester has been an interesting experience. Since I grasp the course material well, I’ve spent some time helping others with their work. As anyone who has taught math can attest, teaching even basic concepts requires you to understand the material far better than the student must. When it comes to programming, helping people is even more difficult because you can’t just tell them how to do it. You need to let them to figure it out on their own, otherwise they won’t have learned anything.

But leading someone along without explicitly telling them anything is really, REALLY difficult. Our professor is a master at this, and I respect him deeply because of it. A student will ask a question, and the professor will reply with an oblique statement that doesn’t seem to address the student’s question at all. Yet soon enough the student says “Oh! I get it!” and goes on their merry way. I try as hard as possible to emulate this method when I help those who are struggling, but it is nigh impossible to strike the correct balance. Help them too much, and they don’t learn. Help them too little, and they despair or begin to resent programming. And as much as I don’t like seeing it happen, many of the people in the class have come to resent programming.

This is as sad as a student resenting literature because of a bad English class experience, or resenting math because of a bad math teacher. Yet I don’t fully understand how to prevent it. If there was a good, standardized methodology for teaching difficult concepts without causing students to resent the field, I feel a lot of the problems in society today could be solved. Maybe that is just wishful thinking, though.

The second interesting observation from taking this class has come from observing a peer. The first language she learned was Python, and learning C++ this semester has caused some distress. There were many lamentations along the lines of “why is the computer so dumb?!” Of course, I found this hilarious because it mirrors a situation in the novel A Fire Upon the Deep. As the protagonists head towards the bottom of the Beyond, much of their advanced computer technology stops working, and they are forced to adopt more primitive methods. Needless to say, the characters who grew up with the advanced technology are indignant that they are forced to use such primitive technologies as a keyboard. Meanwhile, the character who grew up using primitive technology merely smiles.

In my mind, this helps clear up the argument of whether new students to the art of programming should be started on a high-level language, or a low-level language. Until such time as low-level programming is never needed except in rare circumstances, students should be started at a medium-to-low level. For example, it is easier to step up to Python from Java than it is to step down. I was originally of the mind that new students should start at a high-level as to learn common computing concepts without getting bogged down in obtuse technicalities and syntax, but getting a first-hand view of the results of such an approach has changed my mind.

Advanced Game Projects

In the USC Games program (which spans a number of majors and schools), we have annual process that falls under the moniker of Advanced Game Projects, or AGPs. This process involves a student-assembled and student-lead team building a game in a roughly 10 month development cycle. I’m excited that this process exists.

Bloom, an AGP from a previous year.

It starts with a pitch process in the Spring semester, currently consisting of three phases: a paper proposal, submission of a prototype, and finally a live pitch sessions with a board of judges. Games that pass successfully through the pitch process get slated for development the following year. A student lead (who presumably came up with the idea, assembled a small team for the pitch, and is generally the main driver behind the project) begins to recruit a large team and pound out pre-production design over the Summer.

In the Fall, most people on an AGP team register for the associated class, which gives time to meet and talk with mentors from the industry about the management problems that have cropped up. Because working on an AGP is a requirement of my major, there is always a pool of student talent for teams to pick up. This results in AGP teams that can range anywhere from 20 to 40 people. Needless to say, this is a huge undertaking and an incredible responsibility for the team lead.

However, by Demo Day in the Spring, the team will have (hopefully) created a relatively well-polished game, albeit generally small in scope. The games are displayed at Demo Day, and not only do students attend and sample the various AGPs, but industry professionals are present as well. So AGPs are a great opportunity for networking with professionals and finding mentors, as well as landing a big, fat, good-looking game in your portfolio.

I have an ambition to lead an AGP in my sophomore or junior year, but in the mean time I’ve hopped on board with an AGP that plans to pitch later this Spring. Being present from the start of the process and being able to talk with the team lead gives great insight. Even if the AGP doesn’t make it past the pitching process, I’ve learned a lot about do’s and dont’s of assembling and running a team, as well as formulating and developing an idea into a pitchable game.

The idea we are pitching is for a humorous single-player side-scrolling multi-character action-adventure role-playing hack-and-slash, or more basically, Castle Crashers meets Dawn of War 2. Or something.

A screenshot from our latest prototype.

The eternal struggle is a combination of scope and pushing the game in a direction that is likely to pass the pitch process. You see, certain types of games tend to be favored; the faculty making the decision explicitly point this out. Games that focus on pushing the boundaries of technology, implement rare or radical gameplay concepts, are socially progressive, or take risks and target uncommon platforms are generally selected over games that try to put a small spin on a well-worn concept, or aim to execute a tried-and-true concept especially well.

This difficulty is compounded by an ultimate lack of direction with our current concept (at least in my mind). The takeaway is that a game concept should be centralized around a single, appealing idea. Hearing that concept should instantly spark at vivid image in your mind, and should either inspire you to work on the project or play the game. This is why iterating on an existing idea is less appealing. In addition, if you find yourself searching for material to fill out your game with, the core concept probably isn’t strong enough. The feel or driving mechanic (whatever makes your game sound good in the first place) should spawn a myriad of possible directions. Thinking hard about what to cut out of your idea is a good position to be in; thinking hard about what would be a good thing to put in is not.

Maybe this seems counter-intuitive, or vague and unhelpful. Let me give you an example by explaining one of the concepts that I might potentially develop into a pitchable AGP.

I actually described this in a previous post. Basically, the player struggles to keep their third world country afloat, and build up. I like to describe it as Banished crossed with Civilization. The player experience goal is something along the lines of “after struggling to balance a myriad of factors based on real-life, players gain a new appreciation for the difficulties faced by distant and otherwise foreign places.”

As you can see, I would be approaching the game from a social-awareness / global education standpoint. Like KSP teaches players physics, this game would teach players the difficulties of third-world politics. Of course, the game is also a technical and design challenge. Technically, building a simulation with enough fidelity that also performs well would be hard. Creating challenging AI opponents would also be interesting. Design-wise, the game needs a fun yet realistic interplay of economics, politics, and sociology, which is a design direction I doubt many AGPs have pursued. This sort of novelty would be appealing to the pitch process, I imagine.

However, my plans continue to evolve as I watch the process unfold. If all goes according to plan, I’ll pitch next year.

Why The Next 5 Years Are Going To Be Awesome (In Space)

To close out 2014, I’d like to talk about why I’m very excited for the next 5 years in space travel.

Dawn renderingDawn being built

Early next year we’ll get to see two extremely cool missions returning pictures: the Dawn spacecraft, and New Horizons. In April 2015, Dawn will be the first spacecraft to enter orbit around body that isn’t the Earth or the Sun, then exit orbit and enter orbit around another body. We’ll get to see high-res photos of Ceres; expect a lot of articles about old theories being overturned by the data Dawn returns.

New Horizons renderingNew Horizons being built

Second, New Horizons will be performing a fly-by of Pluto in July 2015. This will be our first good look at a trans-Neptunian dwarf planet. Observations could provide a lot of insight of the Kuiper belt, as well as other structures like the (potential) inner Oort cloud. Between Dawn and New Horizons, we’ll be getting our first close-up look at dwarf planets.

Trans-Neptunian dwarf planets

There are other fascinating missions that are either already launched, or on schedule to be launched. ExoMars is a joint mission between the ESA and Roscosmos with the single purpose of searching for bio-signatures (past or present) on Mars. This is exciting because all current NASA missions very pointedly don’t have this scientific objective. The last NASA mission to search for bio-signatures was the Viking landers in the late 1970’s. I’m a little concerned that Russia will have trouble with their end of the mission; after all, the Russians don’t have the best track record when it comes to Mars.

Hayabusa 2 launchHayabusa 2 rendering

Also exciting and potentially more fruitful is Hayabusa 2, launched earlier this fall. Hayabusa 2 is interesting because they plan to shoot an asteroid with a space gun. Leave it to the Japanese to put cannons on their spaceships (technically the Russians did it first, but they didn’t actually shoot at something). After blowing a crater in asteroid 1999 JU3, Hayabusa 2 will float down and take samples from the newly exposed subsurface. The mission will finally return the samples to Earth in December 2020.

A bit closer to home is another interesting mission: the Chinese plan to launch a Moon sample return mission in 2017. The mission architecture is interesting; unlike early sample return missions, the lander will rendezvous in lunar orbit with a return craft. I might be wrong about this, but I think this will be the first automated rendezvous and docking around a body that isn’t Earth. I think it’s great that China is making leaps and bounds in its space program; earlier this year, they launched a test mission for the upcoming sample return mission and took a German payload along for a ride. The more the merrier, I say!

Speaking of which, the competition for the Google lunar X-prize is going to draw to a close in a few years. The deadline was recently extended to the end of 2016, and at least one team already has a flight reserved in 2015. There are only a few teams still seriously in the running, but if even two of them actually get off the ground, the Moon could become a very crowded place indeed.

One of teams at the forefront, Astrobotic, has booked a launch with SpaceX on a Falcon 9. And SpaceX really has come to prominence lately. Expect a lot more out of them in the next few years. For example, in 6 days they are going to attempt to land the first stage of a Falcon 9 on a barge for the first time. Although this has a pretty low chance of working (Musk estimates 50%, so who knows how low it actually is), it is a huge step towards their long-term goal of rapidly reusable rockets. In fact, if they do get a barge landing to succeed, we might even get to see a used stage re-fly as early as 2015!

Rendering of the Dragon V2

And on that front, SpaceX will be finishing up the Dragon V2 by 2016 or 2017. Besides launch abort tests and propulsive landing tests, we will also no doubt be seeing manned commercial launches in a few years. Remember the excitement when SpaceX became the first company to dock a spacecraft with the ISS? The celebration will be ten-fold when SpaceX becomes the first company to put a human in orbit.

But Spacex will also perform the maiden launch of the Falcon Heavy, and facilitate ground-breaking tests for both VASIMIR engines (if funding for that doesn’t run out) and an inflatable habitat on the ISS.

We might even see more action from Bigelow Aerospace. They’ve manifested a number of flights from SpaceX, presumably to start launching components for a commercial space station. Now that cheaper orbital crew transportation is just a few years away, Bigelow is ramping up production again; hundreds of new positions have opened open at Bigelow.

Finally, the wildcard. Will the SLS actually launch, or will it get cancelled before its first flight due to a change of presidency or loss of support in Congress? If it does launch, it will be spectacular. Unfortunately, I pretty much doubt any of the potential missions for the SLS (Europa Clipper, ATLAST, or Uranus orbiter) will get funded, so it is almost guaranteed that the SLS gets shelved even if does fly in 2018. So there’s that to look forward to.

The Falcon Heavy and SLS preparing for launch

Learning a Foreign Language

I have had the benefit of taking Japanese 1 this semester, and it is quite a humbling experience. Learning a language which has no romantic roots — a truly foreign language — lends a certain perspective that learning French or Latin does not.

However, it also seems to me that the teaching method is geared towards a very specific type of learning style. The class starts out by teaching a number of phrases which the students are to memorize, and meanwhile students also begin to learn one of the writing systems. It is not until a few weeks in that students finally learn some grammar (i.e. the thing that actually determines whether or not a communication system is a language), and even then it takes time to learn the exact mechanics behind the memorized phrases.

For instance, we learned how to ask how to say something in Japanese: (english word)wa nihongo de nanto iimasuka. Yet we are not told that nihongo means Japanese language (although it can be inferred), and we certainly aren’t told that ~go is a suffix, applied to the word nihon (Japan), which means the language of. In addition, we aren’t told that nan means what, ~wa is a topic particle (and we certainly aren’t told it’s spelled using は instead of わ, because hell, we don’t even know how to write at that point), or that to is a sort of quotation mark (if we are, it is only in passing and without context).

Insights can only be gleamed by comparing the response: (Japanese word)to iimasu. Now it becomes clear that ~ka is a question particle. So yes, nanto became (word)to, so ~to must be some sort of literal marker suffix. iimasu must be “say”, or thereabouts.

My point is that it is very hard for me to memorize phrases or words with no context. The teaching style is designed to help a certain type of learner. My learning style would benefit greatly from learning a variety of grammar and vocabulary separately, and letting my brain concoct the phrases from their base elements; when I speak, it flows logically, and my mind pronounces one morpheme at a time. Learning whole phrases with no context means I can’t break it down into morphemes, and so production of the sounds comes much harder.

Perhaps this will change after we get past the first few weeks, but I can’t help worrying that this sort of learn-specifics-then-learn-rules teaching style will continue.

Hog Derby: Duels

Back when I was part of the Halo: Custom Edition mapping community, I offered my help to a team called Hog Derby Productions. The team had produced a series of poorly made videos (called Hog Derby) which consisted of the infamous “hog duels”, in which two or more players are driving a warthog but lack a gunner. They run into each other and try to flip the opponent, thus allowing them to be crushed. I ended up befriending the guy behind the series (dariusofwest) but, although I offered my services, never did any work on the actual production. I had joined in at a slow time, when everything was coming apart at the seams after only a few episodes of the reboot, Hog Derby: Duels (which actually had story). After a while, I left the CE community. I kept in contact with the producer, though, who also composed all the music for the show.

Nonetheless, after many false starts involving terrible cameramen, voice actors, and production schedules, the series came back together after dariusofwest joined Machinima. Having just recently released Episode 4 after almost 2 years, HDP has more episodes in (speedy) production. The series has gone from terrible filming, story, and voice acting to an OK show with lots of potential. As I watched darius struggle through the months and the different changes that occured, I have to say that the show would not have survived if it wasn’t for his endless dedication. I must also say that the experience of seeing all the behind-the-scenes mechanics was extremely interesting, as was being able to hear and critique all of darius’s music before it went into the show.

Now it seems that I will soon be working as an editor of one of the episodes (actually a short, rather than a full fledged installment). After 2 years, I’m definitely ready. I’ve always liked video production, from script writing to filming to editing. I haven’t worked on a project in months, and I’m eager to get in the production loop again. To support Hog Derby: Duels, please check out the latest episode (or all of them) and give it a thumbs up!

Episode 4: Part 1

OpenGL and Geometry Generation

Today I was thinking about 3D rendering (in part because of the recent work I’ve been doing with ray tracing). I worked out all the math for drawing a polygon based on a list of vertices and a camera. I was considering coding it up, but then I realized that I was very unfamiliar in working with Windows (because I sure as hell wasn’t going to do this in Java). So I spent the greater portion of the afternoon reading a tutorial on Windows programming and using OpenGL, at which point I abandoned my original. I was just going to finally figure out how to use OpenGL.

I had worked with GLUT before when working on a Parallel Computing lab. However, I only used pixel control in that case; I was rendering subsections of a Mandelbrot set. However, that was easier because all the requisite libraries were already installed in the major lab at school (which has workstations with Gentoo installed). Working at home, I have been confounded. I just can’t get the linker to use all the requisite libraries.

The whole thing that got me thinking about 3D engines was my working on a HL2 level. Often I will import brushwork (pieces of the level) from the game’s campaign levels; it saves time and adds a nice level of detail to the environment. However, I was thinking about common elements such as stairs, doors, windows, and grates. It’s a multi-step process to cut a hole in a brush, unless you use carve (but nobody uses carve because it doesn’t give you control over how the geometry cuts). Doors are tedious to cut out and then line up with the texture. Non-solid stairs are the most painful to make, however. You have to arrange the steps and make sure the sidings match up, and for each new type of turn you have to rework the geometry. The whole idea of hand-making all the geometry in a level is ridiculous. I haven’t seen a single FPS level editor than lets you define procedures for geometry generation.

A screenshot of the Hammer UI

A screenshot of the Hammer UI

I feel like it would be relatively simple to define a generation process for buildings, for example. Each building is spaced a certain distance in from the sidewalk. There are maybe two or three justifications for things like planters and doors. Then windows are spaced evenly apart, with buffer spaces on either side of the building. You could attach balconies or planters on to every windows, awnings above doors, and even outdoor area layouts for cafes. After meticulously defining a couple of building styles, you could almost instantly generate entire blocks. Then come the nested procedures. A street, for example, would have periodic drains and manholes, distributions of building types based on the neighborhood type, and junctions to more streets. Signs, traffic lights, road markings, and crosswalks would all be placed correctly at street corners. Coul-de-sacs could fill up empty space. Interiors could be set as well for buildings. Floor plans could be modular. Rooms with distributions of room types and different layout permutations would combine into floors. A building type could have a sequence of floor types defined, such as bottom level stores and top level apartments. Central structures like stairwells would only need to be made once.

Although the procedural parameter definitions might take a while longer than making regular geometry, it would be a huge time saver. Not only could full geometries be generated, but intricate, custom-designed battle areas could be laid out faster. Common terrain pieces like walls, fortifications, stairs, railings, gates, and hedges could be created with the use of a single spline. Suddenly a task like designing the maps for my strategy game becomes less daunting. The pipeline for map production is shortened. General map layouts can be quickly sketched out and then directly generated. Beta testing would be infinitely easier, as map adjustments could be made in hours, rather than days.

Map Design

I’ve always been highly interested in creating levels for games. Computer games enchant people with their story, gameplay, and graphics. Some designer created everything I see in it. It would be incredibly fun and rewarding to wield the same power as the game designers.

Ever since I was a little kid, level design has occupied me as much, if not more than, the game itself.
I started out with games that came with easily accessible editors. Strategy games such as the Age of Empires (and Age of Mythology) have drag and drop editors accessible from within the game. Command and Conquer: Generals has an easy-to-use editor, accessible through its root directory. As I grew older I began to experiment with triggers more, crafting a crude story or giving a gratifying gameplay experience.

Most of these maps were for single-player games, with one exception. I would often hang out at my friend’s house and invite he and his siblings to compete in map-making competitions. We would take the turns crafting Super Smash Bros. Brawl maps, with a rather short time limit. The we would play a quick match on it. The best would get saved and played often. I made quite a few enticing designs in those sessions. My levels created unique gameplay situations that weren’t achieved in the default maps.

My attention slowly fixed on a new game. While I had been familiar with Halo: Combat Evolved for a while, it suddenly occurred to me that I could create single-player levels with story as interesting as the game’s campaign. I looked into it and discovered Halo: Custom Edition. I got involved in the community, and tried my hand at non-drag-and-drop map creators. While I didn’t know it at the time, Halo’s utilities are extremely obtuse. I never had much success in creating my own levels, although I experimented with new kinds of enemy formations and scripting on pre-existing custom multiplayer levels, although I met with little success in the latter. I had an entire 5-part campaign planned out, including overhead sketches, concept art, the beginnings of a 3D model (although I was still a newbie at modeling), and enticing characters. Needless to say, it never got off the ground. To this day, I dream about how cool it would have been.

A step up from Brawl, but a step down from Halo, came Halo 3 Forge. Although it was purely multi-player and was not very powerful, Forge let me create a blend of the epic Brawl maps I had forged and the Halo campaign I had brawled with. I would Forge until my friends got tired with me (I am a PC gamer to the heart, and don’t own any consoles). The recent Halo: Reach called me back to that, although the Reach Forge was so much more powerful that I never had the time to truly explore it.

After Halo, I discovered the Orange Box. Boy, did that open up a whole new world to me. I soon after discovered the Source SDK and began to explore the glorious world of Source map-making. To this day I have a campaign planned out for Half-Life 2 that follows a rebel operative as he subverts Combine operations in the American heartland. The only thing that disappointed me about HL2 was the limited capacity for storytelling (no first-person dialogue, cutscenes, or interaction). TF2, on the other hand, tells a great story, despite being purely multi-player. I am in the starting stages of figuring out how to bring a single-player story experience to TF2.

In addition to Source, Steam let me find Crysis. The Sandbox2 editor truly lives up to its name. I spent hours in that editor, sculpting tropical islands and scripting helicopter fights, beach assaults, and stealth insertions. The great thing about Sandbox2 is that it was extremely to pick up, requiring only a few tutorials from someone like Xanthochori. Crysis 2 with Sandbox3 was disappointingly more complex.

To check out some videos of maps I’ve made and other videos (I’m also into video production), see my YouTube channel.