Game Development Community

dev|Pro Game Development Curriculum

T3D - RPG Engine - Battle System - Release Details

by Kevin Mitchell · 07/08/2012 (11:20 pm) · 16 comments

i26.photobucket.com/albums/c118/shoiko/rpgengine.png


So after loosing about 50% of everything I finally got everything back and some completely re-coded for simplicity. This is a list of all changes that will be part of the release of the engine thus far.

Features -- Details



Database Driven:


The main part of an RPG is the housing of mass data to be used for the game. In the Engine I use SQLite 3 as the database housing. The database will be created as am empty shell. There will be a screma of the database added to the release files.


RPG Editor Elements:


The RPG Editor will feature the following Tabs:


Events:


Used to create NPC and Monster AI objects. Not All Events will be supported on the inital release.

i26.photobucket.com/albums/c118/shoiko/NPY_MOB.png
i26.photobucket.com/albums/c118/shoiko/Events.png

Classes:


Used to make a foundation status setting that will be addapted by a hero to be used as the base of the heros calculated level growth.

i26.photobucket.com/albums/c118/shoiko/Class.png

Hero / Heroin Editor



Used to Create and modify the base start values of a hero/heroin. The only feature that will not be operation is the 3D View of your character on load and the Animation Views

i26.photobucket.com/albums/c118/shoiko/Hero.png

Item Editor:


Used to create items for Healing/Dammaging/Learning. Learning Spells, Specials, and Summons will not be in the inital release.

i26.photobucket.com/albums/c118/shoiko/ItemEditor.png

Weapons Editor:


Here you can create weapons and customize them for your player. Note: Depending on time this may not be in the inital release.

i26.photobucket.com/albums/c118/shoiko/WeaponEditor.png

Armor Editor:



Here you can create armor for various slots. Slots are configuable from the database.

i26.photobucket.com/albums/c118/shoiko/ArmorEditor.png

Spell Editor:


This will create a like from a spell in the database with details of the power for the spell to the spells create in the system directory. Since there are tons of way to do spells I will only have one spell in the release.

i26.photobucket.com/albums/c118/shoiko/SpellEditor.png

Specials Editor:



Here we create the dammage attribute for specials. Specials in the case of the engine will be attached to a massive AOE spell. Not exactly a special that most would think of but the sky is the limit.

i26.photobucket.com/albums/c118/shoiko/SpecialEditor.png

Summon Editor:


Here you can create a summon creature that you can summon in battle. How the summon will react is based on the Battle system attached to the RPG Engine. The one I will be releaseing will be a ATB Attive Battle System.

i26.photobucket.com/albums/c118/shoiko/SummonEditor.png

Monster Editor:



In the monster editor you can create monsters to spawn to the field, defeat and be awarded with treats. A monster can be equipped with a special that can be triggered by various conditions. The 3D View window will not be in operational in the release.

i26.photobucket.com/albums/c118/shoiko/MonsterEditor.png

Monster Groups Editor:



This is only used for the CBS - Classic Battle System. I decided to not release this engine add on as many requested a ATB - Active Battle System.

i26.photobucket.com/albums/c118/shoiko/MonsterGroups.png

Maps:



This is only used for the CBS to control map selection for auto encounters.

i26.photobucket.com/albums/c118/shoiko/MapList.png

NPC Generator:


This is something that will be the last to be worked on but will make me excited if i can get it working again. This will allow you to create random NPC characters premapped and preconfigured for a rig. The idea behind this is rapid character population for maps.
The characters used will be from my old character pack. I had this working until a few months ago when 1.2 came out. After that then it stopped working.

i26.photobucket.com/albums/c118/shoiko/NPCGenerator.png

Engine Side Changes:




Base Engine Changes:


The changes made to the base engine is very limited these were only needed to accomidate for the FPS code that affected the RPG elements that I needed to work.

Camera: Currently the camera colides with the water as if it is a solid substance. I had to remove the water object from the mask for this to work.
Triggers: Initally the trigger max was expanded to acdcomedate for the melee system triggers needed but was changed after finding a better way to handle them. May be reverted back.

The remaining changes are pretty much a drop of the 2 new folders for the RPG Engine and the sqlite3 folder. I tried to make this a simple way to intergrate these features into the engine without affecting the inital engine design.

The RPGPlayer is a addaptation of the player class. One major thing changed in this call was to make the update move in to a modular system of function calls. This will make it alot easier to create custom changes to the player system. Current player is a long list of if statements and comments. With this everything should be easier to read.

As seen below this is alot easier to read.

void RPGPlayer::RPG_MoveTick(const Move* move){
	RPG_contactNormal.set(0,0,0);
	RPG_jumpSurface = false;
	RPG_runSurface = false;
	RPG_desiredPose = mPose;
	delta.move = *move;
	RPG_moveType=MV_GROUND;
   
	checkSwimmingState();

	updateOrientationOfCam(move);
	
	applyRotationChanges();
	
	if(!inAttactingState){
		applyGroundMovementSpeed(move);

		if (!mSwimming)
		{
			applyGravity();
			calculateGroundContact();
			applySteepIncline();
		}

		//modifyGravity();

		if (RPG_runSurface && !mSwimming) {
			applyAccelerationBasedOnMovement(move);
		}
		else if (!mSwimming && mDataBlock->airControl > 0.0f)
		{
			applyAccelerationBasedOnFalling();
		}
		else if (mSwimming)
		{
			applyAccelerationBasedOnSwiming(move,false);
		}else{
			mContactTimer++; 
		}
		if (!mSwimming)
		{
			applyJumpCheck(move);
			applyJettingCheck(move);
			applyPZoneAcceleration();
		}
		//Overrides Swim to Diving if triggered
		applyRPGSinkAndSwimAlgorithm(move);
	
		applyRPG360Movement(move);
	}else{
		applyRPG360Movement(move);
	}
	applyAllCalulatedAcceleration();
	applyWindResistance();
	applyBuoyancy();
	applyDrag();
	clampSmallVelocity();
	detectFallingStatus();
	dismountVehicalCallbackCheck(move);
	enterWaterCheck();
	applyPoseBasedOnAction(move);
	setPose( RPG_desiredPose );
	
    if(inAttactingState){
		mVelocity = Point3F::Zero;
	}

}


Engine Added files:


i26.photobucket.com/albums/c118/shoiko/EngineFiles.png

Custom Tweaks:


I have added several custom changes to the new RPGPlayer class to help the class operate as needed these include the following:

  1. Adding onAnimationTrigger support to the RPGPlayer class to allow triggers to be triggered by the player and not just static shapes.
  2. Added a bipCOM control to the player to enhance my old 360 movement resource. This makes it easier to control the characters orintation with out caring weither there is animation on bip01 node.
  3. Added a tweak to control the placing offset needed for the players feet to make the player no longer floatable above the terrain.
  4. Added the ability to swim on the water surface as well as dive and surface.
  5. Added Lock on feature to the player class.


Script Structure:



I have tried to limit the changes to the main system to add the RPG Engine lib folders to a empty project and get right into using the features.

The structures seen below gives an idea of the structures and what you will get on the script level.

i26.photobucket.com/albums/c118/shoiko/FolderStructure1.png
i26.photobucket.com/albums/c118/shoiko/FolderStructure2.png

Demo Island:



I initally wanted to use the Island shown in a previous post as the island that will be populated with the assets in the release as a tech demo of the features but I have been inspired by the Fancy App and will now be recreating this island for the demo.
Come on this island is sexy!

i26.photobucket.com/albums/c118/shoiko/photo.jpg

Free Assets:



The assets that will be included in the system will be the following:

  1. Hell Doll
  2. Hell Doll Master
  3. Generated NPCS
  4. All RPG Character Pack assets.
  5. Free Royalty Music found on a free music site. There will be information in the release disclosing the site information as the orgin of the files.
  6. My Free Custom Music The 12CatBlack Splash Theme and the Game over Music, Maybe more.


This is all of the information I could think of about the release if there are any questions please leave them below.

Please remember that nothing I have in the engine is a "Must be done this way" the main reason for this is to give those that don't know scripting or do not know where to start a stepping stone into their dreams. The second reason is people everywhere saying that T3D could never be used for making RPGs. To them I laugh!


Pricing:


I've thought about it for a while and I will have the product on sale at first for $150 for about 1 to 2 weeks and then it up for its final price.


For now here is a video of my latest testing with the ATB Battle system. One thing I added that I really like to enhance the system is when inside the "Quick Bar Menu" time is slowed but not stopped to force the player to think quick about item usage and live battly tatic changes.

Demo of the Battle System:



Notes about the video:

Bugs:



  1. There are some glitches shows that will be fixed in the release. Mainly getting stuck at the end or a button mashing combo.
  2. And the spell Cosmic Storm gets stuck if you kill the monster mid casting.

Battle Info



  1. The Monsters are placed to the stage by event markers. Each monster is a different event object.
  2. When using the Quick Bar the time is slowed down to keep the battle going but allow the player to get a quick healing item off before dying.
  3. The Monsters are all B level monster in every class attribute. Starting stats were all 5's.
  4. The boss is a A level monster in every class attribute except for Attack. Its attack was set to SS.
  5. The monsters special triggers at 50% life. The boss Triggers every 30 seconds.
  6. While attacking all movement other than character rotation has been stopped, allowing the player to perform attacks in a 360 degree radius.
  7. The on screen tracker tracks monsters and NPCs as different colors Current radius is 90 game meters.

My Youtube Channel: Click Here
My FaceBook Channel: Click Here

Thanks,
Kevin Mitchell

#1
07/09/2012 (12:18 am)
Very nice,
like what i see.

Kevin,

couple of questions:
ETA release date,
multiplayer support?
will this work for t3d 1.2?

price wise sounds good, altho I would not go above the actual t3d engine itself, unless you are selling a brand new game engine.
lots of people get turned off if an addon or engine extension or kit is more expensive than the actual game core engine in this case T3D.
IMHO.

keep up the good work.
#2
07/09/2012 (6:05 am)
@Kevin: Where do you make your DB Calls from ... Server or Client?
#3
07/09/2012 (11:05 am)
I agree with pilotcap232 and have the same questions aswell.

Also IMO it needs a couple of features to be a true RPG engine and it has too many features to be easily integrated into a current solution.

Maybe it would be an idea to pack it with those few extra features that would make it more of an engine.

E.g. action bars, NPC dialogs, a questing system, map/minimap and stuff like that.
Not because your current product isn't nice, cuz' it is but it seems like a serie of these small changes would just push it up over the bar to make it more of an engine and less of an addon.
#4
07/09/2012 (11:16 am)
@pilotcap232

That's a good point I will take this in to consideration the price will more likely change.

@Quinton
All DB calls are from the server.

@Lukas
There will be NPC Dialog, and question systems are possible through the events tab. As for mini maps I'm still trying to find a quick easy solution. My goal is to have a tool for game development and not complete feature development.

#5
07/09/2012 (11:27 am)
Kindda OT: You could make a minimap system by taking the x and y coordinate of the player and use it to calculate the players position on a map.
#6
07/09/2012 (12:05 pm)
Aplogies for the off-topic but ... keep still while I run you down in my Grammar Tank.

Heroine
3.bp.blogspot.com/_bGnvNX_QHAU/R8s8XTmIHRI/AAAAAAAAANs/B8CD7iZAHZ8/s320/_heroina1_angelinajolie2.jpg
Heroin
alexis.koukouvagia.com/wp-content/uploads/2012/03/heroin-300x199.jpg
-----------

Also sexy island is sexy.
#7
07/09/2012 (2:41 pm)
Regarding price: I'm a bit dubious this would be worth $150; so far I'm not seeing that much value. $50 perhaps? By comparison, T3D isn't much more than $150 and provides a ton of value.

Perhaps you could give us a bullet list of features showing exactly what we would get for $150...
#8
07/09/2012 (6:05 pm)
It looks great. I have been waiting for your kit. Please let me know when you release it. I'll buy it right away for the price you are asking. I have been continuing learning Game Development on Unity3D and learning Blender while I have been patiently waiting for your kit and for Dot Net Torque from Winterleaf as well.

Will there be a melee system in the first release?

Great Job.

Robert
#9
07/09/2012 (6:51 pm)
OH~~~~
I am in china....can't go in to youtube and facebook...
I think that is good job....
hope....
#10
07/09/2012 (7:34 pm)
At Lukas:
I want to make a self generating mini-map. Mapping the players position is easy. But I want people to make maps and not have to worry about creating maps to match their maps to.

At Steve I knew I could rely on you for that

At Kevin what you see here is but an iceberg of what will be in the release. but as stated above the price will be revised. If you want me to prove the price I will blow you away sir. I don't do anything that is half par.

At Robert Yes that's the reason I scrapped the classic battle system. My last two months were filled with nothing but getting the melee logic working completely. There's still some glitches in it for ending combos where I'm stuck in attacking state and not being allowed to attack. The current state is in the video at the bottom of the blog.
#11
07/09/2012 (10:49 pm)
Bloody English, always thinking they can correct us on how to speak English...ummm...wait...never mind. ;)

@Steve, haha, great visual.
#12
07/10/2012 (4:49 am)
@Kevin hmm, all terrains have an associated diffuse map you could use AFAIK.
It should be called: yourlevel_basetex.dds but you would need to cut out parts of it where the water intersects the terrain. Hope it helps!

Edit: Btw the island is incredibly awesome! Very nice!
#13
07/10/2012 (8:00 am)
Quote:
I want to make a self generating mini-map. Mapping the players position is easy. But I want people to make maps and not have to worry about creating maps to match their maps to.

That sounds interesting.
#14
07/28/2012 (12:13 am)
That island really is sexy. I mean CryTek sexy. Good work Kevin. Any chance of you sharing the water settings? That water makes me want to dive in. Maybe then when I get back to the resort I can grab a mango daiquiri and chill.

Can I also point out to you lot a favourite detail of mine in that pic: Wet sand on the shore. Just needs seaweed (unless some local kids get paid to clean up the beaches?).
#15
07/28/2012 (4:55 am)
That picture is in deed a picture of the real island. I am currently in the process of making something close to it with out running into copy write laws and crap... but my main focus right now is finishing all the desired features. The island is just something on the side. I think i have video of what I have so far but I'm not doing any extra until all my features are complete.

It's nothing to droll over but its not done yet so blah...


#16
07/28/2012 (5:12 am)
lmao I was looking at that island thinking "that looks so real! How did he get it to look so damn real?" I can be dim like that. You've done a fine job of recreating it in Torque. And I love the little kick at the end of the vid. Showoff. :)