Jump to content
  • Advertisement

Deciding between languages/engines for beginner roguelike development

Recommended Posts

I want to dive into learning a particular language or engine for the development of a tilebased "roguelite" rpg. I'm hung up between learning Python or Unity. I understand Unity uses c# and seems to have a good number of tutorials but I've also found some great stuff for Python. Was hoping to get some input on what would be a better language for a beginner... thanks!

Share this post

Link to post
Share on other sites


Python if you want to work your way up, Unity and C# if you want to learn by playing around. Unreal is fantastic, however very hard for beginners.

Remember your not set with a engine for life, the skills you learn in one engine will help you adapt to a new one. Also remember that the chances are you will never finish your first game, so be ready to fail.


C# is almost the same on the surface as python. In other words, if you don't actually plan on being a programmer both will be easy to learn.

C# will take longer as it has more rules, however the extra rules also mean more tools and less mistakes.




#This is python

class Enemy:
  def __init__(self, InHealth, InMana): #In python this is our constructor
    HP = InHealth
    MP = InMana

  def GetHP(self):
    return self.HP
  def DamageEnemy(self,InDamage):
    self.HP -= InDamage

#We then use it like this
Wolf = Enemy(100,10) #This makes a wolf with 100HP and 10MP

Print(Wolf.GetHP()) #Prints 100
Print(Wolf.MP) #Prints 10

Wolf.DamageEnemy(10)#(100 -10)
Print(Wolf.HP)#Prints 90




In Python you don't have to declare what a value is, the = sign defines it.




// This is C#

public class Enemy{

  int HP;
  public int MP;// Public allows us to call the value from outside.
   public Enemy(int InHealth, int InMana)
   {//In C# this is the constructor
     HP = InHealth;
     MP = InMana;
   public int GetEnemyHP()
     return HP;
   public int DamageEnemy(int InDamage)
     HP -= InDamage;
     return HP;


// To use it we do this:

Enemy Wolf = New Enemy(100,10); //A worlf with 100Hp and 10Mp was made

print(Wolf.GetHP());//prints 100
print(Wolf.MP);//Prints 10

Wolf.DamageEnemy(10);// (100 -10)
print(Wolf.GetHP());//prints 90




Mostly you will notice that Python is shorter, you don't have to declare the variables and all variables are public.

Edited by Scouting Ninja

Share this post

Link to post
Share on other sites

I appreciate the thoughtful and detailed replies. I think I will start out with some tutorials and excercises in python and possibly diverge from there. Thank you!

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!