Project 137

A forum to show of the stuff you did for your server.

Moderators: osRose dev team, ospRose dev team, osiRose dev team, Moderators

Project 137

Postby PurpleYouko on Mon Mar 14, 2016 5:25 pm

So I've decided to use this thread basically as a blog to let everyone know what's going on in my own little project using Rose Malaysia evo source with a heavily modified osrose server that is basically a hybrid of rev 81 (droprev) (just prior to DR2 and my own KTRose pre-evo source, all compiled in Visual Studio 2010 because it's just better than codeblocks :lol:

This project has been ongoing but pretty slowly for a couple of years but has been going in full swing since about last November.

The first stuff i did, WAAAAAY back was to remove all trace of packet encryption because it's really completely pointless and it was causing all kinds of problems.
Next I decided to take a leaf out of Pre-Evo and make the client load files from regular directories in preference to loading from VFS.
I was a little TOO successful in this. Somewhere along the line I broke VFS loading for a specific yet undetermined file type in VFS so right now I need to run my client with the entire VFS extracted. TBH I can't be bothered to go back and figure out which file type won't load from VFS at this stage so I'm putting it off as long as possible ;)

First thing I did after this was to make the decision that the client will no longer be allowed to make any calculations about move speed, HP, MP or really stats of any sort so i started digging.
So far I have managed to take most of them out of the client completely. HP, MP, Attack Power, Defense and best of all, MOVE SPEED are all completely controlled in the server. I even added a set of 'Cheat Mode' variables in the server to act as over-rides when the stats are calculated.
So right now a GM character can use the command '/setstat movespeed [speed]' to make his move speed just about anything. Same goes for AP. I haven't specifically coded any others as GM commands yet.
To get all this to work properly I had to actually add a few completely new packet structures to both the client and server as well as making some changes to a few existing ones such as adding HP, MP, MAXHP and MAXMP to the 0x07ec packet.
the result of all this is that...
I no longer have jumping HP and MP
I can move at any speed without crashing the server (via hack controls) when I run through a map portal
CheatedMoveSpeed.png

Decided to mess with item drop rate (Number of drops in an individual drop event) and item Drop Count (number of stackable items in a specific drop. Kinda like Stockpile skill that actually works)
ustats_working.png

Then I decided to get jiggy with it :D
I never liked the way that Items had those weird stats that went away when a Gem was applied so i started thinking of ways to make items truly unique. The result was the introduction of the UStat system
new stats.png


See the purple stat 50 Attack Power?
there can actually be two of these and they are 100% unique to the item in which they are set. there is no lookup table. It doesn't take data from an STB or anything. We just have a UStat[0 and 1] and a UValue[0 and 1] value where the stat can be any number and the value can be any number. This allows for stupid stats like Headsize 300 (although that doesn't actually work right now. I'm working on it though) or more useful things such as Summon_Gauge 20 (allowing for more summoned pets)
Any item that drops has a chance of a random UStat or 2 and any items from chests will always get them. I still need to write a function to make them make a lot more sense though but that's minor compared to making them work in the first place.
I had to redesign the CItem class structure in both client and server AND the entire inventory packet system had to be overhauled to do away with that horrible GetItemHead() function with it's nasty bitshifts and stuff. Same for GetItemBody(). Both of those functions appeared in about 6 million different and confusing places throughout the code. Now any time we need to send item information we just use "AddItemData" and it builds the entire item and adds it to the packet in a nice centralized location so that the next time I need to add something to the CItem class I can do it once in one place. Much neater.

Then i thought to myself, "why let the STB control the size and level of monsters?"
It always seems stupid to me that we have 20 different Candle ghosts in the STB. Each one just scaled up a little from the previous one? Why not just have one basic model? set it to level one and let the server scale it up to suit?
So i modified monster spawns (only GM command ones so far) so that the packet to create the monster in the map sets it's size and level via the 0x0792 packet
This is what happened when I tested it but got some code wrong.
oh_shit.png
Need to lookup information on NARose items, skills, quests?
Now featuring a newly completed skill tree for all classes
Formatting fixed for different resolutions
Image

"A Gazelle is nothing but a giraffe plotted logarithmicaly"
User avatar
PurpleYouko
Rose Guru
Rose Guru
 
Posts: 4712
Joined: Fri Aug 10, 2007 2:05 pm

Re: Project 137

Postby XxXshidoXxX on Mon Mar 14, 2016 6:12 pm

Yayyyy, I was lurking everyday for this thread to be made :)

Every little bits that i read is something that i agree on or feels right.
Taking everything out of the client must have been a handful ( especially with how horrible those sources looked ) and IS how rose should have worked from the very beginning.
To be honest i don't understand why the devs even bothered to make the client calculate anything in the first place...

Eh about the VSF part, i've always hated having to put everything back into order, having everything unpacked from the start really saves up on time.

No longer having HP/MP jump must really be a bless, i don't know ANYONE here that didn't have a bad time with them ( well especially you if i recall correctly :p ). I can't stress enough the feeling you must have had once all of this bullshit was over :lol:

The UStat system reminds me a lot of pokemon actually ( yes yes ) with the nature thing they added.
This gives even more reasons for players to farm good and optimized items ( well especially for pvp freaks ) and will keep them busy in waiting some new content :mrgreen:
Maybe allowing the artisan at a very high level to make slight ajustements into the value would also be a cool addition to the boring state of this class right now.

( give intel buff to big heads ? )

All in all its awesome that someone is actually moving away from the bug erasing department and can actually focus into new features.

Excellent work, hats down GG.

( inb4 Jrose sends a job offer )
My collection ( Tools, clients sources...)
https://mega.nz/#F!AdcFnQDL!sKp3O9tWGGdWvLEj_EYfwA
osrose mobile project
viewtopic.php?f=34&t=5787
OsRose Mobile development + Titan Rose redesign
https://github.com/shid0x
XxXshidoXxX
osiRose dev
osiRose dev
 
Posts: 445
Joined: Mon Aug 27, 2007 11:44 am

Re: Project 137

Postby PurpleYouko on Mon Mar 14, 2016 6:17 pm

So anyway, I got that little issue fixed and moved on to rewriting every.... damn.... bit... of... code related to modifying items.
Y'know.... Disassembly, gemming, chests (which are actually now handled as regular disassembly instead of using their own special case code), refining.... That was painful. Not one bit of any of it was working. It was crashing the client right left and center every time it tried to move an item in inventory so naturally it led onto a complete overhaul of the inventory code, an new game save function and new database tables for inventory and storage.

I still have to do the code for crafting but with all the rest of the system streamlined and working smoothly I think that will just fall into place pretty easily in server and client.

My next plan is to add some new kind of refining system (NARose new update kind of had the same idea and beat me to it)
I am going to add new items that can be applied to empty slots in items (kind of like they do in every other MO) so that the item can be further enhanced even beyond the UStat system.
Additionally, the upgrade items will be craftable and their own stats will also contain UStats rather than just basic STB data :D
So a dealer skill may be to craft special Runes (or some such named item) that can be applied to either weapons or armor like Bindrunes and Talismans are now. Each one will bring a special combination of UStats that will be much more tightly controlled than the random ones that can exist on any item now.

For further down the line, plans include the following.
  • Complete overhaul of quests to make it possible for some to be generated dynamically by NPCs and VPCs (see details of VPCs below)
  • Introduction of VPCs (Virtual Player Characters). This will involve the addition of a new sub-server program that will be able to spool up VPCs on demand and log them into the main server where they will act a little like players but will be controlled entirely by AI. I have some plans for this but it will require a LOT of work. It will enable things like (on the extreme simple end) Escort quests, VPCs walking around the town and talking to each other, maybe letting a little of the lore out to anyone interested in evesdropping. (more complex end) VPCs will eventually be able to engage in all the activities that players are able to do. Questing, fighting monsters, selling stuff to NPCs, joining player parties even.
  • NPC inventory tracking. What if your favorite NPC runs out of materials? he might start a fetch quest to get more. His prices will increase, both for selling and for buying. Maybe he doesn't want any more of your crappy old rusty iron and will only pay ridiculously low prices for it. This concept introduces a true variable economy.
  • Server games. Finishing off my half done Tower Defense game from KTRose to make it fully automated. Flag capture PVP! Two or even Three teams have to get the flag back to their base. problem is that the flag is a REALLY HEAVY (auto-equip and auto-drop on death) item so anyone who picks it up will have to walk back while his team holds off the other teams. It's also a really BIG Banner back item so nobody can miss it. have fun with that.
  • Base crystals on each map. While healthy they give that map double XP rate and double drop rate. They can be attacked by monsters in certain events though (one of which is the Tower Defense) Once destroyed they are reborn as Corrupted Crystals and they can only be regenerated by a server wide fetch quest involving the collection of hundreds or even thousands of items plus who knows what else.
  • Complete new quest chains and background lore telling the story of ROSE the way that WE believe it should be.
  • A new power to stand against everything we ever thought we loved. Will you side with Arua? Hebarn? or maybe with our new mystery Opponent? Rumors speak of an Entity known simply as BlackSheep. Nobody knows who she is or where she cam from. What she wants though, is obvious. Power over everybody and everything. Follow the clues to find out who she really is and decide if you want to follow her or one of the other powers. It's your choice. (this part of the game will appeal to roll players)
  • Monster Factions. Ever wondered what would happen if there was a reputation system in which you could end up being loved by ever Jelly bean in the world or hated by Woopies because of actions you took or decision that you made? Would you like to lead an army of Golems to attack Zant? or make friends with Aquas and lead your allies in an Epic defense of Junon polis against an invading Porky army? Do the lore quests! find out the background stories! figure out why it is that the respawn points in Junon all look like the head and upturned hands of stone giants or what the deal is will all the jelly bean statues in Adventurers plains. Earn friendship or eternal enmity with the factions of monsters.
  • Scalable character levels. Have you ever been annoyed that high level players come back to low level maps and AOE everything in sight? NO MORE! In the new world order, higher level players will be scaled down when they enter lower level zones. A 200 with advanced gear in adventurers plains is still going to be more powerful than a n00b but this system will make it so that they won't be massively overmatching everything around.
  • Dynamic spawning. It always annoyed me in almost every game, that if I slog my way through a huge number of enemies to get to a distant reward, they continue to respawn behind me as i do so. Not with this system. Once a particular spawn is cleared it stays dead until the monsters can re-seed it. Each spawn point will contain a kind of boss that steadily spawns minions at low level. Over time teh minions will grow up and become stronger, bigger, higher level (see size and level code already done :D ). once a spawn reaches critical mass a special 'scout' class monster will be spawned. This one will leave the spawn to find a new place that isn't so crowded where he will morph into a new spawner and it all starts again.
    This leads to 2 possible end results.
    First, the monsters can over-run a city. This will trigger one or more quests to drive them out again.
    Second, It's now possible to completely eradicate a monster species. This will also trigger a quest but of a different type. Players will have to go in search of a new source of monsters to re-seed the species. Once this happens, all affiliations will be reset and this new monster group will be friendly to all (no devil pest). Over time they may become infested again, or somebody may deliberately infest them. Whatever.
    Quest might even include a brand new instanced map "mists of creation" (or some such) where players must travel to find the seeds of the new spawn.

Well that's about it for now.
Watch this space for updates on ideas and progress.

When I reach a point where this stuff can be tested it will be hosted and opened up for beta testing. :D
Information will be posted here
Need to lookup information on NARose items, skills, quests?
Now featuring a newly completed skill tree for all classes
Formatting fixed for different resolutions
Image

"A Gazelle is nothing but a giraffe plotted logarithmicaly"
User avatar
PurpleYouko
Rose Guru
Rose Guru
 
Posts: 4712
Joined: Fri Aug 10, 2007 2:05 pm

Re: Project 137

Postby Raven0123 on Mon Mar 14, 2016 6:22 pm

PurpleYouko wrote:For further down the line, plans include the following.
  • Complete overhaul of quests to make it possible for some to be generated dynamically by NPCs and VPCs (see details of VPCs below)
  • Introduction of VPCs (Virtual Player Characters). This will involve the addition of a new sub-server program that will be able to spool up VPCs on demand and log them into the main server where they will act a little like players but will be controlled entirely by AI. I have some plans for this but it will require a LOT of work. It will enable things like (on the extreme simple end) Escort quests, VPCs walking around the town and talking to each other, maybe letting a little of the lore out to anyone interested in evesdropping. (more complex end) VPCs will eventually be able to engage in all the activities that players are able to do. Questing, fighting monsters, selling stuff to NPCs, joining player parties even.
  • NPC inventory tracking. What if your favorite NPC runs out of materials? he might start a fetch quest to get more. His prices will increase, both for selling and for buying. Maybe he doesn't want any more of your crappy old rusty iron and will only pay ridiculously low prices for it. This concept introduces a true variable economy.
  • Server games. Finishing off my half done Tower Defense game from KTRose to make it fully automated. Flag capture PVP! Two or even Three teams have to get the flag back to their base. problem is that the flag is a REALLY HEAVY (auto-equip and auto-drop on death) item so anyone who picks it up will have to walk back while his team holds off the other teams. It's also a really BIG Banner back item so nobody can miss it. have fun with that.
  • Base crystals on each map. While healthy they give that map double XP rate and double drop rate. They can be attacked by monsters in certain events though (one of which is the Tower Defense) Once destroyed they are reborn as Corrupted Crystals and they can only be regenerated by a server wide fetch quest involving the collection of hundreds or even thousands of items plus who knows what else.
  • Complete new quest chains and background lore telling the story of ROSE the way that WE believe it should be.
  • A new power to stand against everything we ever thought we loved. Will you side with Arua? Hebarn? or maybe with our new mystery Opponent? Rumors speak of an Entity known simply as BlackSheep. Nobody knows who she is or where she cam from. What she wants though, is obvious. Power over everybody and everything. Follow the clues to find out who she really is and decide if you want to follow her or one of the other powers. It's your choice. (this part of the game will appeal to roll players)
  • Monster Factions. Ever wondered what would happen if there was a reputation system in which you could end up being loved by ever Jelly bean in the world or hated by Woopies because of actions you took or decision that you made? Would you like to lead an army of Golems to attack Zant? or make friends with Aquas and lead your allies in an Epic defense of Junon polis against an invading Porky army? Do the lore quests! find out the background stories! figure out why it is that the respawn points in Junon all look like the head and upturned hands of stone giants or what the deal is will all the jelly bean statues in Adventurers plains. Earn friendship or eternal enmity with the factions of monsters.
  • Scalable character levels. Have you ever been annoyed that high level players come back to low level maps and AOE everything in sight? NO MORE! In the new world order, higher level players will be scaled down when they enter lower level zones. A 200 with advanced gear in adventurers plains is still going to be more powerful than a n00b but this system will make it so that they won't be massively overmatching everything around.
  • Dynamic spawning. It always annoyed me in almost every game, that if I slog my way through a huge number of enemies to get to a distant reward, they continue to respawn behind me as i do so. Not with this system. Once a particular spawn is cleared it stays dead until the monsters can re-seed it. Each spawn point will contain a kind of boss that steadily spawns minions at low level. Over time teh minions will grow up and become stronger, bigger, higher level (see size and level code already done :D ). once a spawn reaches critical mass a special 'scout' class monster will be spawned. This one will leave the spawn to find a new place that isn't so crowded where he will morph into a new spawner and it all starts again.
    This leads to 2 possible end results.
    First, the monsters can over-run a city. This will trigger one or more quests to drive them out again.
    Second, It's now possible to completely eradicate a monster species. This will also trigger a quest but of a different type. Players will have to go in search of a new source of monsters to re-seed the species. Once this happens, all affiliations will be reset and this new monster group will be friendly to all (no devil pest). Over time they may become infested again, or somebody may deliberately infest them. Whatever.
    Quest might even include a brand new instanced map "mists of creation" (or some such) where players must travel to find the seeds of the new spawn.

Well that's about it for now.
Watch this space for updates on ideas and progress.

When I reach a point where this stuff can be tested it will be hosted and opened up for beta testing. :D
Information will be posted here


This is actually what I wanted to do Q.Q Purple you should just make your own game at this point Haha.
User avatar
Raven0123
osiRose dev
osiRose dev
 
Posts: 378
Joined: Tue Sep 11, 2007 11:06 pm
Location: USA, NJ

Re: Project 137

Postby PurpleYouko on Mon Mar 14, 2016 6:26 pm

Already tried that.
My problem was always getting a graphical engine and the graphics to go with it.
I'm NOT a graphics coder. DirectX and OpenGL just make me want to go and kill myself.
I once made a really basic Graphics engine using OpenGL 1.1. It worked ok for a super basic map editor but that was as far as i really got with it.

For all it's problems, rose gives me a decent platform to work from
Need to lookup information on NARose items, skills, quests?
Now featuring a newly completed skill tree for all classes
Formatting fixed for different resolutions
Image

"A Gazelle is nothing but a giraffe plotted logarithmicaly"
User avatar
PurpleYouko
Rose Guru
Rose Guru
 
Posts: 4712
Joined: Fri Aug 10, 2007 2:05 pm

Re: Project 137

Postby Raven0123 on Mon Mar 14, 2016 6:40 pm

PurpleYouko wrote:For all it's problems, rose gives me a decent platform to work from


But you could just strip the whole game down to the basic renderer and build up :D. We have the technology to rebuild it....
User avatar
Raven0123
osiRose dev
osiRose dev
 
Posts: 378
Joined: Tue Sep 11, 2007 11:06 pm
Location: USA, NJ

Re: Project 137

Postby harry12 on Mon Mar 14, 2016 8:04 pm

very interesting. lets make roseonline rocks once again
harry12
Pomic
Pomic
 
Posts: 83
Joined: Sun Feb 14, 2010 9:15 am

Re: Project 137

Postby rl2171 on Mon Mar 14, 2016 8:22 pm

Very nice Purple!!

Can't wait to help with the testing, sounds like it will be alot of fun again!
Image
rl2171
Admin
Admin
 
Posts: 1705
Joined: Mon Aug 06, 2007 5:17 pm
Location: Sacramento, CA USA - GMT-8

Re: Project 137

Postby Raven0123 on Mon Mar 14, 2016 8:28 pm

rl2171 wrote:Very nice Purple!!

Can't wait to help with the testing, sounds like it will be alot of fun again!


o.o YOUR ALIVE!!!! Welcome back! how have you been?
User avatar
Raven0123
osiRose dev
osiRose dev
 
Posts: 378
Joined: Tue Sep 11, 2007 11:06 pm
Location: USA, NJ

Re: Project 137

Postby XxXshidoXxX on Mon Mar 14, 2016 8:34 pm

rl2171 wrote:Very nice Purple!!

Can't wait to help with the testing, sounds like it will be alot of fun again!


Is this real life ?
My collection ( Tools, clients sources...)
https://mega.nz/#F!AdcFnQDL!sKp3O9tWGGdWvLEj_EYfwA
osrose mobile project
viewtopic.php?f=34&t=5787
OsRose Mobile development + Titan Rose redesign
https://github.com/shid0x
XxXshidoXxX
osiRose dev
osiRose dev
 
Posts: 445
Joined: Mon Aug 27, 2007 11:44 am

Next

Return to Pimp My Rose

Who is online

Users browsing this forum: No registered users and 2 guests