Hit there i am fairly new in game development. Only made some small 2d space shooter. However me and my friends decided to make a simple 2d rpg style game engine/game written in Java.
First of all we decided it will be Tile based (without animation at least for now) and we plan on making it isometric in the future since it is just a matter of output.
We wanted it to be simple but powerful. So i got an idea and it goes something like this.
We make a game engine that doesn't have a lot of gameplay coded. It has understanding of what and item is it has an inventory but not the actual items.
It is divided in packages:
4: Memory menagment
The idea is to have a lot of classes in central command. With in a way has access to everything witch usually means the memory. A map will simply be a txt file that has a roguelike based ascii map and a script for all object's on it if any. For example Wall is hardcoded but a potion of health is not.
The scripting system wont be complex. It only has to be able to store variables, use if, else, while statements and most importantly to communicate with central command.
This is the idea.
Have and object that represents the loaded script. place that object inside and Item class. class Item has a use/passive method.
A health potion will be an item with a corresponding image and script that will be invoked when the use() method is called.
The actual script will be something like this:
" player = Command.getCurrentPlayer(); player.setHealth(player.getHealth() + 20); "
I know that adding scripting ability to your engine is probably the hardest task. But it really simplifies other aspects of your engine. Because it is not needed to code all the stuff right in.
Is this the way to go or not?
How hard is it really? The interpreter sounds like its BIG but not complex. (remember this is a very SIMPLE scripting language)
Is this idea any good or should we stick with hardcoding everything?
PS I am sorry if this is too technical and should be put in game programming section. But it is a DESIGN question in a way.
Also here is a link of what we done so far (we just started so we used an existing open source tileset) Engine Development.bmp3MB83 downloads
This should probably be in the programming forum. Game design is for gameplay stuff rather than code design.
However, it's important to have a good idea of your game design before you start programming it. Planning the features you need will allow you to validate if your architecture is correct. Also try to keep it simple. If you try to build it to allow everything, you will never get anything done. Since you're new to game development, I wouldn't try to make things the "correct" way, but rather the "working" way. Mistakes will be made so don't stress over it and just get it working.
It's a very bad idea. I recommend doing it the opposite way, focus only on gameplay and ignore the engine and everything else as much as possible.
Also, sentences like "decided to make a simple 2d rpg" and "scripting system" have no right to appear in the same topic Simple implies you want to make it simple which means no things like scripting systems.
"or should we stick with hardcoding everything?" - yes, you definitely should stick to hardcoding everything, especially since it is your first RPG and you want it simple.
In the end the only thing that matters is the player's fun. Players won't see how clever it was coded, only if it was playable or not. Therefore, gameplay (and art assets) is the critical thing you should focus all your efforts on.
As a programmer I would also add that we, programmers, always tend to make clever engines and leave gameplay "for later" which makes beautifully coded but completely unplayable games As a rule of thumb, if you are a programmer and wonder if you should add engine thing next or something else next, the proper choice is the "something else"
Working on an Emperor focused, no micromanagement, asymmetric, 4X, space empire builder: