Advertisement

Tech stack recommendations for small studio

Started by December 31, 2013 01:05 AM
6 comments, last by Hodgman 10 years, 10 months ago

Hi everyone, glad to be here. smile.png

I have been reading up on some similar topics and articles, but I wasn't able to find much regarding tech stacks or pipeline solutions for a small studio (2-4 people working locally here in Chicago). There are a lot of options out there, and I am still thinking about how these pieces all come together, so any advice is great advice! happy.png

GOAL

We have our own dedicated Ubuntu Server (13.10) with a public IP and is fire walled. Primary use of this server is to bring all our game assets and code into Unity. We would like to find some recommended solutions for version control, asset management, and general software to help us with iterations and builds.

LOOKING AT

Perforce, Plastic SCM, Unity Asset Server ,Atlassian's Software solutions like Stash, Bamboo, and JIRA. Redmine. Podio/Basecamp.

QUESTIONS

So, I guess the question becomes what are some bare bone services that our team could benefit from? I know we need some sort of version control and issue/bug tracker. Since we are all going to be working together locally here in Chicago, the social side of things isn't important, but it would be nice. Just not sure how all these things plug into each other or if we really need them for our size? In my mind, here was a possible stack:

Ubuntu Server -> Stash (GIT) -> Perforce -> Bamboo -> JIRA

Sadly, I am not even sure if the above example is even remotely close to a pipeline, so please forgive my naiveness! It could be as simple as just using Perforce with some plugins for the art assets?

Thanks for any suggestions, clarifications, or ideas!

ET

We would like to find some recommended solutions for version control, asset management, and general software to help us with iterations and builds.


This isn't really a business question -- you're asking businesspeople what tools your studio should use. I'm thinking this is more a project management question, so I'm moving this to that forum.

BTW, I never heard of the term "tech stack" before -- where does that phrase come from (in what realm does one hear terms like that and "pipeline solutions")?

-- Tom Sloper -- sloperama.com

Advertisement

Thanks Tom. Couldn't decide which one it fit into, so took a 50/50 shot. ;)

BTW, I never heard of the term "tech stack" before -- where does that phrase come from (in what realm does one hear terms like that and "pipeline solutions")?

I've worked at a large hardware/software company for 8 years now, and the terms "tech stack" and "pipeline" are used all the time when pitching or summarizing your project. Funny to see those terms from another perspective! But essentially yes... recommended software/services for production and where those products/services fit into the lifecycle of the project.

I've worked at a large hardware/software company for 8 years


Okay, cool. Thanks. By the way, there have been several threads here about production software. Have a look!

-- Tom Sloper -- sloperama.com

Minimum, you probably want some kind of solution for all of the following;

Development:

- Task tracking (for e.g. Agile or whatever methodology you follow)

- Nightly builds / continuous integration of source code

- Nightly builds / continuous integration of art assets

- Source code management

- Asset management

Test / Debug

- Static-analysis / profiling

- Unit-testing framework

- Issue Tracking

System Redundancy:

- UPS (Uninterrupted Power Supply)

- Backups

- RAID

Then, you might also consider integrating some other things into your toolchest, but which aren't part of the pipeline:

- Email server (keep internal mail manageable with various mailing lists, and communicate with your fans/community).

- Collaborative authoring (e.g. a Wiki)

- File shares (for non-assets)

- Off-site backups

- Calendar

I like Git for SCM, but don't recommend it for art assets. I feel the checkin-checkout model works better for art assets, so I prefer Subversion for that -- I meet a lot of resistance for that recommendation, and many people say you don't need that level of management for art assets, those people usually recommend an asset-specific management system, a CMS, or even something like drop-box. Personally I like the more robust management and versioning that Subversion offers.

I don't really have a strong recommendation for the others, but they're all important in their own ways.

I also can't stress enough that your server should keep regular backups, and store everything on a RAID (mirrored or parity) volume. Also strongly RAID != Backups -- they are complimentary: RAID protects you from drive failures, backups protect you from human error. If at all possible, find a secure off-site backup provider, they're usually not expensive, and this protects you against catastrophic, total-loss scenarios: (flood, fire), freak electrical incidents (power spikes frying your entire RAID volume), or just the rare but possible contingency that a second drive in the RAID array fails before you are able to replace it. Putting your server (and preferably all networking equipment and dev machines, if not laptops) on a UPS will also help stave off complications due to power-loss.

For security, keep your public presence (website) on a separate server off-site. I use DreamHost and they've been great.

throw table_exception("(? ???)? ? ???");

Ravyne, this post is incredibly helpful and exactly the kind of discussion I was looking for. Thank you! My forte is not system administration, but in a small startup, you have to kinda do everything. I'm savvy enough to set up most of these things as I have done with our little server we have. You have confirmed to me what I already knew was the answer, which is, there is no right answer! smile.png Many tools for many different jobs.

'Ravyne', on 31 Dec 2013 - 5:47 PM, said:snapback.png

Development:
- Task tracking (for e.g. Agile or whatever methodology you follow)
- Nightly builds / continuous integration of source code
- Nightly builds / continuous integration of art assets
- Source code management
- Asset management

A lot of the above seems to be a strength of Atlassian including Stash (for storing our GIT code and source code management), Bamboo (for nightly builds, test tracking) and JIRA (for AGILE and ticket tracking). Lastly, as I will be doing most of the Art, I could probably use Perforce's Graphical Tools Plug-In and Unity's Asset Server for versioning and storage. I too have heard about SVN, but I am in agreement that everyone should use some type of version control.

Development:
- Task tracking (for e.g. Agile or whatever methodology you follow)
- Nightly builds / continuous integration of source code
- Nightly builds / continuous integration of art assets
- Source code management
- Asset management

System Redundancy:
- UPS (Uninterrupted Power Supply)
- Backups
- RAID

Wow, totally didn't think about this! I'll be ordering a UPS soon, and Mozy has some great affordable business backup solutions for our server and computers!

Then, you might also consider integrating some other things into your toolchest, but which aren't part of the pipeline:
- Email server (keep internal mail manageable with various mailing lists, and communicate with your fans/community).
- Collaborative authoring (e.g. a Wiki)
- File shares (for non-assets)
- Off-site backups
- Calendar

Love this. I have been thinking about services like Podio may come in handy for these more social and collaboration services..

All in all, super helpful, thanks again Rayvne! I think our "tech stack" is looking a little more clear now. Sheesh, better stop typing as there is so much to setup! laugh.png

ET

Advertisement

This is my workflow after trying many things over the years.....

Unity - Game engine

Visual Studio - IDE

Source control - Git and Github.com, and using SmartGit for my IDE

Issue tracking - Trello - An awesome web-based card tool, that lets you drag cards around and put them under lists, and a whole other load of features, extremely powerful and visual!

Most tech people should know what you mean when you say "software stack" or "tech stack". However, in games, "pipeline" often refers to the serious of tools used to produce content.
e.g. Art Program 1 -> Exporter X -> Art Program 2 -> Exporter Y -> Importer Z -> Game Engine
In your case, this might be something like (including the revision control stack tacked on the bottom):


                              _______
.MB <-> Maya       -> .FBX -> |Unity|
 ||     Photoshop <-> .PSD -> |_____|
 ||                     ||
_\/_____________________\/___
|_Perforce__________________|

This topic is closed to new replies.

Advertisement