Quests in EQ2Emu

EQ2Emulator Development forum.

Moderator: Team Members

techguy84
Posts: 187
Joined: Wed Jul 25, 2007 4:56 pm
Location: Qeynos Guard Shack
Contact:

Post by techguy84 » Tue Oct 30, 2007 10:46 pm

Masterfreek64, you just love your DLL's dont you lol. Dont get me wrong, im not knocking them. If they work, they work. The question surrounding my mind is, if something is chosen, it has to be something that can possible, maybe, be preformed by more than one person.
I see Power over Speed, as if you want something fast, you can get it, but down the road, you may regret it. The questing subsystem, from what I can see in EQ2 (with no prior knowledge) is very very complex. It just doesnt revolve aorund simple quest like Kill X Mob, Bring X Drop back, ect.. but more.
You definatley need something with versatility. But like I was saying, it has to be somehting that more than one person has knowledge upon and could do. One person writing all the quest cause we choses this method, vs 10 people doing it cause we chose that method.

Cadimiom
Team: Zombie
Posts: 74
Joined: Wed Jul 25, 2007 2:31 pm

Post by Cadimiom » Tue Oct 30, 2007 11:11 pm

Lua is a possibility.
We have to keep in mind that if we use a more complex scripting/programming language for quests we are going to be alienating some of the userbase.

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Post by John Adams » Wed Oct 31, 2007 5:38 am

Cadimiom wrote:Lua is a possibility.
We have to keep in mind that if we use a more complex scripting/programming language for quests we are going to be alienating some of the userbase.
I agree fully. But I remember the first time I opened an EQEmu quest script (Perl, which I actually understood beforehand), and was still intimidated. Not with Perl, but with the command structures and now the World interpreted them, and passed information to and from those scripts. To me, this is where the confusion lies - not so much in what script language is used.
But yeah, a compiled DLL might be a little too much for the average quest writer to comprehend.

EvilPotF
Posts: 2
Joined: Thu Nov 01, 2007 4:05 am
Contact:

My coin :D

Post by EvilPotF » Fri Nov 02, 2007 5:11 am

well, i'll vote for event driven too, since it holds lots of potential :D
furthermore it is strongly customizeable (since the quest can become quiet complex, as mentioned before)
but i don't think, that dlls are a bad idea, since it realy IS fast... but it probably won't be required for quests (a scripting language should be the way to go, since it doesn't need compiling at every change made. hope it doesn't become java, don't like that one :wink: )
i would use them to "exclude" the way skills, tradeskills (magic too perhaps?) and stuff works, since it could be highly customicable and be quick to work (and one could customize the way the emu works without changing it's core code at all). the complexity for those could nearly be made infinit and customized fairly easy (could make a few realy nice custom effects for spells)
well, just my thoughts
Evil

masterfreek64
Posts: 36
Joined: Fri Aug 03, 2007 6:02 am

Post by masterfreek64 » Sat Nov 10, 2007 11:30 am

Event driven makes it TOTALLY easy to implement a CASD ( computer assisted software development)- a no line of code system ...
DOL has it to an extent , but we could do that better
Just add:
Hooked Events
What will happen on hooks
etc
In a dialogue. ...
easy...
and compiling the C code can be done with GCC no problem here

LethalEncounter
Team: Zombie
Posts: 2717
Joined: Wed Jul 25, 2007 10:10 pm

Post by LethalEncounter » Wed Nov 14, 2007 3:41 pm

I'm a little confused about your proposal. Did you intend to make a scripting language framework using the dll files and each one would add additional capabilities to the framework, or did you mean that every quest would be compiled as a separate DLL file? I think the first option would be the best way to go as once it is done quests can be added by any user without special training and I'm a little concerned about how many DLLs Windows would be able to juggle for a single process. It might be able to handle them all correctly, but when you are talking about thousands of quests and a DLL for each one it will add up quickly. Sure, you dont have to load each of them until requested, but I'm sure loading them on the fly would cause a delay not normally seen.

masterfreek64
Posts: 36
Joined: Fri Aug 03, 2007 6:02 am

Post by masterfreek64 » Thu Nov 15, 2007 11:33 am

Well Windows can handle 1000s of DLLS . No problem here.
The way it works is that EVERY customisation can be placed in a .dll
Most likely it is "just" a bunch of quest scripts , etc ....
but one of course CAN also make a .dll with a scripting framework of his choice ( a C++ wrapper for it ... )

masterfreek64
Posts: 36
Joined: Fri Aug 03, 2007 6:02 am

Post by masterfreek64 » Thu Nov 15, 2007 11:34 am

my problem is atm that I do not have a Kunark DVD ( and won't have one so far) and my seagoing friends didn't get me one yet ;)

scotty2notty
Posts: 9
Joined: Tue Nov 13, 2007 1:06 pm

Post by scotty2notty » Thu Nov 15, 2007 3:07 pm

Do we need to start hand writing the quests out? Or is there a way to check lets say a database website that do the walkthrough of the quests? I have last expansion with the all in one pack so I can start with quests if need be unless it has already been handled.

masterfreek64
Posts: 36
Joined: Fri Aug 03, 2007 6:02 am

Post by masterfreek64 » Fri Nov 16, 2007 9:20 am

Well ... there are some for eyxample eq2.wikia.com ...
Also , with the .dll system it is not yet fully finished. Please bear in mind that this system can be extremely complex ...

Spooler
Posts: 39
Joined: Wed Aug 29, 2007 2:38 am

Post by Spooler » Mon Nov 19, 2007 4:07 pm

Just a thought but it seems we really neeed to outline the pro's and con's of LUA Vs .Dll (my vote goes to Dll) tehn make a new thread with a poll and these two things clearly outlined and let the people vote ... just a thought.
Edit,
I know there are other ways of writing quests there just the 2 most obvious choices imo.
Can't wait for some private server Eq 2 action !!!

CrabClaw
Retired
Posts: 88
Joined: Wed Aug 01, 2007 10:49 am
Location: Seattle

Post by CrabClaw » Mon Dec 17, 2007 2:49 am

Dll's aren't necessary for quests as they are really only run once every so often, DLLs are better suited for more timely run things like AI and such.
As a person who like to write quests LUA or something like it would be a better choice because, I wouldn't have to sit through a re-compile every time I tweak it. Which get very tedious and annoying.

User avatar
alfa
Team Member
Posts: 550
Joined: Fri Jul 27, 2007 6:24 pm
Location: France
Contact:

Post by alfa » Mon Dec 17, 2007 12:45 pm

I think the best is to wait for LE decide how he want to code script / quest engine (because you need some script for quest).
Sure DLL have some advantage, and LUA too, but think the better way is let's Main dev (yes LE it is you:P) decide for my know in programmation LE is a very good coder so for sure he going to provide us the engine we need when time is come
Fight with me... Or die, like the rest.
J.A. say: "I think Xinux tried to tell me this, but I ignore most things he suggests."

Darq
Posts: 5
Joined: Sun Mar 02, 2008 5:18 am

Post by Darq » Thu Mar 06, 2008 6:34 am

scripts with a syntax similar to c/c++
embedded php (wait for zend core 6)
embedded perl
data storage in mysql
but how should quests be written, whats a good solution?
what types of quests and questupdates are there?
triggered spawn could look like
if player is within collision radius (or in radius a of location x y z) and is on quest (or queststep) questid and is on subquest subquestid, spawn spawngroup
how to implement data storage?
a main list of quests
quest
id name list_of_subquests(csv?)
subquests which are "quests"
id what_has_to_be_done (type?(delivery,kill,approach,craft etc) source destination racetype_to_be_killed itemtype_to_be_looted mob_to_be_killed absolute_itemid rewardid)
rewards
id type_of_reward (skill(s), item(s), money)
how will the script know when player entered a particular location?
how will it know if the player looted a particular item?
how will it know if an item is in the players inventory?
how will it know if a quest or subquest has been completed?
i guess what i mean to say is how will the server communicate with the script and the other way around?
which embedded scripting language offers the easiest or most simple way to do that?
constants should be stored in the database. something like if item 234234534 is in inventory isn't good. better if item robe_of_the_aimless is in inventory.
in know with php you can write extensions and export function into php, you can also return values to the program. downside there is little to no documentation about it.
i don't know about embperl lua python or other scripting languages.
and last but not least is the scripting language capable of being objectoriented? in php5 yes , also with public protected private methods and variables.
also i believe the server should provide /commands available to those with status(later). that way one could design a UI which could be openend for instance with /questdesigner

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests