Showing posts with label development planning. Show all posts
Showing posts with label development planning. Show all posts

Wednesday, March 20, 2013

Free Collaboration Tools for Remote Teams

I've just finished my first full-scale game development project, from design all the way through post-launch marketing, and I've learned a great deal in the process. My development partner and I started from scratch to develop a new Hangman app for Android and the Web called Classic Hangman Game (very original name, I know, but it's necessary for discoverability on Google Play until genres and descriptive terms can be searched for).

One of the things we had to tackle right away was to put together a viable workflow and a suite of tools that would allow us to work together, even though we live on different sides of the country. After a few hours of trial and error, we found a group of tools that allowed us to work efficiently throughout the project, whether we were working independently or at the same time.

Dropbox

The first challenge we faced was figuring out how to share and concurrently access project files and resources. We both needed continually up-to-date access to source files, images, sounds and all of the supporting files that Unity produces on its own. We found Dropbox to be an excellent solution, and we've since used it at the Global Game Jam 2013 in Denver.

Dropbox is a free cloud file-storage system with options for premium upgrades. The service allows users to synch folders on any PC or mobile device to any other, while also being able to access the folders and their contents on the web. After a quick download, we both had Dropbox folders on our machines, and we could both access the same files at will. As an added bonus, we regularly received notifications when files in Dropbox folders had been changed, so we always knew when the other person had worked on something.

Google Drive

Google Drive works in much the same way as Dropbox, but with the added bonus of having Google Docs built in. Dropbox takes a bit of time to synch files, whereas shared Google Docs are updated almost instantly for all users. We used Google Drive and Docs to share text files -- mainly our design document. We found that we could both have the design doc open, and changes made by one of us would immediately be reflected on the other's screen. We revisited the design doc frequently, and usually designated one of us to make changes to the doc while we spoke over Google Talk.

Google Hangouts

Google Hangouts is an excellent tool for remote collaboration and communication. The things we found most useful were the speed and ease of setting up a conference, and the ability to share our screens with each other. Using Hangouts, one of us could view the other's screen, if needed, while we worked. This proved invaluable for solving engineering problems together, or walking through administrative processes such as setting up various developer accounts online. The one drawback to Hangouts is that it tends to be processor intensive compared to other voice chat services. To solve that problem, we turned to Google Talk.

Google Talk

Talk is a much more lightweight and simple voice chat program than Hangouts. Whenever we needed to free up resources, such as during play tests or project building, we would switch from Hangouts to Talk for a smoother experience. This is also our go-to program for Starcraft 2 breaks, again to free up system resources.

With this suite of tools in hand, we were able to successfully see our project through to completion, from design to publishing and post-launch support. If you've found this article helpful, please take a moment to check out the fruit of our labor: our first game, Hangman for Android! If you would rather play on the web, come on over to my portfolio website at www.davesingram.com.

Play Classic Hangman Game (Free) Now on Android!
https://play.google.com/store/apps/details?id=com.Volume.Hangman.Free


Saturday, September 24, 2011

Critical Path Method (CPM) in Video Game Development

Aside from covering news and providing commentary on events in the video game industry, I'm going to use this blog to provide quick business tips for startup or experienced software developers. Think of these tips more as quick guides to get you thinking in new directions about the way you develop games and run your company, rather than as comprehensive tutorials. I will provide additional links to further reading on each topic.

Today's post is about utilizing the Critical Path Method (CPM) in video-game development. The Critical Path Method provides a way to visualize the multiple concurrent workflows necessary to keep large-scale projects on schedule, with a focus on determining the specific sequence, or set of sequences, that must be completed on time for the entire project to finish on schedule. This crucial series of activities is called the critical path.

As with all timeless strategic tools, the rules of CPM are simple, but the strategic insights and possibilities are numerous. I'll give you a quick overview of CPM here, and you can follow the links at the end of the article for a more in-depth review.

CPM charts use nodes to represent different activities in a multi-step process. Nodes are drawn in a diagram from left to right, beginning with the first activities and progressing to activities that require inputs from previous nodes. CPM charts can include more than one sequence of activities, with each sequence drawn above or below the others. Nodes are connected with solid lines to show the flow of materials (in the case of game development, completed components such as 3D models, CG sequences or blocks of working code) and dotted lines to show flows of information. Planners write the estimated fastest and longest completion times on each node, as well as the required manpower and any required inputs. Using the quickest and longest possible completion times, planners begin with the first activity in each sequence and determine an earliest and latest completion time for each activity, based on a set start date and time. Nodes with a buffer between the earliest and latest possible completion times are said to have slack time, and those without a buffer have no slack time. Drawing a line between each activity with no slack time reveals the critical path -- the series of activities that must meet their deadlines for the project to come in on time.

Whew... that was a mouthful. Now let's move on to how this applies to you. There are two things I can say for certain about delayed video-game launches: 1) they happen all the time, and 2) customers hate them! CPM exists to avoid this very problem, making it an extremely valuable tool for video-game developers. Knowing which activities in your workflow are crucial to the timely completion of the overall project can allow you to shift resources, devote personal attention or call in outside help for your most time-sensitive activities. You can use CPM data to alter the start times of critical activities, forcing slack time into the equation to allow a margin for delay, or to set more realistic product-launch dates with less chance of disappointing customers.

Rushing through a development project is never a good idea; proper planning is the best defense against the urge to cut corners at the last minute. After reading this post, there's no longer any excuse to be surprised when a specific activity pulls an entire project off track!


Further Reading:

How to Determine a Project Timeline

CPM and PERT Weaknesses and Strengths

About Process Selection and Facilities Layout in Operations Management

Business Tools for Scheduling