# Plan for a small RPG engine

This topic is 4216 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Alright, Me and my friend have started to plan for an RPG engine, and I was writing it out in Microsoft Word. I was hoping to get some feedback on wether or not I'm going about this right. Here is what I have so far.
Bold Underline- Class	Underline- Class Call
Italic Underline- Enum	Italic- Enum Call
Regular- Function or Variable	Asterisk- Preprocessor or Constant

Sprite
Picture
Level Flag*

Tile
Sprite
Walkable
X position
Y position

Map
Array of Tiles
Width
Height

Item Effect
Heal 20-1, Heal 50-1, Heal 100-1, Heal 500-1, Heal All-1, Restore 5 Mana-1, Restore 10 Mana-1, Restore 20 Mana-1, Restore 50 Mana-1, Restore All Mana

Item
Item Effect
Name
Quantity

Character
Name
Total Hit Points
Current Hit Points
Total Mana
Current Mana
Level
Sprite
Strength
Dexterity
Intelligence
Speed
Agility
Vector of Items
X Position
Y Position

Hero
Character
Attack
Defend
Item
Experience
Magic

Monster
Character
Attack
Defend
Item
Magic

Map Person
Sprite
X Position
Y Position
Name

Name
Do Action

Width
Height
Text

Dialog
Width
Height
Name Of Talker
Text

View
Width
Height
X Position On Map
Y Position On Map

Screen
Dialog
Map
View

Map Level Flag*
Lower
Middle
Upper
Object
Person
Character


If I am missing anything in my engine, could everybody point it out? Thanks alot!

##### Share on other sites
Your missing quite a bit when it comes to techincal/architecture aspects. I don't really have time to elaborate, but I'd just like to add my two cents.

##### Share on other sites
Yes, I realize that, This is just the base. I will add Technical Classes and Functions as I start to expand on this. By this I mean: for instance a bitmap loader, Movement and drawing functions, and the rest of the sort.

##### Share on other sites
It looks like you have all the variables defined, which is all well and good, but a lot of that is just the fluff that makes up the actual game mechanics, and not the game engine mechanics.

You need functions for blitting sprites to the screen, printing the screen, killing dead sprites, etc... etc...

On another side note however... Your Hero/Monster "subclasses" I'm going to guess they are, could both logically be derived from the generic "Character" class, rather than containing a "Character" object within their own seperate class since it would seem the only things that are different between the two is an experience variable for the player "Hero".

Also, perhaps you have good reason but, your hero and monster classes should not have item containers since the character class already contains a vector of "items" and that could get really confusing. But you don't have enough defined to really say for sure, because without the logic structure, all you have is a word document.

My two cents,

Vopisk

##### Share on other sites
I notice that I didn't have a way of notating functions from variables.
The "Item" object under Hero and Monster is a function.
Another thing is that the reason Hero and Monster are seperate is because of their differences on the outside, you will see the Hero on the screen, but not the monster, the hero will have experience but not the monster, the Hero will move, but not the monster.

##### Share on other sites
Was the lack of notation for functions/variables due to MS Word stripping? Otherwise in the future, I'd recommend just simply putting two parantheses () at the end of a variable name to signify a function, which would have cleared up some of the confusion there.

I have to wonder though, why won't your monsters be moving? For that matter, how will you have monsters at all if you do not display them to the screen? These are all things that can be wrapped up nicely into the parent Character class and then overloaded for specific handling in child classes like hero and monster. Of course, that's my take on it and you should do what you feel is right for your game.

I could see item as being a function that acts using one of the items stored in the vector of items, but once again this is something that could be contained within the greater character class if it is a shared, common attribute since fundamentally there is no difference between a player character and a non-player character as far as game mechanics go, only the handling of such objects via either player input or game AI. Another note, you might want to consider a different structure if players will be able to access items randomly within the vector, because popping stuff out of the middle of a vector is entirely too much of a pain in my opinion.

More of my non-cents,

Vopisk