Source Control

Presentation: Game Development with Perforce

Presentation: Game Development with Perforce

Hello everyone,

I’ve been pretty silent lately on this blog with my entire focus being on Life Beyond, Darewise’s upcoming massively multiplayer online game.

In the meantime, my source control study has had great feedback from many game developers. I’ve had the opportunity to talk more directly to the companies behind those products and provide feedback as well as hear about some exciting upcoming changes.

Recently, I’ve had the chance to be invited to speak at Perforce on tour EMEA 2020, which took place online on October 7th. In case you did not attend, I can finally share this presentation and the details with you today.

In this talk I will show how we set up our tools and infrastructure at Darewise, using Perforce’s latest features and wide suite of tools. There are also a couple of tips and tricks for those of you already using it, so I’m hoping everyone can learn something interesting from this presentation.

You can also download the slides here if you need a better look.

I’d like to thank once again Suzanne Miles and everyone at Perforce for making this happen and for all of the time that they have already dedicated listening to our feedback and wishes for the future of Perforce.

Enjoy!

Posted by Samuel Kahn in Presentation, Source Control
GitHub is free for Teams

GitHub is free for Teams

GitHub has just made their Teams plan available for free. This allows for unlimited collaborators and unlimited private repositories. They have also reduced their paid plans from $9/user/month to an extremely competitive $4/user/month. Here is the full pricing breakdown.

This has the potential to be a real game-changer, and I will take the opportunity to update my comparison of Git hosting providers shortly.

In the meantime, let’s examine how GitHub compares with other hosting providers now that users are essentially free. Its main downside was the built-in limitation of 1GB for LFS, which can be extended by increments of 50GB for $5/month. This also includes bandwidth usage on top of storage, which means the more users, the quicker bandwidth will be used up.

I took the time to update the graph comparisons for typical use cases and the result is impressive:

Continue reading →

Posted by Samuel Kahn in Source Control
Plastic SCM Source Control for game development

Plastic SCM Source Control for game development

This is part of a series of posts on source control for game development. Read more in the Blog.

Plastic SCM is a lesser-known source control solution for game development. In fact, I expect that a lot of the readers will be hearing about it for the first time. I personally discovered it only a few years ago. So why is it worth an article in this series?

Well, Plastic SCM promises a lot: Plastic SCM brands itself as “the version control for games”, and promises to deliver all the benefits of Git, as well as all the speed and power of Perforce, enterprise-grade features and support, unparalleled user experience, and unique features on top of that!

In fact, I was so excited by the product that I decided to evaluate it when I started Darewise, and back then I was very impressed. So let’s jump right in and see how it looks like today!

Continue reading →

Posted by Samuel Kahn in Source Control, Source Control Comparison
Perforce Source Control for game development

Perforce Source Control for game development

This is part of a series of posts on source control for game development. Read more in the Blog.

Perforce is the most widely used source control solution for game development studios.

At Darewise, we evaluated many options and finally opted for Perforce, much like the rest of the game industry, or at least those who can afford it. Pretty much all major AAA studios, and medium to large teams are using Perforce as their main source control, so there must be some valid reasons behind this choice. I have personally used Perforce in every single one of my professional projects. I have worked primarily with workflow issues and source control, so this is a product I know very well and I might be slightly biased towards it.

In the previous article, I explained why Git is not the most optimal source control solution for game development. This time, let’s examine why is Perforce so popular.

Continue reading →

Posted by Samuel Kahn in Source Control, Source Control Comparison
Git Source Control for game development

Git Source Control for game development

This is part of a series of posts on source control for game development. Read more in the Blog.

Git is probably the first result people stumble onto when researching source control for their game development project.

As evidenced by my activity on this very website, I am very interested in Git. I have used it extensively both professionally as well as for personal projects including game projects. I have come to love its beautiful design, and hate its limitations. Because of those, I created GitCentral to overcome Git’s shortcomings and create a better-suited source control workflow for game development.

This article is a good opportunity to examine the motivations behind creating GitCentral, and shed some light on why Git is both great, and difficult to use for game development.

Continue reading →

Posted by Samuel Kahn in Source Control, Source Control Comparison
What is the best Source Control for game development ?

What is the best Source Control for game development ?

Choosing the best Source Control for a game development project is a hot topic in the indie community. Many teams struggle with making the right choice, and the advice available online is often misleading. The answer is surprisingly not obvious, and there is no one size fits all solution.

Earlier this year I talked at the Nordic Game Conference about Source Control, and how to structure your team’s workflow, automation and continuous integration and deployment pipeline around it. You can download the slides here. As this is one of my areas of expertise, I wanted to go deeper into the subject and break down the options available in order for game development teams to make an educated choice about source control.

In this series, we will study the major options available to you, their various pros and cons, and highlight the reasons why you should choose one over another depending on your team size, budget, and makeup.

Continue reading →

Posted by Samuel Kahn in Source Control, Source Control Comparison
GitCentral 1.0 released: File Locking, UE 4.23 support and more

GitCentral 1.0 released: File Locking, UE 4.23 support and more

GitCentral 1.0 has been released on the Unreal Marketplace.
This release adds the highly anticipated File Locking feature, support for the newly released Unreal Engine 4.23, as well as minor improvements and bug fixes.

As of this release, GitCentral is considered stable and is no longer a Beta plugin. As always, if you encounter any issues, please contact me at support@kahncode.com.

Posted by Samuel Kahn in GitCentral
Choosing a Git hosting provider for game projects

Choosing a Git hosting provider for game projects

How to choose a Git hosting provider for game projects is a question that is often asked around. Game projects differ from the typical software project in size, team profile and requirements.

If you’re using GitCentral, you will most certainly need a remote repository to host your project. In this article we will go through some of the major Git hosting providers and compare them for this particular use case.

So what are the specific needs of a game project that make it special?

  • Confidentiality: In most cases, you don’t want your game’s source and assets to be available to everyone out there. Especially when your game is going to attract some attention from players. You will want to control the narrative, how to announce your IP or new features, and having access to the repository will let anyone know what you are doing. This is also a security issue: access to your source code could make it easier to cheat or to exploit your game.
  • Size: A game project is much larger than an average code project due to all the assets in binary form. For instance, all of Unreal’s uasset and umap files, but also work files from external tools such as Photoshop or Maya, which tend to be rather heavy. Git is notoriously bad at dealing with large files and its decentralized model requires full access to the entire history locally. This means your computer would have to store all binary files of the project, even those you don’t need, and enough data to rebuild any version of those files. Fortunately, there has been one major effort to solve this problem, Git-LFS. This is a mandatory feature for GitCentral, so we will only look at hosting with Git-LFS and we will be looking at how much data you can store and at what cost.
  • Project Management: Unlike open-source software projects, game projects often need centralized management tools. Several people in the team need to collaborate on features at the same time. Milestones are a collaborative effort towards a certain date or set of features, all of which needs to be tracked. Good project management tools are extremely important to a game project and we will review them.
  • Users: Most users of Git are programmers. Programmers are used to dealing with command line tools and less than ideal user experience. Game projects have many different kinds of users, such as Artists and Designers, who will easily get confused if the user experience is not great. We will look at the various tools offered by those hosting providers and evaluate ease of use and user experience.

We will compare the four major hosting providers that fulfill these criteria: GitHub, GitLab, BitBucket and Microsoft Azure DevOps. Continue reading →

Posted by Samuel Kahn in GitCentral, Source Control
Announcing GitCentral

Announcing GitCentral

I am finally ready to announce and release GitCentral.

GitCentral is a source control plugin for Unreal Engine that makes teamwork easy! Share your work in a few clicks, without ever leaving Unreal. It’s intuitive, fast and fun.

Most indie developers and small teams struggle with source control or don’t use it at all! GitCentral brings the source control workflow behind major game studios to teams of any size and budget. Never lose any work again, with full history of your project at your disposal, you can work confidently and roll back at any time.

I developed GitCentral during the course of a personal project with a team of remote collaborators. I am used to source control in the context of my professional projects, where we host our own Perforce servers. Unfortunately, without this expensive infrastructure, I realized there is no good solution for smaller teams out there to collaborate easily… until now!

GitCentral solves this problem for small teams using Unreal Engine. It implements a centralized workflow in which each asset can be versioned independently. Gone is the time where you had to use Dropbox, send assets over via email, or lose work when someone makes a mistake. Practice the same workflow major game studios use at a fraction of the cost.

As its name implies, GitCentral uses Git and Git-LFS as a backend. If you want to learn more, check out GitCentral’s features.

GitCentral was released on the Unreal Marketplace today. Check it out! This is a beta release, so there may be some issues left. I am looking forward to user feedback and will be available for support.

I hope you will have a great time using GitCentral!

 

 

Posted by Samuel Kahn in GitCentral, Source Control