Graal Forums  

Go Back   Graal Forums > PlayerWorlds > Classic Main Forum
FAQ Members List Calendar Today's Posts

Reply
 
Thread Tools Search this Thread Rate Thread Display Modes
  #196  
Old 12-23-2005, 01:09 AM
Lyndzey Lyndzey is offline
Woman
Lyndzey's Avatar
Join Date: Aug 2001
Posts: 2,875
Lyndzey is a jewel in the roughLyndzey is a jewel in the rough
Quote:
Originally Posted by Tyhm
It's ironic that projectiles were designed to be used with Classic Style Arrows, and that last check they didn't work with Classic's "Firing Through This Wall" genre. IMHO arrows ought to bounce of certain walls and soar over certain obstacles (bushes, pits, fences), but that's a fair degree of coding that ultimately isn't worth it.
Well, maybe not. onwall and in(this set of statically defined "wall" ids) takes about as much effort. Maybe more processor time? Who knows.
An ordered In would take log(n) time to burn through, on the other hand, but then we find ourselves asking for Stefan to create another command just to make Classic's arrows work a skoch better. It's all very silly.
Come back
Reply With Quote
  #197  
Old 12-23-2005, 01:31 AM
Polo Polo is offline
Classic Systems Admin
Join Date: Sep 2002
Location: Vancouver, Canada
Posts: 735
Polo is on a distinguished road
Send a message via AIM to Polo
Quote:
Originally Posted by Tyhm
It's ironic that projectiles were designed to be used with Classic Style Arrows, and that last check they didn't work with Classic's "Firing Through This Wall" genre. IMHO arrows ought to bounce of certain walls and soar over certain obstacles (bushes, pits, fences), but that's a fair degree of coding that ultimately isn't worth it.
Well, maybe not. onwall and in(this set of statically defined "wall" ids) takes about as much effort. Maybe more processor time? Who knows.
An ordered In would take log(n) time to burn through, on the other hand, but then we find ourselves asking for Stefan to create another command just to make Classic's arrows work a skoch better. It's all very silly.
You also have the major problem that to hit a moving target, you'd need a 0.05 second timeout, which is somthing we should be avoiding on serverside.
__________________
Be good little players, or Master Storm will ban you!



Proof that the staff are crazy..
*Ghost Pirate: I'm a little teacup short and stubbe here is my raygun here is my butt
DragonX: Jumping jack rabbits Batman! Our eggo waffles have been stolen! To the batmobile Robin!
X-Mann (RC): I have a head ache
Reply With Quote
  #198  
Old 12-23-2005, 05:19 AM
nikomi946 nikomi946 is offline
Bells doppleganger
Join Date: Jan 2002
Location: USA
Posts: 90
nikomi946 is on a distinguished road
Send a message via ICQ to nikomi946 Send a message via AIM to nikomi946 Send a message via Yahoo to nikomi946
First rule of marketing, bad publicity is better than no publicity. I'd like to thank you all for steadily increasing playercount from as low as 0 up to 35 to 60 with this thread.
Reply With Quote
  #199  
Old 12-23-2005, 12:05 PM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Polo
You also have the major problem that to hit a moving target, you'd need a 0.05 second timeout, which is somthing we should be avoiding on serverside.
According to the newfeatures.txt I read, the shoot function triggers the clients and then the movement on each of the clients is the movement is controlled individually by the clients. In essence, the only difference between I clientside arrow and a serverside arrow is that everyone will see the arrow in the proper starting location. If there is a clientside object in front of the player, the arrow will stop at the object rather than hitting the player. If another player was on the same position as the other without seeing that same clientside object, that player would be hit by the arrow.

So in all senses, it's pointless to say that the only way to shoot arrows securely is to use the shoot command serverside. We could always make a new shoot command that does the same thing, but recognizes only objects instead of walls, like the clientside shoot(@arrowtype) commands do. The only thing we wouldn't be able to. So, when you trigger the client, all you'd need to do is send x,y,dx/.05,dy/.05,owner,image... whatever you'd need it to send.

So Storm, how about redoing the projectile system?

Add: In any sense, for stuff with irregular movement, we could make different movement parameter types that would call a class that defines the path for the type of movement

As for the structures I thought of that would put damage leaps and bounds beyond where it is now, try to remind me the next time you have time.

Euhh.. also remind me to ask you about level links in quests.

Last edited by jake13jake; 12-23-2005 at 12:26 PM..
Reply With Quote
  #200  
Old 12-23-2005, 12:53 PM
Tyhm Tyhm is offline
Psionic Youth
Tyhm's Avatar
Join Date: Mar 2001
Location: Babord, West Graal Deaths:1009 Kills:1
Posts: 5,635
Tyhm has a spectacular aura about
Quote:
Originally Posted by Lyndzey
Come back
As much as I'd love to oblige, it's murder on my social life - I so much as log on, find myself inexorably romantically tied to one Graalian of my past or another, fritter away roundabout two years waiting for it to bloom and eventually realize everyone's laughing at me.
Quote:
Originally Posted by Polo
You also have the major problem that to hit a moving target, you'd need a 0.05 second timeout, which is somthing we should be avoiding on serverside.
I always thought that was humorous. This is a bit tricky to code, but try and keep up on the concept:
Tyhm enters a room.
From 30.5,30, facing 0, he fires an Arrow at server time index 12345600. This checks the next likely wall (let's say at y=10) and sets the server string for it.
Every client then recieves "30.5,30,0,12345600,10" and extrapolates:
30.5,29,123456001;
30.5,28,123456002;
30.5,27,123456003;
30.5,26,123456004;
and so on until it hits the wall. Every client sees the arrow flying and, if they intercept it, they take the damage.
The tricky bit is if a client is hit, that changes when the arrow hit a wall and you have to tell everyone in the room not to worry about that projectile anymore. Further, it makes octoballs a little tricky (but not much: dir*90 gives you the angle clockwise from N, so we could just store it all that way), and rooms that spam Way Too Many Projectiles get complicated...but maybe not too complicated. Major complication - you still have to trust the clients to recieve their damage, much in the same way you have to trust the clients to tell the truth about what walls they've walked through. Possible solution - hit the client occasionally to keep it honest. With blanks, maybe, I dunno, tell the client it's about to be shot and see if it accepts it and reports back with damage, then heal it and let it be. Maybe that'd be a GP tool, the Inescapable Arrow that Definitely Hits Any Player That Isn't Cheating And Jails Any Player That It Somehow Misses. I dunno, it all got too complicated for me a long time ago.

Anyone watching - this is why Classic's taking so long, it's not as easy as "Just upload the old levels, OMG!", everything needs to be coded for serverside compatibility. If you don't like it, Stefan's the man to talk to, he's the one who implemented the security that effectively ended good old simplified (if painfully buggy and easily exploited) clientside scripting.

Still don't see why signs ever became serverside...
__________________
"Whatever," said Bean, "I was just glad to get out of the toilet."

"Power does not corrupt. Fear corrupts, perhaps the fear of a loss of power."- John Steinbeck
"I'm only acting retarded, what's your excuse?" queried the Gord.
- My pet, the Levelup Gnome

http://forums.graalonline.com/forums...&postcount=233
Reply With Quote
  #201  
Old 12-23-2005, 01:11 PM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Tyhm
Still don't see why signs ever became serverside...
Well, I've been told because they can display variables, but so can <graalmsg>
It would be better if you could just script predefined level objects without using NPCs. Like, some kind of script access per server of how the .nw syntax is read. It's easier to browse through a level in wordpad that way and edit things manually. Tyhm, I don't know why level links aren't controled by the NPC Server.

it would be cool if you could manipulate syntax to accept classes you've made for baddies that pass parameters to the baddy script, or any custom syntax. It would really improve the readability of the level file.

MYBADDY params
line1...
line2...
line3...
MYBADDYEND

KEYDOOR x y ID

ADD: Although Tyhm, writing a script to replace the sign, baddy, and link syntaxes with NPCs would be quite easy. Could do it in Java, don't know enough of the C++ library to be do it in C++ though, which I would prefer.

Last edited by jake13jake; 12-23-2005 at 01:28 PM..
Reply With Quote
  #202  
Old 12-23-2005, 02:01 PM
Polo Polo is offline
Classic Systems Admin
Join Date: Sep 2002
Location: Vancouver, Canada
Posts: 735
Polo is on a distinguished road
Send a message via AIM to Polo
Quote:
Originally Posted by Tyhm
...Interpolation Stuff...
I had considered somthing like this before, but when players are laggy, then multiple people would get hit, or people would appear to be cheating. For example, one person gets hit on thier screen, but they are laggy, before they can tell the server to quash the arrow, it hits 3 more people.
__________________
Be good little players, or Master Storm will ban you!



Proof that the staff are crazy..
*Ghost Pirate: I'm a little teacup short and stubbe here is my raygun here is my butt
DragonX: Jumping jack rabbits Batman! Our eggo waffles have been stolen! To the batmobile Robin!
X-Mann (RC): I have a head ache
Reply With Quote
  #203  
Old 12-23-2005, 02:04 PM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Polo
I had considered somthing like this before, but when players are laggy, then multiple people would get hit, or people would appear to be cheating. For example, one person gets hit on thier screen, but they are laggy, before they can tell the server to quash the arrow, it hits 3 more people.
Storm, did you read my post? The clients destroy the arrows -_-.
Reply With Quote
  #204  
Old 12-24-2005, 05:27 AM
Tyhm Tyhm is offline
Psionic Youth
Tyhm's Avatar
Join Date: Mar 2001
Location: Babord, West Graal Deaths:1009 Kills:1
Posts: 5,635
Tyhm has a spectacular aura about
Quote:
Originally Posted by jake13jake
Storm, did you read my post? The clients destroy the arrows -_-.
I don't see the connection.
And he has a point (I think I touched on this) - it ain't perfect. But that's lag. If an arrow goes through one guy to three others once in a while, euh. I'm more concerned with how we have to trust the player to be honest about getting hit.
__________________
"Whatever," said Bean, "I was just glad to get out of the toilet."

"Power does not corrupt. Fear corrupts, perhaps the fear of a loss of power."- John Steinbeck
"I'm only acting retarded, what's your excuse?" queried the Gord.
- My pet, the Levelup Gnome

http://forums.graalonline.com/forums...&postcount=233
Reply With Quote
  #205  
Old 12-24-2005, 09:36 AM
DarkCloud_PK DarkCloud_PK is offline
Registered User
DarkCloud_PK's Avatar
Join Date: Jul 2001
Location: WISCONSIN
Posts: 994
DarkCloud_PK is just really niceDarkCloud_PK is just really nice
Quote:
Originally Posted by Tyhm
Pish, like I need your permission. I'm an Emeritus, by my own regulations I can return whenever I feel like it. (But I wouldn't do that to you, so don't sweat it)
Excellent, I'm returning to FAQ/Special Ops post haste on this note.
__________________

~DC
2001-2002 - Classic FAQ Administrator/Special Operations Administrator
2005 - 2009 - GC Dev Admin
2009 - Classic Dev Admin Stint
Reply With Quote
  #206  
Old 12-24-2005, 01:14 PM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Tyhm
I don't see the connection.
And he has a point (I think I touched on this) - it ain't perfect. But that's lag. If an arrow goes through one guy to three others once in a while, euh. I'm more concerned with how we have to trust the player to be honest about getting hit.
From the 2002 newfeatures.txt file:
"Projectiles are easy to use and don't take a lot of bandwidth because only the shooting of the projectile needs to be sent, the movement is calculated on the different computers."

In all cases, you can't trust movement scripts. You can, however, determine whether the packets being sent back to the server by a player make any sense. Let's say on one client, the projectile hits a fellow player. That client can then tell the server that the player was hit, as well as a bunch of other clients. If the majority clients say the player was hit, but the player never gets hit, you can just echo it to RC, "player not hit by arrow." Then again, there's the possibility that the player had a clientside object blocking the arrow from hitting him/her. In any case, there's no way of making it perfect, but you can perform checks for anything that might be out of place.

Yea, and Tyhm, doing arrows in the way you described would not leave room for a clientside object blocking the player from the arrow.
Reply With Quote
  #207  
Old 12-25-2005, 01:41 AM
Tyhm Tyhm is offline
Psionic Youth
Tyhm's Avatar
Join Date: Mar 2001
Location: Babord, West Graal Deaths:1009 Kills:1
Posts: 5,635
Tyhm has a spectacular aura about
Then clientside objects ought not be allowed to block the player from arrows. Or perhaps more to the point, objects ought not be allowed to block the player from arrows on clientside. If a permanent or immovable barrier is put up, it ought to tell the server about itself; if a player has a shield of some sort, he was still "hit" by the arrow, it just did no damage nor did it hinder him, and such ought be accounted for.

But I digress - the point is, these growing pains are felt on every server as it develops unnecessarily. G2K1 had these problems, and what have we learned from their toil? Zilch. Why?
__________________
"Whatever," said Bean, "I was just glad to get out of the toilet."

"Power does not corrupt. Fear corrupts, perhaps the fear of a loss of power."- John Steinbeck
"I'm only acting retarded, what's your excuse?" queried the Gord.
- My pet, the Levelup Gnome

http://forums.graalonline.com/forums...&postcount=233
Reply With Quote
  #208  
Old 12-25-2005, 05:53 AM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Tyhm
Then clientside objects ought not be allowed to block the player from arrows. Or perhaps more to the point, objects ought not be allowed to block the player from arrows on clientside. If a permanent or immovable barrier is put up, it ought to tell the server about itself; if a player has a shield of some sort, he was still "hit" by the arrow, it just did no damage nor did it hinder him, and such ought be accounted for.

But I digress - the point is, these growing pains are felt on every server as it develops unnecessarily. G2K1 had these problems, and what have we learned from their toil? Zilch. Why?
Shields are controlled by the player's direction, and the player's direction can be changed directly clientside... thus it's flawed. Permanent/immovable barriers are generally not the case for clientside objects that might block the player from getting hit. I'm just trying to demonstrate how it would always be flawed no matter what way you did it.
Reply With Quote
  #209  
Old 12-25-2005, 09:38 AM
Tyhm Tyhm is offline
Psionic Youth
Tyhm's Avatar
Join Date: Mar 2001
Location: Babord, West Graal Deaths:1009 Kills:1
Posts: 5,635
Tyhm has a spectacular aura about
Sure. It's just a question of finding the least flawed or most acceptable solution. But my point is that other servers have coded systems that work, and the writers (particularly Stefan-like ones) would probably be willing to share their wealth of knowledge if there was a database/distro/library, but there isn't.
__________________
"Whatever," said Bean, "I was just glad to get out of the toilet."

"Power does not corrupt. Fear corrupts, perhaps the fear of a loss of power."- John Steinbeck
"I'm only acting retarded, what's your excuse?" queried the Gord.
- My pet, the Levelup Gnome

http://forums.graalonline.com/forums...&postcount=233
Reply With Quote
  #210  
Old 12-25-2005, 10:15 AM
jake13jake jake13jake is offline
Former Classic Staff
jake13jake's Avatar
Join Date: Dec 2002
Location: Northwest Vermont
Posts: 1,452
jake13jake will become famous soon enough
Quote:
Originally Posted by Tyhm
Sure. It's just a question of finding the least flawed or most acceptable solution. But my point is that other servers have coded systems that work, and the writers (particularly Stefan-like ones) would probably be willing to share their wealth of knowledge if there was a database/distro/library, but there isn't.
???
My control_movement and a few other scripts of mine are at graal.net...
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 07:59 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.