The tools I work with – The software

Last month, I covered the hardware I use to work on my ongoing projects. Even more important is the software itself. Quite a few of them have become critical to my workflow, and here's a tour of the main items.

Git

I explained working on three different computers. I'll often be editing the same project across multiple devices, and it's important that I keep my code up to date on each. How should I do that? Copy files back and forth? There's a huge risk of errors by accidentally overwriting more recent additions with older versions. Place everything on a USB key? Not bad, but if you lose it, you're toast. Been there, done that. (I found backups... eventually).

Enter Git. This software's main goal is version control. Basically, each change I do is logged separately, with an explanation message and the date. This creates a list of all modifications ever done, going back to the beginning of a project. More importantly, these changes can be pushed to a central server, then pulled on multiple computers. In my case, I use the same dedicated hardware that runs the game servers as a storage location. This way, as long as I've got an Internet connection, I can send or obtain my latest changes with a single click! I've also started putting some of my code on GitHub, which is something I'm planning to revisit in a later post.

OneDrive

Besides code, there are other things I want to store: reference images, graphic libraries, documentation, draft files and more. In this case, I use Microsoft's OneDrive to store it all. Similar to Google Drive, Dropbox and other services, OneDrive lets you put your files in a special folder that gets stored on remote servers. You can then access them from other computers at will, and any changes are automatically kept in sync. I had my doubts at first on how well it could handle potential conflicts, or accidentally overwrite content, but it's proven over time to be very sturdy. As a bonus, all the files can also be accessed in any web browser in case I want to reference something in a pinch.

OneNote

I'll frequently mention taking a note of something, say something about checking through my notes, or refer to the mighty TODO list. That's something that I keep in OneNote. It's a note taking application that lets you organize everything in Notebooks, then in Sections, then furthermore in Pages. That way, you can break down and organize your thoughts without them becoming a huge, messy pile. I used to keep everything in separate, plain text files, but this adds a key feature to the mix: the ability to access my notes everywhere and keep them in sync. This means I can do what I want on any computer at home, on my phone, or even from work when I get a sudden idea.

Visual Studio Code

Last but not least, my favorite code editor: Visual Studio Code. This project is still young as it was first released only a bit over 4 years ago. It shares its name with his bigger brother Visual Studio, but that's where the relation ends as it's handled by another team on a different engine. There are two key points that made me adopt it:

1- Its speed: the thing is FAST, no matter what computer you try to run it on. The always responsive interface makes it a pleasure to work on.

2- The range of plugins available. While it can do quite nicely on its own, it can be extended to support a lot of programming languages and features, from the obvious to the more obscure.

The Git usage I mentioned as my first point? Built-in and ready to go, so I can compare my changes right as I make them.

While I use multiple other tools, these really form the backbone of my current flow. All have proven to work well, are modern and pretty much frustration free, to the point where I see my current setup as the best I've ever had.

#tools #software

– Doctacosa