Welcome to the first post in the series detailing my rewrite of Trans Neuronica, a logical game about connections, a lone AI and discovering the past and the future of humanity.
Originally written in ActionScript for Adobe AIR captive runtime, this series of blog posts will explain the process of building up the game ground-up in C# + MonoGame. Moreover I’ll try to also muse a bit about design choices, both code architecture and game design. All of this will feature a minimal amount of spoilers. Let’s start!
IDE choice – JetBrains Rider
I am a huge fan of JetBrains, a Czech based company who made in my opinion the best universal IDE, IntelliJ. If you think it sounds like advertising it’s because I’ve been a loyal and happy customer for some years now, though most of that time I used WebStorm.
So it’s not a huge surprise that the IDE I am going to use is one made by the same company, although in this case we’re talking about software that is still in the Early Access Program. It’s JetBrains Rider. Just remember it’s really early in development and a lot of features you’d think should be available out of the box are impossible to achieve even when hacking the configuration. The reason I go with is because I am intimately familiar with the workflow and keyboard shortcuts from IntelliJ which are the same in Rider. For a while I worked with Visual Studio but it’s just not the same, not even close.
Setting up the project
The following steps were discovered thanks to this forum post. The first thing I did was start Rider and create a new project:
Next I opened NuGet toolbox and installed Monogame for OpenGL:
The next thing I did was create two classes,
TransNeuronica.cs, both in the root directory of the project. Their contents are published in this gist, and they are stored inside a
src/ subdirectory. They are slightly modified versions of files found in this tutorial.
Running the project
The final thing is making sure Rider didn’t accidentally break something (note: during writing this article I modified
TransNeuronica.csproj, saved, undid the changes and that broke the project completely, made it impossible to build) by building the project:
And that’s it for the first post, the most basic stuff. Next time I’ll setup the basis for the framework I’ll use and build along the game as well as talk a bit about architecture I usually go with for my projects.