Who Needs Graphics?

As processor speeds increase and game development technology improves, photo-realistic graphics have become ubiquitous. However, as I watch my daughter discover her favorite games, I wonder if high-definition graphics matter at all.

Having grown up in the 1980s, I witnessed firsthand the evolution of graphics from arcade classics such as space invaders and Pac-Man to more intense immersive experiences like Sonic the Hedgehog and Mortal Kombat. If you asked me which game was the most fun and engaging, I’m pretty sure the answer would not depend on graphic quality.

Early pixelated video game characters have become part of our culture

2-D or 3-D

For the past week or so my capstone student developer team has been discussing the look and feel of our final project. The project will include the ability to edit and play board games. This has made me wonder about the benefits of 2-D games with simple graphics vs 3-D games with more immersive photo realistic graphics. Granted, I don’t anticipate anyone in my program developing high definition in-game cinematics, but making these considerations as an important part of game development.

Since we started the project, I’ve had a few opportunities to think about the types of games my 10 year old daughter plays. In particular, she enjoys Roblox, Minecraft and the 2-D chess platform Lichess. All three games could be considered “Lo Fi“. While Minecraft and Roblox are 3-D, their focus is primarily on simplicity and massive online interactivity. Similar to my group’s project, Roblox allows individuals to create games and play levels.

Roblox – Adopt Me! has had 3.0 billion plays on Roblox. Image Credit: Roblox

The Demands of Immersive Gameplay

Many video game players have become accustomed to an immersive experience. For example, first person shooter style games such as Crysis have lead the way in interactive surroundings and high definition graphics. However, they have often been notoriously demanding on PCs and processors.

Similarly, open world style games such as Red Dead Redemption allow the player to travel across wide landscapes and interact with a sandbox-style environment. In my days as a video game tester, I worked on an open world project that presented considerable demands for the developers. In particular, they had to design the game in such a way that objects loaded into the world only when the player approached them. They had to avoid objects appearing to “pop-in” to the player’s field division. Often, using artfully placed fog or other artistic elements can help camouflage this effect. In the case of the beloved Red Dead Redemption, an immersive gameplay experience when coupled with a good story line has proven to be an extremely effective.

In my daughter’s case, she has been exposed to a variety of styles of games. However, at this point, she gets the most amusement out of Roblox. It allows her to interact with others and screenshot awkward visual bugs. Although I’m sure it’s not the intent of the developers, allowing users – particularly kids – to design their own level result in a lot of wacky chaos that young players find particularly entertaining. Like Minecraft, the 3-D graphics in Roblox are simplistic and block-like, easy for young players to manipulate and understand. There is no true realism but a very basic sense of physics that can be used to design levels.

The discussion of whether or not “good graphics” are needed in a game has been going on since the beginning of video games. The conclusion always seems to be somewhere in the middle – it depends on the goal of your game design. If it’s a lightweight, social experience that you’re going for, no need to rely heavily on graphics. But if you are looking for a realistic immersive experience, it’s worth investing in quality graphics.

How to Run a Team with Varied Skill Levels

In one of my first group projects as a computer science student, a team member with a background in software engineering overwrote a segment of code that I spent a lot of time on.

However inconsiderate, in a group project, I was thrilled to have members who actually showed up and worked on the project. It dawned on me later that I had spent the same amount of tuition as he did, but was robbed of a potential learning opportunity. Not only was I unable to see my own code used in the project, but I missed out on the potential learning opportunity to improve my improve my skills.

Unlike short-term group projects, tech organizations have hierarchical structures and training processes. However, team members will always have different strengths and areas of expertise. Ideally, a knowledge sharing strategy and code review practices could benefit the whole team.

Code reviews can benefit the whole team

Internal Knowledge Base

Senior team members are pulled in many different directions. Asking them to document their best practices and instructions in an internal knowledge base may seem painful at first, but will save them time in the long run.

An internal knowledge base is a central, inward-facing site featuring knowledge articles, guidelines and examples for staff. This is similar to a customer service knowledge base that is commonly used for customer to seek solutions; in this case, it is used for employees. It can be an invaluable tool for on-boarding new staff, standardizing processes and reducing on-one-on training.

Many organizations use a wiki tool such as Confluence to organize a knowledge base. Confluence has some built in “How-to” article templates that can be used to and several easy-to-use navigational features.

Code Reviews

A code review is a way to ensure that your more experienced team members can share their knowledge and help others grow. At the same time, junior team members can begin to incorporate improved practices. This process offers accountability for the member whose code is reviewed and is perhaps the most beneficial form of training available to a junior engineer.

While some styles of code review require in-person meetings, repositories such as Github offer additional tools for lightweight code reviews. Over the shoulder style code reviews or paired programming can also be used. Experienced programmers must understand how to deliver quality feedback respectfully, will also help their soft skills.

Mentoring is important part of training

Avoid Competitiveness and Intimidation

In analyzing ways to improve diversity in computer science, some programs such as Harvey Mudd School College have implemented ways to prevent students from dropping out or avoiding computer science. In particular, women tend to drop out of computer science program in greater numbers than men. There is no definitive consensus on the reason for this phenomenon. One potential cause is that beginners who are new to programming are intimated by others in the program who have already had experience with code.

If an organization would like to remain competitive, it is important for all team members to accept the responsibility of mentoring less experienced programmers. Beyond this, seasoned members should realize the impact that they can have on those with less experience and work to empower them. This will ensure a long-term benefit for all.

Why Go Back to School?

In his book You’re Not That Great: (but neither is anyone else), Bachelor Executive Producer Elan Gale argues that a negative mindset is more motivational than a positive one. Many success stories, he contends, are the result of trying to prove someone wrong. In other words, we want to teach the haters a lesson by becoming successful.

In my case, I decided to get a science degree more than 10 years ago when pregnant with my daughter and unemployed. Getting a degree in computer science would be the ultimate way to address a major case of imposter syndrome. Attempting to switch career tracks as a mom in my 30s and 40s was a daunting prospect. People (imaginary haters) might ask, “Who is this old lady telling me about computers, she can’t possibly know what she’s talking about!” Maybe a CS degree would prove them wrong.

Major life choices like getting a BS can be difficult

Why Computer Science

My first degree was a BA in English from the University of Minnesota Twin Cities. The youth of today might refer to this as a “chill” program. Not because it is the eighth coldest campus in the United States, but because it was relatively easy. I won a writing award for doing a Freudian interpretation of the 1970s zombie movie Dawn of the Dead. Yes, that’s the kind of thing you win an award for when you are an English major.

To decide on a new degree, I made a list of all of the science degrees I was interested in – economics, life sciences, computer science. Then I looked into the requirements and the career areas for those degrees. After a while, it became clear that computer science would have the most practical application for my career and was a reasonably good investment. The Bureau of Labor and Statistics consistently shows a great median pay and job outlook for computer science.

Why Spend the Money on a Degree

Before being unemployed and pregnant, I had worked as a QA tester in a video game studio full of engineers and designers. A few of the engineers taught me a little bit about coding – which had inspired me to learn more about it. One of them was adamant that you don’t need a degree or formal education to code.

I’m sure he is right. There are certainly many examples of highly successful people in tech without traditional degrees. But research suggests that the financial success can be linked to degrees and certifications.

Conquering Math

For me, the ultimate roadblock in any science degree would be math. I knew a computer science degree would require some math. Sal Khan, founder of Khan Academy notes how math competency builds on each previous skill. If you are not solid in Algebra, you will struggle with Calculus. If you have any gaps in your fundamental math skills, those compound each time you try to learn something new.

I spent many of my pregnant days on Khan Academy progressing through the math modules. I started with elementary school math where I found weaknesses in my times tables. Khan Academy took me all the way through algebra and geometry. After that, I took formal online courses through the university of California in pre-calculus, calculus I and calculus II. This process was not easy, I cried on more than one occasion.

An online degree is helpful for non-traditional students

Choosing OSU

It may be harder to imagine now, but back in the day when I began researching programs, traditionalists believed an online degree did not provide quality or legitimacy. For me, the choice was to either get an online degree or to do nothing. As a new mom, the fact that it was online made it possible. Once I decided that doing nothing was not an option, the decision was obvious.

Oregon State University’s online Post-Bachelor’s in Computer Science seemed like a straightforward path to complete the degree. (Of course, it took me a few times to be accepted into the program as I worked my way through the math requirements. )

Was it Worth it

Five painstaking years later, I’m on the precipice of completing my degree and being in the program has allowed me the career change I have been looking for.

While the imposter syndrome is still there, I often remind myself of all of the difficult technical classes I made it through to get here. That confidence is ultimately what my pregnant unemployed self needed to silence the haters.