Advertisement

Plan for a small RPG engine

Started by July 04, 2006 01:18 AM
4 comments, last by Vopisk 18 years, 7 months ago
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

Menu Option
	Name
	Do Action

Menu
	Width
	Height
	Vector of Menu Options
	Text

Dialog
	Width
	Height
	Name Of Talker
	Text

View
	Width
	Height
	X Position On Map
	Y Position On Map

Screen
	Menu
	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!
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.
Advertisement
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.
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
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.
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

This topic is closed to new replies.

Advertisement