Game Development Community

World changing exp system idea!!

by J Raven · in Torque 3D Professional · 02/09/2012 (4:34 am) · 10 replies

I've had an idea for and exp system that when you level up instead of changing the player it changes things in the world instead!!!

so I'm thinking along these lines right now

1) pickup exp from killed enemies
2) increment an exp bar on the hud
3) when exp bar is full level up and change something in the world
4) reset exp bar and start all over again

rough outline is I've got a very barren looking base level which will be the main area for the game and the area the player will use to get to other levels of the game now what i want to do is have that area open up new paths as the game progresses (im fine with this by the way) and then as the player collects exp have things like grass begin to appear and trees animals etc.

Now the tragic problem is Ive have no idea how to start implementing the exp idea!!! I was thinking of setting it up very much like the health system in terms of gui controls and pickup items but I'm not really sure was looking for a little bit of help or a good direction to head in

cheers guys

J.

#1
02/09/2012 (8:50 am)
Sounds sort of like how the Oblivion series works. Basically as you level all the other things level up with you so the game gets harder as you go.

Sounds like what you are talking about is more about how the world is shaped based on your players level.

Could script the loading of assets triggered by the level changes. there would be some load lag i'd imagine but you could offset that by some sort of distraction.

Or just have actual levels unlock as the player levels up, but if you want a big open world that wouldn't necessarily work for you.

let us know what you come up with.
#2
02/09/2012 (9:40 am)
guiProgressBar If I remember right, is probably a good place to start for your EXP bar things (2-4). As for #1, just add a handle function to onDeath to perform some checks and properly award experience.
#3
02/10/2012 (2:51 am)
@Brandon yeah sort of like the way oblivion does it except im thinking that say an area that is empty has trees appear once youve leveled up on you mission and come back to your base area.

Maybe having multiple versions of the base level .mis file that load depending on the players level each with a different set of assets.

@Robert thanks thats given me a good idea of where to start.
#4
02/15/2012 (2:06 am)
I had an idea a while back to create a character that starts out as a mini bad guy. As he progresses by: trapping maidens in towers, putting beauties under sleeping spells, creating alliances with witches, etc. The actual physical appearance of the dude gets bigger and more defined according to their evil acts. The world would be getting legends built by player action. Then when the character achieves some level of evildom the player "wins" the game. Then...

The player starts over as a "good" guy this time. They are charged with fixing all the things their previous self broke! Of course things would be mixed up to account for time passed, legend versus history, and other tweaks to make it harder to figure out how to solve each problem. Then the character would "win" the game. Then...

It would start all over again and each time it would cycle to greater and greater havok and if done right evil would blur with good due to the measures of what it takes to "fix" each problem. In the end the player would find out that they were a "construct" "designed" to balance good and evil in the world. The "flaw" to this philosophy would be that there is no balance. As evil is the absence of good.

So I am all for world changing events as part of a story line. If done well it makes for some cool things to happen in game play! Perhaps a database approach to missions would help in this situation. It will give you finer control of changes rather than prebuilt levels.
#5
02/20/2012 (1:18 am)
@Frank oddly enough I hadnt even thought of using a database I had however decided that the prebuilt level idea wasnt one I want to go for it will work but Im not sure thats the approach I really want to take.

Right now Im looking at using Sim Groups. At the start of the game the simgroups will be set to off/hidden so you cant see the trees for example then when the player reaches the required exp the simgroup will be set to on/visible.

Hopefully this will give me exactly what I want but if not I will be looking into using a database. Any ideas for the best ways of doing a database in torque? Ive only really used SQL to make phone books in C# a few years back at uni!! so rusty isnt the word!!!
#6
02/20/2012 (2:01 am)
Hmmm, if the simgroups are loaded at level load then it will slow down the load and consume more memory. If you choose to load an object before level load, no matter how you store the info database or not, it will load faster.

Unless I am not understanding simgroups that is...
#7
03/05/2012 (2:15 am)
MMMMMMM dont want that really!!!

I hate when games take forever to load!!!
#8
03/05/2012 (10:56 am)
Raven@ You could do it all dynamically ... have characters actions trigger changes in any/all objects in their surroundings.

One way could be to use multicasting ... and then when the player "levels up" in theory, you kick off changes to the multicast groups -- updating all the in-game objects with a new model, attributes, etc.
www.garagegames.com/community/blogs/view/21453

IMHO -- it would not make any sense to "pre-build" everything, if your intent is for them to choose what gets "upgraded" as they level up, ie. what their level up influences ... but if there is no player choice involved, THEN you could have it all done before hand.
#9
03/25/2012 (5:16 am)
@Jeff yeah im liking that idea!! will have a good look into it over the next few days thanks for that

im not planning for the player to have a choice in whats changed as such!! so i could do the prebuild idea but i would like to totaly avoid if if possable
#10
04/04/2012 (2:37 pm)
What you will need to do is spawn things depending on the player's level when they enter the area. Basically when you enter the 'base area' you can either call it during the loading sequence or through triggers, the area is populated based on what you have. If you add things to cleanup, yo will need to spawn every time the player enters. Otherwise, you can do like they do in Bethesda's engine and actually modify the .mis file with every change. Either way, you will need to have the models pre-scripted with their coordinates laid out.