Continuing with our behind the scenes series, I wanted to talk to you today about some of the tooling that we use as a team to get stuff done.
This is one of the first things we (and I really mean Paul here) got up and running. GitHub is where we keep the large majority of our code. We do this for two main reasons:
Maybe you're curious about the Dart programming language and you're a fan of Glitch so this kind of project could really show you what's possible in a subject that you're passionate about. Or maybe you want to take our code and try setting it up on your own server and tweaking it, adding a feature, etc. We love when users come to us with bugs and feature suggestions. And if you want to fix a bug or add a feature yourself, we'd be happy to look it over and add it back into our code base.
Without a form of source control, it would be way too difficult to successfully navigate the waters of a team trying to build a project together. You might edit a line of code one way while someone else edits it another. But without something like Git, you have no way of tracking those changes and you could end up saving right over top of your co-workers work. That's no good. GitHub gives us a nice, web-based interface to many of the features of Git and it's worked well for us.
WebStorm is a fantastic IDE from the folks at JetBrains. It makes the actual task of coding and debugging so much easier than a text editor. I use it for things like:
Even nicer is that JetBrains makes WebStorm freely available to teams who are working on an open source project. This is great because it helps us minimize the amount of personal expense we need to handle just to be able to produce this game.
Many software projects need to go through some kind of automated testing, compilation and a deployment process before they are ready for the consumer to use. CoU is no different. What makes Codeship so nice is that it integrates with GitHub and as soon as we push changes to the code there, Codeship starts cranking away doing whatever we tell it to.
For example, each time we push a change to the client code, Codeship downloads the code from GitHub, compiles the Dart files into one large JavaScript file and then uploads all of the code and images to our site so that the next time you try to play the game, you get to play with the new features. Of course we could do this by hand, but then each developer needs to know all of the steps and take time to do it. By writing a script on Codeship, we can be sure that it's done the same way each time and everything is automatic.
I hope this was an interesting look at some of the tools that we use to build CoU. If you're interested in learning more about the process, leave a comment below and I can go into more details about how it works.