MMORPG Kit Full Release Day is Here!
by Dreamer · 05/12/2006 (11:15 pm) · 38 comments
Hello everyone,
The MMORPG Enhancement Kit for the Torque Game Engine is now complete and "released"*.
As promised the site MyDreamRPG.com will undergo a massive facelift today, and return with new and exciting content, more of which will be added daily. (MMORPG Tutorials will be the first thing to go up)
With this release we are also shifting focus, and once again making changes to be more about the community, of course with a big emphasis on MMORPG Development, but anyone developing any kind of game will be just as welcome there.
Also as an aside, I was glad to finally have a talk with some folks at GarageGames, and during the course of discussion it was determined that the way we were preparing to release would have violated the terms of the indie license. I was unaware of that fact previously, so in an effort to rectify that situation, I have taken a few steps.
The kit will be in 2 parts (don't worry you do get both) the first part is the code, which we were most concerned would violate the eula.
To this end we have decided to distribute the downloadable code as a diff against a clean pull from TGE CVS HEAD.
This patch file alone is 1.8MB and comprises 95,730 lines of code changes. I highly recommend you get friendly with your favorite patching program. Also included in the zip are quite a few files which do not come in a stock build of TGE, and as such are included in the codepack.
The second part of the kit is what we are lovingly calling the "artball", this bit is optional and will be updated regularly by various artists who wish to show case their up coming content packs, furthermore any source art included in the artball will be yours to use and modify however you wish but you may not repackage and/or resell the source art outside of the context of making a game.
In otherwords, no derivative content kits without the artists prior consent.
Finally I would like to announce that we will feature "Show Case" zones, which show case the skills of various artists in the community, more on this feature to come...
*You must be a licensed owner of the GarageGames Torque Game Engine (Indie or Commercial), prior to being allowed to purchase.
You may verify that by posting in this thead
The MMORPG Enhancement Kit for the Torque Game Engine is now complete and "released"*.
As promised the site MyDreamRPG.com will undergo a massive facelift today, and return with new and exciting content, more of which will be added daily. (MMORPG Tutorials will be the first thing to go up)
With this release we are also shifting focus, and once again making changes to be more about the community, of course with a big emphasis on MMORPG Development, but anyone developing any kind of game will be just as welcome there.
Also as an aside, I was glad to finally have a talk with some folks at GarageGames, and during the course of discussion it was determined that the way we were preparing to release would have violated the terms of the indie license. I was unaware of that fact previously, so in an effort to rectify that situation, I have taken a few steps.
The kit will be in 2 parts (don't worry you do get both) the first part is the code, which we were most concerned would violate the eula.
To this end we have decided to distribute the downloadable code as a diff against a clean pull from TGE CVS HEAD.
This patch file alone is 1.8MB and comprises 95,730 lines of code changes. I highly recommend you get friendly with your favorite patching program. Also included in the zip are quite a few files which do not come in a stock build of TGE, and as such are included in the codepack.
The second part of the kit is what we are lovingly calling the "artball", this bit is optional and will be updated regularly by various artists who wish to show case their up coming content packs, furthermore any source art included in the artball will be yours to use and modify however you wish but you may not repackage and/or resell the source art outside of the context of making a game.
In otherwords, no derivative content kits without the artists prior consent.
Finally I would like to announce that we will feature "Show Case" zones, which show case the skills of various artists in the community, more on this feature to come...
*You must be a licensed owner of the GarageGames Torque Game Engine (Indie or Commercial), prior to being allowed to purchase.
You may verify that by posting in this thead
#2
05/13/2006 (1:05 am)
#3
Edit: Oh yeah and your website isnt working ATM
05/13/2006 (1:54 am)
OMG When the TLK version comes out im buying :)Edit: Oh yeah and your website isnt working ATM
#4
05/13/2006 (1:59 am)
Screenshots, Demo, working website? ;)
#5
05/13/2006 (2:42 am)
Sounds great! :)
#6
05/13/2006 (4:37 am)
Web site is currently under construction. We should have it up and running soon. It will be more freindly than the previous site and we will post pleanty of screen shots from inside the new kit.
#7
05/13/2006 (6:10 am)
Wouldn't it be easier to sell this through GG then to check if they own TGE/TSE?
#8
This is a wild ride!
A few more things in the feature list, of interest to developers. I'm adding these in because to me, one of the incredible things about the kit is to see a feature in the game and say "hey, I want to use that in my game!'. Then go look and see how we did it....
*Custom billboard target indicators (instead of green circle on ground, can use custom .PNGs for targetting)
*Client-side raycasting/targetting which takes loads off server
*Mountable and ridable Horses (was implied above)
*Names over creatures change colors based on level, the colors for the level differences are defined in the guiControl
*Excellent php login/account creation/player creation system. It takes a huge load off the server and avoids several limitations of the client/server model when passing large volumes of data. Another fine example of how this kit was developed to try and keep a load off the server.
*Zoning uses a form of server load balancing
*Draggable GUI windows with custom borders. The GUI in the kit are awesome examples of the various types of GUI that take forever to figure out by yourself
*Databased RPG conversation system
*Easily extendable stores
*Monsters will fight eachother!
*The rules system is for the most part contained in a single file, so everything that has to do with combat, levelling, etc can be changed in one place, completely customizing the feel of the game. This means you can switch from a D20 type system to a skill-based system, to any pen-and-paper role playing system, by modifying only some scripts... no engine changes should be necessary
*For the hardcore FPSers out there, this kit also is easily modifiable to use the FPS cursor instead of a free selecting cursor. You can do your MMOFPS with this kit too.
*More later :)
Dreamer did a dif from CVS head, there are 95,000 modified lines of code that come with the kit. So, as a developer, do you want to write these lines, or do you want a little jump start on your game development?
05/13/2006 (6:21 am)
*Tears in Eyes*This is a wild ride!
A few more things in the feature list, of interest to developers. I'm adding these in because to me, one of the incredible things about the kit is to see a feature in the game and say "hey, I want to use that in my game!'. Then go look and see how we did it....
*Custom billboard target indicators (instead of green circle on ground, can use custom .PNGs for targetting)
*Client-side raycasting/targetting which takes loads off server
*Mountable and ridable Horses (was implied above)
*Names over creatures change colors based on level, the colors for the level differences are defined in the guiControl
*Excellent php login/account creation/player creation system. It takes a huge load off the server and avoids several limitations of the client/server model when passing large volumes of data. Another fine example of how this kit was developed to try and keep a load off the server.
*Zoning uses a form of server load balancing
*Draggable GUI windows with custom borders. The GUI in the kit are awesome examples of the various types of GUI that take forever to figure out by yourself
*Databased RPG conversation system
*Easily extendable stores
*Monsters will fight eachother!
*The rules system is for the most part contained in a single file, so everything that has to do with combat, levelling, etc can be changed in one place, completely customizing the feel of the game. This means you can switch from a D20 type system to a skill-based system, to any pen-and-paper role playing system, by modifying only some scripts... no engine changes should be necessary
*For the hardcore FPSers out there, this kit also is easily modifiable to use the FPS cursor instead of a free selecting cursor. You can do your MMOFPS with this kit too.
*More later :)
Dreamer did a dif from CVS head, there are 95,000 modified lines of code that come with the kit. So, as a developer, do you want to write these lines, or do you want a little jump start on your game development?
#9
Can you please eleborate on this? Will be the second server serving the same zone as soon as the first one is full? In that case, how do they communicate?
Meanwhile, Congratulations! :)
05/13/2006 (8:02 am)
*Zoning uses a form of server load balancingCan you please eleborate on this? Will be the second server serving the same zone as soon as the first one is full? In that case, how do they communicate?
Meanwhile, Congratulations! :)
#10
Even though I am just the webmaster/zone designer/other odd jobs guy heheh, I can explain the load balancing to you.
The way it works (I believe) is once one zone becomes "overloaded" or starts nearing the player limit, an empty zone server will be shut down and started back up as a second server for that overloaded zone.
Most games don't allow this, what this does is pretty much take the roof off of your player cap, as a "server" in general. Most would simply cap the total players that can be logged into the game at once. However, you have a choice and can do it either way.
As for the website sorry on the slight delay, there was a small hold up and it should be golden later today!
I wish you all the best of luck with the kit, enjoy!
05/13/2006 (9:29 am)
Hello,Even though I am just the webmaster/zone designer/other odd jobs guy heheh, I can explain the load balancing to you.
The way it works (I believe) is once one zone becomes "overloaded" or starts nearing the player limit, an empty zone server will be shut down and started back up as a second server for that overloaded zone.
Most games don't allow this, what this does is pretty much take the roof off of your player cap, as a "server" in general. Most would simply cap the total players that can be logged into the game at once. However, you have a choice and can do it either way.
As for the website sorry on the slight delay, there was a small hold up and it should be golden later today!
I wish you all the best of luck with the kit, enjoy!
#11
"I can explain the load balancing to you."
Man I know exactly how the load balancing works, it's my daily job ;)
But thank you for your effort, anyway! ;)
How was it emplemented in MMORPG kit? MPI? TSpaces?
"started back up as a second server for that overloaded zone"
Does it split the players between them, and player from server1_zone1 can see an item from server2_zone1 ?
05/13/2006 (11:10 am)
@Cameron:"I can explain the load balancing to you."
Man I know exactly how the load balancing works, it's my daily job ;)
But thank you for your effort, anyway! ;)
How was it emplemented in MMORPG kit? MPI? TSpaces?
"started back up as a second server for that overloaded zone"
Does it split the players between them, and player from server1_zone1 can see an item from server2_zone1 ?
#12
05/13/2006 (11:33 am)
No Alex, it's simpler than that. It looks at a table in a shared space which sees how many players are on a zone, and if its above a tolerance, the fresh server will load up the mission the busy server is running. They won't share objects etc between them, at least not yet!
#13
Just trying to help where I can, haha, I'm glad you know though. I don't come around here much so I don't ever know who to explain what type of answers to, but anyway have a great day!
05/13/2006 (11:37 am)
Oh, no problem.Just trying to help where I can, haha, I'm glad you know though. I don't come around here much so I don't ever know who to explain what type of answers to, but anyway have a great day!
#14
@Dave: I see now. yeah, it will be a bit confusing for players, but it's a start, anyway.
05/13/2006 (12:03 pm)
@Cameron: Thanks, man, that's really kind of you!@Dave: I see now. yeah, it will be a bit confusing for players, but it's a start, anyway.
#15
My idea is that NO server should sit there idle ever unless there are no players anywhere.
So to that end I did exactly what I said I would do months ago.
As players enter and leave a zone server the zone server says to Genie (our master control interface), Hey I'm running zone x and I have playercount players.
If that number drops to 0 it then says to Genie hey what zone needs loaded up next or are any players currently awaiting a zone to come online?
If a player has been in a holding pattern awaiting a zone to load, genie then responds to the server "You need to load up zone y"
The server then loads the zone and announces itself in IRC, the lobby will be looking for this announcement and when recieved will pop a message asking the player if they are ready to enter the zone, at which time the player is sent to the freshly loaded server.
In otherwords the point is, you can squeeze alot more milage out of the single active zone per server principle than was previously possible.
Zoneing is even simpler than that BTW. There are 2 ways to zone, but they both rely on a trigger event. The default is on leave mission area.
In the mission file you define the zones North South East and West, the other way is to create a standard trigger and call the same function on the client just hand it a different Zone Name.
As the player leaves the mission area, the server takes his present cooridnates and bearing and determines which zone the player is trying to go to. It then tells the client You are trying to go to zone y, the client recieves the message and issues a disconnect then asks genie what is the most full zone running zone y. Genie will then reply with either an IP addy or tell the player to go to the lobby and wait.
If the client recieves an IP addy a connection is established the players old coordinates are flipped and the player enters the zone and continues playing as normal. Another thing one could do, the code is there to do it, but I don't have it implemented, is that if no server is currently running zone y you could have the player go local and in effect be the server, but with a very limited number of possible connections. I have not implemented local instancing due to security concerns, but the code is present to do it.
Regards,
Dreamer
p.s. Short and sweet of it, we are trying to keep the servers as full as possible, not empty ;)
05/13/2006 (12:10 pm)
Ok umm guys you have my implementation of load balancing WAY off.My idea is that NO server should sit there idle ever unless there are no players anywhere.
So to that end I did exactly what I said I would do months ago.
As players enter and leave a zone server the zone server says to Genie (our master control interface), Hey I'm running zone x and I have playercount players.
If that number drops to 0 it then says to Genie hey what zone needs loaded up next or are any players currently awaiting a zone to come online?
If a player has been in a holding pattern awaiting a zone to load, genie then responds to the server "You need to load up zone y"
The server then loads the zone and announces itself in IRC, the lobby will be looking for this announcement and when recieved will pop a message asking the player if they are ready to enter the zone, at which time the player is sent to the freshly loaded server.
In otherwords the point is, you can squeeze alot more milage out of the single active zone per server principle than was previously possible.
Zoneing is even simpler than that BTW. There are 2 ways to zone, but they both rely on a trigger event. The default is on leave mission area.
In the mission file you define the zones North South East and West, the other way is to create a standard trigger and call the same function on the client just hand it a different Zone Name.
As the player leaves the mission area, the server takes his present cooridnates and bearing and determines which zone the player is trying to go to. It then tells the client You are trying to go to zone y, the client recieves the message and issues a disconnect then asks genie what is the most full zone running zone y. Genie will then reply with either an IP addy or tell the player to go to the lobby and wait.
If the client recieves an IP addy a connection is established the players old coordinates are flipped and the player enters the zone and continues playing as normal. Another thing one could do, the code is there to do it, but I don't have it implemented, is that if no server is currently running zone y you could have the player go local and in effect be the server, but with a very limited number of possible connections. I have not implemented local instancing due to security concerns, but the code is present to do it.
Regards,
Dreamer
p.s. Short and sweet of it, we are trying to keep the servers as full as possible, not empty ;)
#16
Hmmm, actually your description of the balancing sounds similar to one above
IMHO, local instancing is a not a good idea...
As for zoning, I would implement smart message passing, so players dont need to know about zone hassle in the lobby.
To keep servers busy, just run several zones on the same physical server, then swap then if it's getting overloaded...
05/13/2006 (12:48 pm)
@Dreamer:Hmmm, actually your description of the balancing sounds similar to one above
IMHO, local instancing is a not a good idea...
As for zoning, I would implement smart message passing, so players dont need to know about zone hassle in the lobby.
To keep servers busy, just run several zones on the same physical server, then swap then if it's getting overloaded...
#17
Take guild wars as one example, they have "districts". Many other games have "channels" and even though it seems like it's all being hosted on one channel the truth is that infact the zones are usually split up, and channel/district selectors will just navigate to that zone's specific server for that channel.
And, you can run more than one zone on a physical server pc.
(Some of this maybe you knew but this might help some others understand it better.)
05/13/2006 (1:44 pm)
Best and easiest way to think about it, is that many other MMO's do the same thing, just not how you would think of it.Take guild wars as one example, they have "districts". Many other games have "channels" and even though it seems like it's all being hosted on one channel the truth is that infact the zones are usually split up, and channel/district selectors will just navigate to that zone's specific server for that channel.
And, you can run more than one zone on a physical server pc.
(Some of this maybe you knew but this might help some others understand it better.)
#18
Been waiting all day and now I'm getting anxious. hehe
05/13/2006 (5:16 pm)
Any time estimate on this?Been waiting all day and now I'm getting anxious. hehe
#19
* General rules included in a single file for easy changes.
* Difficulty based skills system, using random numbers adjusted for Statistic and Skill levels, in comparison to Difficulty Ratings generated by the creator and adjusted by circumstance.
* System includes Success, Failure, Critical Success and Critical Failure ratings and is easily customizeable to include character races and classes.
* Template monster and item system, where constructs have a Base Difficulty which can then be adjusted by the calling event on the following formula: Difficulty Rating = Base Difficulty + Skill Adjustment + Stat Adjustment + Special
* Easy Experience Point generation where characters get xp for every action based on a combination of Difficulty and Luck.
* Luck generation procedures, allowing Luck to be accounted for in every aspect of the game. Lucky characters gain extra Experience and mitigate possible disasters.
* Non-level based experience system where Skills and Statistics are raised via Experience Point expenditure. System is easily changed to allow for standard level-based configurations.
* Customizeable character generation, including six standard Statistics (Strength, Stamina, Agility, Wisdom, Social and Luck) Characters start with a d20 base for every Statistic.
* Easy advancement of Statistics through Magic or Experience expenditure. Statistics can be "bought up" using xp on the following formula: xpNeededForNextStatLevel = (CurrentStat * 10)
* Skill advancement through Experience expenditure based on the formula: xpNeeedForNextSkillLevel = (CurrentStat)
* Inclusion of Social skills and Reaction. NPCs will rate prices up or down according to character Social, and faction adjustment based on Social affects aggression.
* Secondary Derivative Statistics such as Body Type, Movement, Run, Leap, Carry, Lift, Hit Points, Mana, Reaction, Charm and Saving Throw, which round out the character and give a firm backbone for specific skills and actions.
* Customizable Skills datablock containing information on skill name, type, statistic used/affected, etc.
* Integrated Magic system using the same Difficulty Rating formula and number generation as normal Skills.
* Magic system includes Casting Speed, Opposing Rolls, Saving Throws, custom magic effects and damage versus non-damage spells. System can be extended to include any number and type of spells.
* Skills datablock can be used to insert an indefinite number of custom skills, trade skills, or magic spells.
* Simplified Combat system using Opposing Initiative, To-Hit Rating/Evasion, Base and Adjusted Difficulty, Damage, Saving Throws and adjustments for Skill levels.
* Combat rules are included in rules datablock with adjusted calls from individual event or monster functions.
* Damage adjustment system including Cover and Armor.
This system will be very easy to add to and to modify. It will also come with a copy of the rules system (non-code format) with examples and explanations of how things work and why. This way it will be very easy for a creator to plan any additions or adjustments to the system before having to dig into the code and figure out how everything is related.
05/13/2006 (5:19 pm)
Here's some information about the Rules System, since Dave so kindly brought it up.* General rules included in a single file for easy changes.
* Difficulty based skills system, using random numbers adjusted for Statistic and Skill levels, in comparison to Difficulty Ratings generated by the creator and adjusted by circumstance.
* System includes Success, Failure, Critical Success and Critical Failure ratings and is easily customizeable to include character races and classes.
* Template monster and item system, where constructs have a Base Difficulty which can then be adjusted by the calling event on the following formula: Difficulty Rating = Base Difficulty + Skill Adjustment + Stat Adjustment + Special
* Easy Experience Point generation where characters get xp for every action based on a combination of Difficulty and Luck.
* Luck generation procedures, allowing Luck to be accounted for in every aspect of the game. Lucky characters gain extra Experience and mitigate possible disasters.
* Non-level based experience system where Skills and Statistics are raised via Experience Point expenditure. System is easily changed to allow for standard level-based configurations.
* Customizeable character generation, including six standard Statistics (Strength, Stamina, Agility, Wisdom, Social and Luck) Characters start with a d20 base for every Statistic.
* Easy advancement of Statistics through Magic or Experience expenditure. Statistics can be "bought up" using xp on the following formula: xpNeededForNextStatLevel = (CurrentStat * 10)
* Skill advancement through Experience expenditure based on the formula: xpNeeedForNextSkillLevel = (CurrentStat)
* Inclusion of Social skills and Reaction. NPCs will rate prices up or down according to character Social, and faction adjustment based on Social affects aggression.
* Secondary Derivative Statistics such as Body Type, Movement, Run, Leap, Carry, Lift, Hit Points, Mana, Reaction, Charm and Saving Throw, which round out the character and give a firm backbone for specific skills and actions.
* Customizable Skills datablock containing information on skill name, type, statistic used/affected, etc.
* Integrated Magic system using the same Difficulty Rating formula and number generation as normal Skills.
* Magic system includes Casting Speed, Opposing Rolls, Saving Throws, custom magic effects and damage versus non-damage spells. System can be extended to include any number and type of spells.
* Skills datablock can be used to insert an indefinite number of custom skills, trade skills, or magic spells.
* Simplified Combat system using Opposing Initiative, To-Hit Rating/Evasion, Base and Adjusted Difficulty, Damage, Saving Throws and adjustments for Skill levels.
* Combat rules are included in rules datablock with adjusted calls from individual event or monster functions.
* Damage adjustment system including Cover and Armor.
This system will be very easy to add to and to modify. It will also come with a copy of the rules system (non-code format) with examples and explanations of how things work and why. This way it will be very easy for a creator to plan any additions or adjustments to the system before having to dig into the code and figure out how everything is related.
#20
I used to have an account but when I went to sign in I couldnt. Did you do a purge of inactive users and usernames Dreamer?
If so, how would I be able to get access again?
05/13/2006 (8:33 pm)
OMG I WANT!!!I used to have an account but when I went to sign in I couldnt. Did you do a purge of inactive users and usernames Dreamer?
If so, how would I be able to get access again?

Torque Owner BrokeAss Games
BrokeAss Games
* Multiple Playable Races (Including Human (Male & Female))
* New engine animations including Swim, Crouch, Crawl & Melee
* Full SQLite and/or ODBC database integration
* Login and Character Creation System
* Persistent Character Stats, Skills, Levels and Experience
* Multiple Character Support
* Drag'n'Drop Items & Inventory System
* Melee & Ranged Combat
* Extensible Magic and Spell system (Teleports, DD, DOT, AOE, etc)
* Click'n'Pick target selection
* Multiple modes of interaction with target
* Tradeskills (with crafting and harvesting)
* Dynamic Scriptable Questing
* Fully network aware day/night cycles
* Fully network aware weather
* Dynamically Generated Fractal Skies
* Database driven Loot Drops
* NPCs supporting quest, dialog and vendor abilities
* Many AI support functions (Attack, Run Away, Call for Help, etc)
* Database driven Mob Spawns
* Party Grouping
* Guilds
* IRC Based Lobby
* Full chat system w/ commands and emotes (/tell /say /sit /invite)
* Mountable pets
* Completely revamped AI (with fine grained control of awareness)
* Multiple AI types including pathed, patrolling, wandering and dungeon
* Factions system
* The Emerald Plains which shows the largest size zone the engine can handle
* Avalah which showcases a starting city
* Live camera view Map GUI that tracks the player
* Drag'n'Drop Hotbar can add items, spells, etc and access them via custom hotkeys
* Dynamic changeable player skins (Allows for things like armor)
* 2 absolutely massive dungeons
* RPGHUD displays color and extra information for the selected target
* Enhanced Zoning (takes advantage of limited hardware)
More to be listed soon...