Untitled

posted in Beals Software
Published August 07, 2006
Advertisement
I'd like to thank my step-family for totally screwing my weekend up. I hadn't been sleeping right so friday night I was up until 7am (on saturday) and I was expecting to be able to sleep until 2 or 3. But, my step-sister decided that she'd just drop in at 11, knowing that I would still be sleeping, so that I could put a "couple" of books on ebay for her. Turns out, a couple is about 30 books. So, I spent most of yesterday feeling like shit, either sleeping or getting sick.

This lack of sleep thing has also taken its toll on my body (by lack of sleep I mean about 15 hours over the span of 10 days.) Not only did I get sick from a small amount of grease, but I got a random nosebleed. I haven't had a nosebleed in over 10 years.
Script file
I decided to share the source for my script file reader (see last entry.) Some people may cringe over it (just for the fact that I use hungarian notation), but atleast I took out my label and goto.

std::ostream& operator<<(std::ostream& Stream, const std::string& String){	Stream<	return Stream;}class ScriptValue{public:	std::string m_Variable;	std::string m_Value;};std::string Script;int nIndex = 0;int nStart = 0;while(nIndex < Script.size()){	ScriptClass NewClass;	nStart = nIndex;	while(nIndex < Script.size() && Script[nIndex] != '{' && Script[nIndex] != '}')		++nIndex;	std::string ClassName = Script.substr(nStart, nIndex - nStart);	if(ClassName == "" || ClassName == "\n")		break;	NewClass.SetBaseClass(ClassName);	++nIndex; // skip the {	while(nIndex < Script.size() && Script[nIndex] != '}')	{		ScriptValue TempValue;		while(nIndex < Script.size() && Script[nIndex] != ':')		{			if(Script[nIndex] != ' ' && Script[nIndex] != '\t' && Script[nIndex] != '\n')				TempValue.m_Variable += Script[nIndex];			++nIndex;		}		++nIndex; // skip the :		while(nIndex < Script.size() && Script[nIndex] != ';')		{			bool bInQuotes = false;			if(Script[nIndex] == '\"')				bInQuotes = !bInQuotes;			if(Script[nIndex] != '\t' && Script[nIndex] != '\n')			{				if(bInQuotes)					TempValue.m_Value += Script[nIndex];				else if(!bInQuotes && Script[nIndex] != ' ')					TempValue.m_Value += Script[nIndex];			}			++nIndex;		}		++nIndex; // skip the ;		if(TempValue.m_Variable != "}" && TempValue.m_Value != "}")			NewClass.SetValue(TempValue);	}	std::map::iterator Itor = m_Classes.find(NewClass.GetBaseClass());	if(Itor == m_Classes.end())		m_Classes[ClassName] = NewClass;	if(Script[nIndex] == '}')		++nIndex;}


This isn't my actual source, but the source that I used as a basis.
4E5 Entry - Derek's Detective Agency
My new 4E5 entry is coming along pretty good. The name I came up with is pretty lame, but whatever.

It's going to be a mouse oriented, 4-direction, console-style RPG. Meaning random battles and such. You won't be fighting however, your trusty side-kick will be. I'm not sure if I want to do a robot as the sidekick, or some sort of monster thing. But, the cool part will be the battles. You won't see the side-kick at any point other than in battles and in the status screen. So, I'll be able to put more detail into the side-kick.

Anyway, I figured I'd go over some of my design details and such.

Character Creation
Although the character you'll be moving around and using to talk throughout the game is premade, you'll be creating the sidekick. If it's a robot you'll get to build him, if it's a creature you'll get to choose it from a shelter like dealie.

It'll be pretty much like a regular RPG character creation, other than I may change the name of somethings. You'll get to choose a name, race, class, and starting skills depending on the class.

Skill system
I haven't figured out much about the skill system yet, since it'll be totally different depending on which side-kick thing I go with. The only thing that is for certain is that skills will change/grow stronger as you use them.

Map system
The map is going to be tile-based, 32x32 tiles. I've decided to cut out auto-fringing for this, just to keep things simple code-wise (auto-fringing requires some wierd ass batching and shaders.) Maps will be a single layer (possibly 2 if I find a need for it) with a single set of animated tiles (for water.) Terrain is the only thing that will be contained in the tile-map. Everything else will be an entity.

Even though I'm doing 4-direction movement, I'm still going to use the mouse to move and interact in the game. So, I'll be using A* pathfinding for moving around.

There will be two world-maps, one where you move from town to town and such, and one where you can move from region to region (via transportation like a bus or plane or something.) At first most of the large world map will be inaccessible, but hopefully I'll be able to add more regions and towns.

Item system
Your sidekick will have different types of items that you can equip to it as well as acessory like things that will boost skills and such while they're wearing them.

There aren't going to be any weapons in the game. There will be some defense items, but more like the accessory things I mentioned above. I'm going to focus mainly on the skill system.

There will be a small item creation system. Potions and such will be the most of it to start with. But, I will be setting it up via a scripting system, so I should be able to add stuff afterwards.

At the moment I don't plan on limiting the inventory in anyway. Since you'll be moving Derek but not developing him, it'd be hard to allow you to increase what you can carry and such (unless I did a backpack system and you got a bigger backpack. But I don't like that.)

Storyline
You're probably thinking "Derek's Detective Agency? How the hell could you turn that into a sexy, super cool, RPG?" The only thing I'm going to give away now is that it's not a regular detective agency.

That's all I've got at the moment. Comments/suggestions?
Previous Entry new script file
Next Entry New sprites
0 likes 2 comments

Comments

Tallitus
Sounds interesting, few questions:

So will Derek level up long the way or is only the side kick your main focus of leveling?

Why only 4 directions or is it to limit the amount of art to draw? :)

Top-down map?

Real-time or turn based battles? How do the skills fit in? If there are no weapons are they the damage dealers?
August 07, 2006 04:48 PM
Programmer16
Quote:Original post by Tallitus
Sounds interesting, few questions:

So will Derek level up long the way or is only the side kick your main focus of leveling?

Why only 4 directions or is it to limit the amount of art to draw? :)

Top-down map?

Real-time or turn based battles? How do the skills fit in? If there are no weapons are they the damage dealers?


Derek won't level up, but I'm planning on making him a big influence in battle via emotion (e.g. you get hit a lot, he gets mad, you gets stronger for a short period of time.)

You're partially right on the 4 directions, but it's also the style of art that I'm doing. 8-direction movement doesn't really go with the old-school look, IMHO. But, since you'll be moving via the mouse, diagonal sprites would definitely be cool, so I've been trying to make some[grin].

It'll be top down, similar to the perspective that pokemon has.

Same goes for the battle system, it'll be pretty similar to pokemon, but maybe from the side instead of behind. The skills are going to be similar to pokemon as well, except they'll level up and get stronger as you use them.

Thanks for the reply!
August 07, 2006 05:59 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Advertisement
Advertisement