Thursday, November 16, 2017

Roguelike Development Environment

So I've decided to make a Roguelike RPG.  After having an idea, the next thing is to start with the development of basic systems and build from there.  Choosing an environment took me through several different engines/languages.

First, I tried Python.  Python is an easy language to learn and has great looking syntax.  And it has a great IDE made by JetBrains called PyCharm.  If you're going to develop in Python, I highly recommend PyCharm.  It even has a free Community Edition.  It is, hands-down, the best IDE for Python available today.

PyCharm from JetBrains
I followed along with the revised Roguelike Tutorial based on the one from RogueBasin.  I made a basic roguelike in ASCII using a component system, and could definitely see the benefits of doing so.  However, I wanted to use a more developed engine and my preferred language of C#.

C# has been my favorite language for years, ever since I became a software developer.  In my career, I use it every day and am very happy with it.  I wanted to be able to use C# while making my game, so I checked out MonoGame.  MonoGame is the continuation of Microsoft's XNA game engine from back in the day.  I was able to get the basics going (player movement, dungeon generation, enemies with combat), but then I decided that I didn't really like some of the styles of MonoGame's API. 

This pushed me towards Unity.  I was completely unfamiliar with how to use Unity, so I downloaded the latest version and began following online tutorials to try to get a hang of it.  At first, it seemed pretty daunting, but, like anything else, it gets easier with practice.  As a script editor, I first tried Visual Studio (which I am very familiar with because of work).  It was great but felt like overkill.  I then tried Visual Studio Code, the great lightweight, cross-platform code editor from Microsoft.  It was great but felt a little too light.  

Unity3D
Then I discovered Rider from Jetbrains.  It was just right.  With much of Resharper's functionality built-in, it was the perfect balance between.  It even has lots of Unity functionality right out of the box (just select Unity during the setup).

Rider from JetBrains
So now, with Unity and Rider, I feel I have the perfect development environment to make my Roguelike RPG.

Remember, these are just my own personal feelings.  You may disagree, and that's fine.  Everyone should just go with what they are most comfortable with and makes them happy.