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
C++ Tricks: Fast RTTI and Dynamic Cast

C++ Tricks: Fast RTTI and Dynamic Cast

C++ Tricks is a series of posts on core libraries for game engines and language experiments shared as the Kahncode Core Libraries.

As introduced in the first post of these series, I will share the first piece of KCL: an implementation of RTTI and Dynamic Cast. The code can be found on GitHub.

If you don’t know what dynamic casting is, then I suggest you read some online resources before diving into this article.

Continue reading →

Posted by Samuel Kahn in C++, KCL
C++ Tricks: Efficient core libraries for game engines

C++ Tricks: Efficient core libraries for game engines

C++ Tricks is a series of posts on core libraries for game engines and language experiments shared as the Kahncode Core Libraries.

For a long time now, I have been meaning to write about core libraries for game engines, and share my own take on them.

I’ve always been fascinated by those tools that make your code so much more expressive and elegant. Over the course of my side projects, but also as fun little language experiments, I have compiled a collection of those core idioms of my own. Each of them emulates a feature of the standard library or adds some expressive feature to your toolbox.

Today I’d like to kick off a series of articles introducing the Kahncode Core Libraries. In each post I will focus on one feature and shed some light on the implementation details. I will also be progressively releasing the code as I go through this series. The repository can be found on GitHub and is open for comments and contributions.

I hope you will enjoy, learn, correct and teach me something, and perhaps make use of this in one of your projects, game or not.

Continue reading →

Posted by Samuel Kahn in C++, KCL
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
Nordic Game 2019 is over

Nordic Game 2019 is over

Nordic Game 2019 is over and what a great year it was!

This is my favorite event of the year, and I was very excited to attend again after so many years. I am very honored to have been offered to speak about GitCentral and improving quality of life and workflow for game developers out there.

Quality of life, iteration time, and general workflow improvements are aspects of your game development you should constantly strive to improve. I’m looking forward to talking more about the subject on this blog and at other events, as well as interacting with talented game studios and teams.

Several people asked to see my slides afterwards, so you can download them here. The 45 minute format was a bit too short for what I wanted to cover, but we made it! For those of you that still have questions, please contact me directly and I will be happy to help.

I strongly recommend every game developer to attend the next edition. There is so much talent on display, so many amazing people to meet, in a very intimate and relaxed setting.

Goodbye Malmö, until next time!

 

Posted by Samuel Kahn in Personal
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
Load more