Showing posts with label GravTech Games. Show all posts
Showing posts with label GravTech Games. Show all posts

Friday, April 17, 2015

Debugging – The Importance of DIY

As with any game in production, we at GravTech Games have encountered our share of bugs. Some going from having the wrong value being plugged in all the way to needing to look into the Unreal Engine 4 source code to find the one thing that messes up the code and keeps us from compiling. And like any other game these can take time to fix, it’s unavoidable. However the real topic I want to touch on is the importance of fixing your own bugs and issues before asking for outside help, even if you aren’t the one who made the bug. Doing so can make you into a stronger programmer, less dependent on others, but also (and this part is probably most important) the issue becomes less of a time sink for the team. While this is a good practice in any work environment it is especially important while working on NORA because our team works remotely.

In most normal work environments I could lean over and talk to a fellow teammate about an issue I’m finding with their code and get a more immediate answer to the problem. However, when working with different people all living in different places and even time zones this becomes difficult. Instead of being able to lean over to my teammate I instead have to write a message with the problem in Skype, and then wait for what can be hours and hope I get an answer to the question, which might not even happen. Even worse, this can take up the other person’s time when helping. One person spending 1 hour on a bug is 1 hour of dev time spent. But two people both spending 1 hour on a bug is 2 hours of dev time spent. This slows down the productivity of the team and the turnover rate for getting tasks done. This is where fixing your own issues comes into play; with it our productivity can increase by not wasting time waiting on an answer. With that in mind here is my debugging process for when these situations arise:

Talk it through:


Talk it out with yourself, try to envision the problem, know what’s going on, and then find where it’s messing up. Sometimes just reviewing the code you have written can give you the “Oh that’s what it is, of course” moment and then you move on. When you explain something to someone you go in detail about whatever you’re explaining and sometimes when programming going into every little detail can show you what the issue is.

Knowing how to read code:

Credit

This goes beyond being able to read your own code but just to all code in general. Imagine a scenario where you write a function and it works fine for every application you have for it. Now imagine that it’s months later and you’re finding issues with it and you’ve completely forgotten what it is that you did in the function and said “My code is perfect, there’s no need to comment it”. Knowing how to read code comes in here to help even with your own code, because I for one will admit that I have had this happen to me and I was very thankfully I could read the very poorly written code so I could see the issue. This also works well when debugging other people’s code because other people think differently and therefore code differently, so being able to understand what they’re doing is the first step to finding the issue.

Don’t be afraid to learn:
Credit
Knowing what the issue is and knowing how to fix it are two different things. And with a new engine like the Unreal Engine 4 there are bound to be issues with implementing your own functionality. Thankfully for us there is a plethora of forums with people attempting similar things to us who have found different solutions. Several months ago we were having an issue with the project only building from Visual Studio on certain machines. The issue being that to build the project the project was looking for a build.bat file in the install folder for the engine and we had it installed in different locations. Since the engine is still moderately new and not many people have worked on big team projects with it while using source control there wasn’t an easy solution to this problem. However after about an hour of searching on the internet for people who had similar problems I finally found one person who said he fixed the issue by using environment variables to store the file path for the install folder. From there I had to learn how to use environment variables in Visual Studio for how we needed it and then the problem was fixed. This would have been very problematic to the team had it remained an issue.

Ask for help:

Credit
Yes, I started this as a do it yourself, but some problems you just can’t solve alone. However this should be the second to last thing you do. And if you’ve done your research, you’ve stared at a screen for hours and still nothing then sometimes a fresh pair of eyes is just what you need. You need a different perspective and someone to talk things through with. Even if it takes up their time as well as yours if it’s a problem you can’t fix on your own then it’s a problem you can’t fix on your own and you need help. And if after getting help and you still haven’t made progress on the issue then you might have to go to the last resort, rewriting the code. I had an issue on a past project where the entire collision system was broken and the person who wrote it was no longer on the team. We spent a full day looking at his uncommented and very confusing code and it got us nowhere. We eventually had to rewrite the entire system to fix everything.


In the end problem solving is a time consuming and not-always-fun mini-game we have to play. But if you can learn how to play it correctly then it becomes less of a hassle and it makes you all the stronger for doing it.

Tuesday, March 10, 2015

Empowering a Team Part 2 - Maintaining Trust with Transparency

Ever had a really crappy job? And I mean really crappy, not just a place you’re dissatisfied with. I’ve had a couple really awful jobs, but I’d like to share a story about the worst one I ever had. When I first left college I started a job at a pharmaceutical sales call center. I won’t use any names, but my job was simply call people, primarily elderly patients, who requested information on the clinics we ran and book them for appointments, let’s just call them, “the clinic”. Within 4 months I was approached by one of the owners of the company and asked if I’d be willing to step up into corporate management and manage the Customer Service division for the entire company.




This proved to be one of the more difficult positions I’ve held in my life. My job description was simple, I fought refunds for the company. Within my first 6 months I managed to save the company over $2 million in potential refunds. I started living a comfy life and began to thrive. Then almost 1 year after I ascended to the position things started to unravel.


The company, which had a 3-way equity split of ~33% per shareholder, began having disputes amongst the leadership. One of the owners became greedy and dug up the past of another owner. He spread this through the entire company and built an army to take down his once business partner. What’s sad is that his plan worked. He soon acquired 51% of the company and kicked his partner out. My thriving career soon became a game of office politics and resembled an early episode of House of Cards and not a medical clinic.





So why do I bring this story up on a video game development blog? Well simply, this clinic is now starting to fall apart due to how they manage their team and treat their customers, and anyone leading a team of their own can learn from their errors. They lack one element that successful companies thrive off of; transparency. Transparency is one of those things that a lot of people in leadership fear, which I've never understood. Transparency builds trust, which is a crucial ingredient in getting the most out of your team.





At the clinic, corporate was separate from every aspect of the company. You never knew what would happen next and it cultivated an atmosphere of uncertainty, fear, and distrust. Rumors began flying around and people started retaliating against corporate change. Those who spoke out would often be greeted with termination or suspension, causing more panic. Now, as a leader, you must recognize this toxic behavior and not allow it. If your people are constantly concerned with losing their jobs or forming alliances to further their office political campaigns, how are they going to accomplish their work? Short answer, they won’t. Transparency reduces the need for office politics. If everyone knows what’s going on and the company does a good job of maintaining transparency, then there’s no need for people to be scheming around trying to get answers or to protect their interests.


Transparency also boosts communication. At the clinic you had to send things up the chain of command to get it moving and if you stepped outside that protocol you were significantly reprimanded. This process was time-consuming and by the time the information got the right person it was often too late. You cannot let the process get in the way of doing business. At GravTech, we encourage our team to go directly to the source. If they need something done, go to the person who can get it done. Of course they still need to notify the appropriate leads to ensure we’re all staying on the right track and not running off in all different directions, but it’s not about waiting for permission to get things done.



Lastly, transparency builds trust with your audience.  At the clinic, the main issue was the wording of the paperwork they would sign with us. It was essentially a waiver of rights that gave me precedent to fight the patients on their legitimate requests for refunds. However, when being sold the process generally happened so quick that many patients would never read what they were signing, and even the ones that did, many didn't understand the scope of what rights they were relinquishing. I fought the company to change the wording multiple times and even to change the policy to a full refund policy. Those suggestions fell on deaf ears and our patients would be left frustrated in the dark and often flock to our competition. Transparency with your customers means setting appropriate expectations for your product or service and not pulling a veil over their eyes during the sales process or strong-arming them. People deserve to be treated like people regardless of who they are, where they come from, or anything else. They never deserve to be treated as a number, a wallet, or a punching bag.

It’s simple; treat people with respect and people will be more apt to respect you, regardless of who they are.

Saturday, February 21, 2015

The Importance and Challenges of an Art Direction

A well defined art direction has multiple parts to it, including style, theme, color palette, etc. Having all these work together in a cohesive manner can really make the difference when trying to create an impacting and engaging visual experience. This is true for all forms of entertainment like movies, games, and even music.




So why is a solid art direction so pivotal to the game development process? Imagine an art team without a proper art direction to set the foundation for the project. You’d spend more time resolving issues then producing art! Each day would bring multiple revisions and artists arguing over who should change what so everything looks consistent. If these key aspects of the art, like character, clothing, or environmental style, aren’t figured out from the start you’ll either be drastically slowed down, playing catch up, or have a vastly inconsistent looking game. So obviously you can see the benefits of having a solid art direction and how doing so would help alleviate a lot of problems or delays during production.


Now for the challenging part: figuring out your art direction. It takes a lot of time and effort to really nail down your idea of the game on paper, especially if it’s going to have a really unique look. Just having a description doesn’t always cut it. Sometimes you need to find certain references or develop diverse concept art to help convey your style. This process is usually done during preproduction and does require a bit of research into what other people have done and what worked and what didn’t. Also if it is something difficult and never done before that makes it that much harder.



From my own experience on working on NORA we definitely ran into a lot of issues in the beginning when there was little to no art direction established. Once I became the art lead, my first goal was to figure this out and provide a proper vision to move forward on. This process was not necessarily an overnight thing and took some time to figure out but in the end it was worth it and we now a definitive vision and style that we are proud of and can continue to refine moving forward. We definitely can’t wait to show you this game and hope that you love the art style and direction as much as we do.

--

By Jared Frenzel, Art Lead for GravTech Games

Saturday, February 7, 2015

Empowering a Team Part 1 - Leading with Vision

We’ve been at this for a while and I’m in no way saying that we’ve become experts in leadership, but we’ve picked up a few things since we started this project a little over two years ago. So in effort to give back to the community, we’d like to share from our experience ways to boost productivity and team cohesion over a few separate blog posts. And like any project, what works for some, may not work for others so if you and your studio approaches this differently we’d love to hear from you in the comments!


Credit
One thing I’ve personally learned through this is the benefit of leading with vision. You hear that phrase a lot in this entrepreneurial, small business world, but don’t dismiss it. It’s one of the most important tools any business owner has. Through vision you can inspire your team to be a lot more than you ever considered. For us this realization began with a book, “Start With Why” by Simon Sinek. It’s a fantastic read and something I recommend to anyone just getting started in a leadership role. It explains how much further your efforts can go with a simple question, “Why?”


So, why does GravTech exist? One word: Empowerment.

It pains me to see how video games are viewed outside of the community, and even within the community there has been a lot of negativity lately. We believe the biggest cause has been an imbalance of power within the industry. Many voices go unheard when the ones calling the shots think they can live off their past successes forever and many more voices go unheard when a debate turns into a shouting match and people are only listening to those who shout the loudest or say the most outrageous things.

Credit


We decided that if we wanted to make a difference we weren’t going to be doing it alone. We need to empower a team to flex their creative muscles, to push beyond the status quo and reach for something beyond what we initially believed possible. We need to provide content that is engaging to players, something that stimulates the brain and makes you think about what you’re doing, as opposed to some mindless repetitive tasks. It’s time for games to evolve beyond fun toys and into something that can make you reflect just as much as any other work of art.
Once we established that vision, and pushed that vision through the studio, we began to see some subtle differences around the team. We began to have more vocal and energetic meetings. We saw artists, designers, and programmers critiquing each other more openly and ultimately bettering the project. My personal favorite change is how quickly new people become acclimated to the project. Usually a new person spends their first meeting just listening in, but by the second meeting they’re just as vocal as the veterans.


Eventually you’ll see the dynamic shift and you’ll smile to yourself when you hear a lead explain the vision to a new teammate and see how deeply they have embraced it. Let your vision speak through your actions and consistently refer to it when discussing the project or team. Trust me, you’ll be happily surprised with how far a common vision can take you!


So we’d like to hear from you! How do you empower and inspire your team? Tell us in the comments below!


--
Kevin Gray
CEO and Co-Founder of GravTech Games