Deciding between languages/engines for beginner roguelike development

Started by
4 comments, last by RDCL170 6 years, 2 months ago

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!

Advertisement

Maybe https://godotengine.org/? It uses python-like programming language and is very good for tilebased games. Definitely strong player on the engines market and it's free for commercial use.

https://www.unrealengine.com/en-US/blog

 

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.


Python:

Spoiler

 



#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.

C#:

Spoiler

 



// 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.

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!

This topic is closed to new replies.

Advertisement