The BOHM System: Health Pt. 3

In this third installment to the developmental BOHM System we will be discussing the Health related risks to sitting at a desk. Again check out the start of this whole system here. ] As part of the job sitting and staring is the majority of what we do. Sitting in meetings, at your workstation, during your commute, at your home workstation, etc. While sitting we generally stare at computer screens, phones screens [ during the sitting part of meetings ], reference images, snack machines, and occasionally the outdoors. [ The irl outdoors. ] Probably for many developers the starring part is done in dark or poorly lit rooms.

Surprisingly about 68% of desk related injuries go untreated or are simply ignored. Causing the issue to compound and fester to an expensive operation, trip to the ER, Shrink or Chiropractor. The physical health risks of working a comfy desk job include [ but not limited to ] Carpal Tunnel, Tennis Elbow, Lumbar Sprains, Strains, Lower Back pain, Muscle Spasms, Tendonitis, Joint Dysfunction, and Cervicogenic Headaches. That, on-top of the added mental stress caused by managerial pressure, lack of rest, and crunch experienced in some game studios. Your personal health is under constant barrage.

In this post we will go over some common place bad practices and habits that can affect your health and how to improve your habits so you don’t develop chronic back pain at 25. All of this is documented and well-known by now in the game developer community [ some documents and GDC talks date back to 2010 ] so the following will include summarized descriptions and information, along with helpful links to further your own inquisitiveness.

As with everything discussed so far, it’s about finding a balance. The Balance between work and home, diet and exercise, health and stress. It’s not always the same per person so take time to find the right balance for you. What works for others might not work for you.

perfectly-balanced-as-all-things-should-be.jpg

Workstation Etiquette

Odds are most of us don’t know how to sit correctly. Aside from being told to remain in our seats when an adult is talking since pre-k or your parents telling you not to slouch so much. Outside of that there isn’t much being taught. Now before I continue, I’m not a doctor so the health solutions that I mention should be looked into further and as always consult your doctor if needed. [ Or check webMD. If you do, it’s cancer. My condolences ] 

Ergonomics

This word is thrown around a lot when discussing workstation health. The dictionary definition is “the study of people’s efficiency in their working environment.” Thus, if you are working at your healthiest, you are working efficiently. So what are some free ways to improve your desk etiquette?

324259281_9899a2ee66_o.jpg[ Photo Link ]

First thing to start doing is to avoid situations that put unneeded stress on your body and joints. This will take some self-correcting and awareness over time but to start off;

  1. Don’t lean forward.
  2. Don’t place your monitor above your head.
  3. Don’t sit in a rigid and fully upright position.
  4. Don’t work long periods of time without moving or adjusting.
  5. Don’t use a wrist rest while typing. Try to avoid using any general supports while typing.
  6. Don’t tilt the keyboard tray. You want your wrist to be in a natural position as best as possible. 30-60 degree curled down, with flat thumbs. [ Why even put the tilt on the device to begin with? ] 
  7. Don’t keep your feet stationary or completely flat, move your feet around under the desk.
  8. Don’t bend or twist our torso frequently to spin around, utilize the chairs swivel features. [ If needed ask a coworker or friend to spin you on their way by. ]
  9. Don’t go without water. Ensure you stay hydrated throughout the day.
  10. Don’t bend over with your back when petting your doggo. Pivot at the hips.

[ As of writing this I’m currently criss-cross applesauce in my chair. Not a good start on my part. ]

“As a rule of thumb the best type of posture is the one you haven’t been in for the last 15 minutes.” – Adam Martin, GDC 2013

Now we know what not to do, what is there left that we can do? Glad I asked!

  1. When typing, keep your elbows at the same level as your wrists.
  2. Adjust your chair height so your feet rest flat on the floor. Keeping the back of your knees about 1-3 inches from the edge of your seat.
  3. Adjust your monitor to a height and distance so you aren’t slouching or straining your neck. Roughly 20 inches from your face.
  4. Periodic breaks. The “perfect productivity” is taking a break every 52 minutes. Essentially an hour of focused productivity in exchange for a 10 minute mental break.
  5. Set the refresh rate of your monitor to a minimum of 70 Hz to limit any flicker.
  6. Ensure your office is moderately bright. Equal to a nice sunny day where you don’t need sunglasses.
  7. Keep your mouse next to your keyboard. Ideally if your rotate your arm from the elbow the mouse will fall somewhere in that arc.
  8. Lean back slightly. 100-130 degrees from parallel form the floor. Relieves pressure on the pelvis.
  9. To reduce stress on the eyes you should look away from the monitor every 10 to 20 minutes or try to focus on something that is 20 ft away.
  10.  Shake out your hands and arms to relive tension periodically.

That’s all the free stuff we can do, now how can we go about pimping out our workstations and flexing our ergonomic health on our coworkers? First thing is to check with you HR rep or boss and inquire what they offer in terms of supplies and support. Check to see if your company is involved with OSHA. [ Pretty sure most companies have to follow OHSA Standards. ] Occupational Safety and Health Administration sets regulations for companies to ensure a safe working environment for their employees. This can help you afford or acquire a healthy work station with little to no out-of-pocket expenses.

  1. Get a chair that has a high back that supports your shoulder blades if possible.
    • This is our current work chairs. Again, best estimate but roughly $300
    • Our beta chair, currently being tested by one of our unity devs, $100
      • [ Which this one gives you a superiority complex when you sit high above everyone else with a pleasant cushion to it. Safe to say that this chair might be the one. ]
    • My personal chair, which isn’t that great but it works, $40
  2. Utilize a standing desk, but make sure its the best fit for you.
    • This was our first workstation test for roughly $190
    • And our current workstation desk at roughly $520. Now this isn’t the exact model we use but it has the same functionality and buttons.
  3. Trackball mouse [ This one you can probably live without. ] This one is best suited for those who make a lot of erratic mouse movements. Again you want to rotate and move your mouse from your elbow and shoulders not your wrist.
    • Shiny blue mouse [ although I prefer shiny red ]
  4. Lastly a footrest. This is best for sitting down and a decent substitute if you can’t get a standing desk. It helps relieve pressure off you feet while you sit. It’s the right…..step…. in sitting healthy.

Image result for office meme

Desk Exercises

Bottom line to staying healthy is to stay active throughout the day. Even small movements can go a long way in maintaining a healthy balance. [ If that hasn’t been stressed already. ] The bare minimum that you can do while working from your desk is to at least stand or stretch your legs for about five minutes for every hour you sit. My personal method includes doing an hour of focused work, then adjusting my desk to stand for about 30 minutes. I usually take about 10 minutes of this time to read some articles, Gamasutra, or blog posts for my mental break. Then rinse and repeat. Generally around lunch I exchange my standing for walking a lap or two around the building. [ In which I criticize the bad pixelation. ]  

You can also invest in “fun” devices that can turn your work station into an exercise machine for those random urges to peddle that tend to creep up on people. Or you can try some desk yoga manuevers whilst taking your 10 minute mental break. I do a lot of these throughout the day and have yet to spill my coffee over my desk.

This blog has some good examples and illustrations in which I highly recommend following some of these routines. -> [Blog]

Diet

Everyone cultivates mass when starting off. It’s the combination of high calorie cheap meals and a stationary position for 9 hours a day. The lost track of time and bottomless snack bar can really sneak up on you.

Related image

Obviously the things to avoid are going to generally be the most delicious. Snacks, takeout, sweets, and heavy caffeine usage. [ One cup of coffee is okay. Just don’t go cold brew on me. ] Personally I have done calorie counting by limiting to just shy of 2,000 calories a day. Currently I am doing a Ketogenic diet. Which is a large reduction in Carb intake and like seriously, everything has “just to many carbs” for this diet. [ Neither of these options are fun. But there is no fun in Diet, only death. ]

The easiest way to curve mass cultivation is to start off by drinking more water. This can prevent headaches, fight off fatigue [ cause we are cutting out caffeine ], cut back on your snack urge, and allow you more time to walk to refill your water bottle. Now if you can’t beat your snackage then join them and replace them. Best candidates are Dried Fruits, Nuts, Dry Popcorn, Beef Jerky and Te to name a few. As we are on the topic of snacks, the next best thing from a snack is a meal. In which you should start packing a lunch and in some cases even dinner. Some light lunch meals can include Vegetable Chili, Salads, humus wraps, Tuna sandwiches, and a light burrito bowl [ very light on the rice if you are avoiding carbs. ] 

You should take the time to design your diet for your needs but definitely consider cutting back on the junk food and soda. No need to forsake it though, never hurts to treat yourself.

Mental health

The game industry is a very stressful job to be in. Stress can make you less productive, less coherent, irrational, and even uncreative. If gone untreated for long periods of time individuals can develop depression, anxiety, self doubt, and a growing sense of isolation. Especially for any remote freelancers, this is something to be aware of. However a lot of these mental illnesses develop slowly for most individuals. Sometimes it is very difficult to spot early signs of stress and symptoms of depression.

So the best thing to do when starting a new project or job or even now is to establish an emotional baseline. Taking the time to sit down and self examine your mental state. The way it works is that you think of a time in which you were the happiest or most relaxed. You picture the environment and the actions you were doing at the time. Then you compare those feelings to what you are feeling now. This then serves as your baseline and first check up before starting your next venture. When working in a high stress job it’s always good to periodically check in and course correct as needed or seek help.

Early physical signs can include insomnia or too much sleep, poor appetite, easy fatigue, and frequent muscle tension. If you or someone notices these changes always assess the situation, don’t wait it out. Find the cause and confront it, passive aggressive notes won’t work this time. The longer it goes the worse it gets. As stated before you can always check your Health Insurance Plan or company OSHA as some plans include access to a psychiatrist or psychologist, depending on the needs.

Art Imposter syndrome is something that plagues a lot of junior, student, and professional artists. Basically a heavy dose of self-doubt, creeping feelings of shame, and feelings of not belonging. This manifest and results into constant over exertion. This overworking is internalized compensation for the fear of being exposed as a fraud. Professionals suggest that with a positive attitude and mindset you can reframe those doubts and nagging feelings in order to overcome it. Even just faking a positive attitude when working on projects or personal artwork can help overcome those negative feelings. Adding a new level to “fake it ’till you make it.” Also strive to make what you love, don’t create art based off what is trending or popular. Now some self criticism isn’t all that bad. As a little dissatisfaction can be a great motivator as you continue to correct your artistic imperfections.

Image result for artist comic caveman

[Artist Link]

It also helps to have a hobby that isn’t associated with your career or passion. The ability to disconnect from your 9-5 can greatly reduce your stress. For the game industry about a quarter of individuals don’t do or have anything outside of video games. Which quickly leads to Burnout and just feeds most of these mental illnesses.

Exercise

From the light exercise to the intensive weight lifting, any form of exercise or physical activity is good for you if you are stationary for nine hours of the day. It can be anything you truly enjoy. If you love it or like it you have a higher chance to sticking with it. You could even make it your hobby. For remote freelancers having an activity that takes you out of the office / home and puts you with a group of people can greatly reduce those feelings of isolation and loneliness. Jogging and Running are the most recommended activity for those who sit /  stand at a desk all day with yoga being a good runner-up. [ Due to all those funny names that make you giggle on the inside. ]

Support Networks

With all of this, it can be dangerous to go alone. So listed below are two support groups that focus on mental health, that may be useful to some.

  • International Game Developers Association (IGDA) – A good source to get in touch with other developers as well as providing of resources and links to information relating to Crunch and other Industry topics.

 

  • Take this – An organization dedicated to helping people in the video game world talk about and manage mental illnesses. They provide guides on coping with depression as well as resources for mental health.

 

The Induction Blade

This project started off as a quick-lunch break test, that eventually evolved into a full game ready asset. It was a nice break from my environment piece [ which you can find here in which I learned and experimented with some new techniques.

So here is the original concept art by Fernando Correa. I suggest following him as his work is pretty damn cool. Great color palettes, line work, and compositions. Will probably end up recreating another one of his amazing pieces. You can follow his Artstation over here -> Fernando Correa 

fernando-correa-cauterizadorb.jpg

As part of my pre-production steps I took the image and generated a color palette to later use in Substance Painter as a jumping off point. I ended up losing the original color palette through my light rig, post effects like AO, and the 50+ layers in substance painter that were used to recreate this piece. I completely forgot to check my palette throughout the process. It was a kind of use once and put away kinda mind-set and never came back until I realized I needed to generate the final comp palette. Definitely keeping note of this so that in future projects I will remember to always check back to the palette. With that, here are the side by side of the two. As you can see my rendition [bottom] is darker than the original.

Color_Palette.JPG

Color_Palette_Final.JPG

My workflow for this piece was your standard process. It went from Block Out > High Poly > Low Poly > Bake > Paint > Render. With the most time spent in Zbrush and Substance Painter. Over all I went through 9 variations, as shown below. The transition is due mostly to the amazing feedback that I got from the Polycount, Level Up!, and various Game Industry discord communities.

TransitionPiece.jpg

For a quick breakdown, 1-3 was experimenting with colors and beefing up come components like the straps and handle. After that, 4-6 has very subtle changes but that bunch was working on roughness, emissive, and pushing the colors some more. Then 7-9 was adding gradients, pushing my metal map and emissive map, and finalizing my light rig.

Out of this I learned a new technique to push the stylization in my textures. Just as a word of caution don’t get to crazy with the filters as you can really ruin a piece and make it look over the top. [ Unless that is the style you are going for, then use as many filters as you want. ] 

Sword_Oil.jpg

The Oil filter in Photoshop is a very subtle filter that smooths out your colors, giving it well, an oil paint feel. The top image has the filter applied and the bottom does not. Again very subtle but helped smooth out the redness in the blade.

So here are the final renders!

Render_Sword_17Render_Sword_16Render_Sword_18

TextureShowcase.jpg


Update : Also it made it to Polycount’s front page, which is a huge personal accomplishment.

FrontPage.png

The BOHM System: Organization Pt. 2

Here is the second instalment to the developmental BOHM System. Organization. [If you missed the first part check it out here.] Now for more experienced developers this will seem very straightforward and can easily be skimmed over, making this part aimed more for those starting off in development or those who need some extra guidance. For students it’s a good idea to get into these habits early, allowing you to then bring this grounded skill set where ever you go. So, what are some good organization habits?

  1. Naming Conventions
  2. Sensible Folder hierarchy
  3. Pipelines
  4. Forward Thinking

Again some of these my be redundant to consider, but during my time in the industry these continue to be the root of large project troubles and even personal project endeavors. I’m going to expand and break down each point, provide some personal examples, and some helpful links. Below are a few links to some recommended reading, that if you have the time should check out at your local library.

  1. Insane Productivity for Lazy People by Andrii Sedniev [Link]
  2. The 4-Hour Workweek by Tim Ferriss [Link]

Before we begin let’s briefly discuss the benefits to clean organization. The major perk to all of this is that it just makes your projects easier to manage. It may be a small habit to pick up, but man, it sure beats sifting through a five month old project trying to figure out where you left off or if the “NewNew_Final_v4.3_ffs” is really the final. Other perks included are quicker development time, easy access to files, easier handoff between team members, debugging, reading console errors and of course establishing and meeting deadlines.

download (1).jpg

 

Good Organization

Naming Conventions

This is by the far the most important habit to establish. Proper naming conventions. You would think this would be straightforward but to this day I am still handed projects in which a character or environment is broken up into “polysurface2508” and the associated material is “pasted_pasted_pasted^5…pasted_plastic_poly_a_lambert” [ Real Talk. I have received entire builds with 20 different iterations of pasted_lambert. I have been on teams that have spent more time and effort cleaning these types of messes than if we had done it from scratch.]

Good naming conventions describe,

  1. What an object is.
  2. Where an object goes.
  3. What an object does.

With that being said however, there is no universal standard naming convention. Three basic types of naming conventions can be Camel Case (camelCase), Pascal Case (PascalCase), or Hungarian Notation (strHungarianNotaion). The difference between the three are which letter gets capitalized and the last having an identifier before the name. However this is more on the programming side of things and naming conventions can differ from studio to studio but listed below is a general starting point. If you don’t have the 15 seconds to properly name your materials and static meshes, you can always automate the process. Either through scripts or plugins that activate either before or after you export out of your modeling software.

Environment Modeling

Quick tip; try to avoid naming conventions that locks an asset to a certain level, character, or folder. So that when a small prop is used for a desert environment it can also be placed in a savannah environment while the mesh is still easily accessible and updated for both levels.

  • Textures – Either stored in your Source Images [Maya], an auto generated Materials folder in Unity, or a designated Texture folder in Unreal.
    • T_Name = Texture
    • T_Name_D.tga = Diffuse / Albedo / Base Color
    • T_Name_N.tga = Normal Map / Bump / Displacement
    • T_Name_R.tga = Roughness
    • T_Name_S.tga = Specular
    • T_Name_M.tga = Metal
    • T_Name_H.tga = Height
    • T_Name_O.tga = Opacity / Transparency
    • T_Name_AO.tga = Ambient Occlusion
    • T_Name_RMA.tga = Channel Packing three maps
      • Red Channel = Metal
      • Green Channel = Roughness
      • Blue Channel = Ambient Occlusion
  • Environment – If you want to get more specific with your naming conventions then you can use the following naming convention to sort your assets. Stored in your Assets folder [Maya], and designated Model folder [later to be migrated to a Unity prefab folder] in Unreal and Unity.
    • Chr_Name = Character
    • Ske_Name = Skeleton
    • Env_Name = Environment
    • Prp_Name = Props
    • Str_Name =Large Structures
    • Veh_Name = Vehicles
    • Itm_Name = Interactable Items
  • General Assets – Basic bare bones naming convention for any exported mesh. Stored in your Assests folder [Maya], and designated Model folder in Unreal and Unity.
    • SM_Name.fbx = Static Mesh
    • ANIM_Name.fbx = Animated Mesh
    • M_Name = Material
    • Vfx_Name = Visual Effect
    • Gui_Name = HUD
    • Vid_Name = Videos / cinematic
  • Version Control – Ending prefix to differentiate between updated models. Helps with rollbacks and tracking changes. For a final build you can go back and remove this extension if you choose to do so.
    • SM_Name_A =  Different variations of a model. A being Clean and B being Dirty, this really helps with vertex data and shaders.
    • SM_Name_v2 = Second Version of an Asset
    • SM_Name_001= First Version of an Asset
    • SM_AS_Name = Included initials of the artist who generated the Asset. This helps to make sure that artist don’t accidentally use similar naming conventions.

Essentially it goes < ID – Set – Instance – Variation >

Some examples would include,

  • SM_Prp_BattleAxe_A_v1 with M_BattleAxe_v3
  • ANIM_Chr_Attack_Alt_v3
  • SM_Veh_Wagon_v1 with M_Wagon_v1

funny.JPG

[Image Link]

Character Modeling

As I am not a character modeller I rely heavily on naming conventions found online. One source I like to use is a blog post by Ronald Fog [ Link ] in which they cover good character naming conventions using Camel Case. So check out their blog for additional information. In addition to that, listed below are more naming conventions to follow when creating characters. Since the most I do with characters is textures so here is a list of suggested texture names.

  • Textures – Either stored in your Source Images [Maya], an auto generated Materials folder in Unity, or a designated Texture folder in Unreal.
    • T_Name = Texture
    • T_Name_RMA.tga = Channel Packing three maps
      • Red Channel = Metallic
      • Green Channel = Roughness
      • Blue Channel = Subsurface Opacity
    • T_Name_Hair_RMA.tga = Channel Packing three maps for hair cards
      • Red Channel = Hair Alpha
      • Green Channel = Specular / Roughness
      • Blue Channel = Anisotropic Direction Map
  • Texture set up depends on the camera position and artistic style. Low poly assets can have a single diffuse texture map that includes a characters prop, face, and body.
  • Other options include breaking up hands and face, body, and additional accessories all into their own texture sets.

 

Folder Hierarchy

Now, after we create easily identifiable game ready assets the next step is to bring them into our game engine of choice. But where to put them? In all honesty you have really two options here. First option is to follow the established hierarchy or, second option, you can be a deranged psychiatric patient and export to a single large folder called “Final”. The second could lead to quick termination or a sharp decrease in your will power.

For hierarchy set up you can build your project folders by either Type or Relevance. Each has their own pros and cons, with Type being best for small projects and Relevance for large-scale projects. Again organizing your hierarchy will allow for quick searches and project updates.

Included hierarchy examples are Unity, Unreal, and Maya.

unity.jpg

[ Unity Image from Rivello Link ]

Unreal.jpg

[Unreal Image captured from my project]

Maya.jpg

[Default Maya Project hierarchy with a few added folders]

Unreal shows a very simple hierarchy that is used for personal projects, like my latest environment [Link], while Unity shows a hierarchy best suited for larger scale projects.

 

Pipelines

The bread and butter to any major and indie development team. The method behind turning raw data and vertice coordinates into glorious pixel filled entertainment. The process of creating 3D assets is supported by the backbone that is a production pipeline. Generally there is one large pipeline in which all aspects of production fall under, there is also individual pipelines that suit either character, environment, or vfx that are sub sets of the main pipeline.The one presented here is a typical 3D asset pipeline.

Blank Diagram.png

Out of Pre-Production the team general receives tasking or concept art. From that the concept art is thrown through the pipeline above. Generally there are some review periods sprinkled in between the steps to ensure that the asset is coming along, but this is how 3D assets are created. For most of my freelancing experience and in my current job this is the realm of the pipeline that I stay in. I hand of characters to animators and I hand off polished assets to the design team. If you want to learn more about the pipeline or if this pipeline doesn’t fall in with your speciality then check out the links below, that give a brief introduction.

  • Animation – [Link]
  • Level Designer – [Link]
  • Pre – Production – [Link]

 

Forward Thinking

In order to stay motivated and get shit done a little forward thinking really goes a long way. By planning and tasking out your work into bite sized chunks you will be able to visualize the end. If you are creating your own game then this is very important as you will be wearing many hats and seeing a project to completion will be even harder. Some great apps to use to help manage tasks are,

I use trello and enjoy their mobile app. It really helps to quickly generate a card when something pops in my head, then later fill it on the computer. So here is a brief look at my current set up in trello along with a task tracking method based off the mentioned books at the beginning.

TrelloStuff

So first things first is to create a card and give it a score or rating that signifies some sort of importance. I use the “Golden Task” scale, also referred to the 80/20 rule in which 80% of your progress comes from about 20% of the work you do. This involves a goal that gauges a task’s levels of importance towards a given goal. This helps keep the work you are doing relevant and helps trim off any excess distractions. For example if you set a goal to complete a prop by the end of the month then the highest ranked task would be given to the actual High Poly modeling of the prop, followed by lower numbers and moderate time to UVing, Texturing, and extremely low numbers (like 0-1) to rigging it.   Then of course we organize our trello board by putting the highest numbers at the top and working down.

The next part of my process is that I like to do things in two-week sprint increments. In which I set a goal at the end of a two-week period so that I dedicate all my free time towards it. At the end of the sprint I do a one week period of lower rated tasks. A planned break to slow things down, reexamine my current progress, and set up my next benchmark. This week also serves as a buffer in case I don’t finish my sprint and need a little extra time. At the end of a sprint I then generally publish my current progress to sites like Polycount, 10k Hours, and CG Society to get feedback to continue to push a piece.

 

Conclusion

As per my last post here is the TL;DR Recap for those out there.

  1. Name your work in a reasonable manner
  2. Organize your mess in a seasonable manner
  3. Look into pipelines and studio examples
  4. Set up your own method to get shit done and stay organized
  5. You can still be messy, just try to keep it to your desk

 

download.jpg