The important thing to establish initially is where to draw the line between what the framework will handle and what the user will be required to program. My goal is to supply a minimalistic framework that will allow the user to create and play an entire game (plot) from beginning to end without having to do any real programming. To play a game from beginning to end, the user will need to be able to do the following things:
- Show cut-scenes
- Move around in the world
- Interact with other characters and objects
- Acquire items
- Engage in combat
Just because the player has to be able to do these things in order to play through the game, doesn’t mean it has to be fun. For example, a minimalistic battle could simply be a situation where the enemy spontaneously dies as soon as he approaches the protagonist. Such a game would be trivial to beat because the protagonist could never die. This would not make the game very fun. It would be reduced to a simple walk-through. But that’s the motivation for the student: make your game fun. Combat systems are unique from game to game. So implement your own unique combat system to incorporate whatever you want: different types of attacks, magic spells, blocking, dodging, etc.
Similarly for items: the user will probably need to acquire certain items as part of the plot in order to complete the game (e.g. you have to bring the magic hammer to the blacksmith so that he can reforge the sword of light which you need to defeat the dark lord). Some items will be discovered in the world, some will appear after you defeat an enemy, some will have to be purchased. Usually items have some sort of effect on the player. The most obvious are things such as weapons and armor. Usually these will increase your attack or defense attributes. But outside of the acquisition of the item and its ability to influence the progression of the plot, the framework will not determine the effects that items have on a player.
This is what I mean by a minimalistic framework.