RPG Game Help

Hey Guys!

So a few mates and I are working on a game project, nothing fancy, mainly story driven, as we have one single coder (me), one art guy, and three other guys on story. The point of this is that I, the single coder, only know a little bit of C# (I plan to learn more, of course, and that is what the game will be made in), and I have a few questions.

First off, Game Engines. So we will be using Unity, however we may change if need be. I have found that Unity (I am very new to all this by the way, it is only a project) has a sort of engine already, with physics and controls. First of, are we able to use this (Unity 5 Personal) free of charge, and in the game? We plan on maybe green lighting it or something, may charge, but I doubt it. The fact of the matter is, I don't really like reading law docs, and whatnot, so if someone knew, it would help me out. Also, is this the only game engine I will need? Will it have everything I need, and will I be able to say for example, remap the control keys, or add new ones?

Next is the code itself. So the game dev part I have a few things I would really like, and any help would be greatly appreciated. The first and most obvious is it is an RPG. So this means I will need inventory, items, quests, classes, etc.
I would like to clarify I am not asking for code, nor tutorials on exactly what I want word for word, nor someone to help code, (However if you are interested for whatever reason in anyway we might sort something out). What I want is to know how to do it, for example to do one part of it, instead of giving me a line of code, I would like "You need a something then something". I am doing this way because like I said, it is a project, and I want to learn how to do things.
In terms of Items, I would like to have a thing where every single Item, from the end boss' sword to the ale barrel to have their own "ID number", where I can look them up, maybe in a MySQL database, and see their stats, and whatnot. This will also apply to the creatures, and I can go into them, and see what their abilities are, where they spawn (Maybe also in a map database thing) and what things can drop from them. I think i'll add an RNG to that. Anyone have any ideas?
The questing system doesn't have to be fancy, however I would like to have an If Else statement where say, if this boss or this map has not been killed or found, it is not available.
Classes will be the hard part, however. We were THINKING (remember, I haven't even started coding yet, so a lot of things can be changed and I know this one will have a lot of tweaks to it) that we can have a system called "Idols". So basically at a set point ( Probs the tutorial) the player can choose from one of 6 idols, and that idol will give them unique powers based on the god the idol is of, such as War or whatnot. Also, during levels / whatever in hidden places there will be an alter with a boss and if you kill that boss, it gives you an unique upgrade for your power. This is what will effect stats and whatnot. I guess when you think about it, in terms of what I assume the code would be like, it would be quite similar to regular classes.
We also need a basic inventory, nothing special here, I assume this will be most affected by the item system.

There are probably some more things, but I don't want to rant, I am already asking a crap load of help from you guys.

For those who want to know what kind of game it will be, it will be a 2D Sidescroller Platformer RPG thing. You will see it side on, with depth and whatnot such as in Ori and the Blind Forest or Trine, etc.

Thanks so much to anyone and everyone who may or may not help in this, and to anyone who does, thank you so very much, it is greatly appreciated.

Honestly, 99% of those things you may want to do yourself... There could be some nice examples in the unity store, but I think you will learn much more by doing this yourself...
Create your own data base with items...
Create your own loot generation system.
Create your own inventory and equipment system.
You will fuck it up 73 billion times, but once you got it right - you will never do it wrong ever again.
And C# is good language for that. I used Game Maker 8,0 a few years ago to do a 2D RPG with invent,and equipment and battles and leveling and classes and all that jazz... 6 months, then I did it again for 3 weeks...
PS: There are millions of ways you can do any of those things...
For example, you can do huge data base for every single item in the game. And when a monster dies, generate random number and get the item with that number as a loot. With some constrains for the loot. The other way is Diablo2 way. Have a database for only the unique items. Everything else is completely random generated.
The inventory is basically 2 data bases. One for the items In the inventory, the other for the equipped items. And you just move items from one list to another list.
The thing us, there is no right or wrong way to do this. Find the way, that will be easier and most understandable for you and experiment with it.

1 Like

You could always make it in Love 2D which is completely free to use for pretty much anything you want to use it for

It's language is Lua

https://love2d.org/

Also I hope you like variables, because you're going to need a ton of them

Also be sure to make everything a function, make functions print other functions to accomplish basic tasks, you may need to call upon something again and that way you don't have to move it into a function.

1 Like

Would the item database have to be separate, or must it be in the code? Because I would like to probs use something like MySQL. thanks, mate

yeah thanks, you guys have been very helpful, but I think ima go stick to Unity, as of right now, thanks!

It depends...
For trouble shooting purposes you may actually even want it in a stupid text file... I mean balancing and stuff...
What I probably should have said by now is: I am not familiar with SQL what so freaking ever. I don't know the functionality, I have no idea.
This is why I told you there is no wrong way. I would make my DB in a text file, cause it's easier for me. If you will be more familiar with SQL - go for it. But I would say, it's better to have it separately, so you can make changes outside of the game itself.
Edit: you may want to check out multithreading. What I have seen as comments is that Unity don't support multithreading by default. And there will be 16 cores 32 threads cpu next year from amd and 10 core 20 threads cpu from Intel next year...