Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » Beyond Jazz Jackrabbit 2

why no scripting language yet?????

Reply
 
Thread Tools
FQuist FQuist's Avatar

JCF Member

Joined: Sep 2001

Posts: 3,251

FQuist is an asset to this forumFQuist is an asset to this forum

Apr 22, 2005, 02:24 PM
FQuist is offline
Reply With Quote
why no scripting language yet?????

Why??

Anyways, a quick rant here I didn't spend much time on. I (and probably many others) have had this idea for a long time: a scripting language would rock for JJ2. The idea seems rather farfetched, but I think with not THAT much effort at least something simple could be created.

(Edit:

What is a scripting language for JJ2?

Quote:
Originally Posted by Wikipedia
Scripting programming languages (commonly called scripting languages or script languages) are computer programming languages designed for "scripting" the operation of a computer. Early script languages were often called batch languages or job control languages
A scripting language for a program can "steer" the program and it's functions. It would be a way to use programming to manipulate Jazz Jackrabbit and specifically playing situations in the game. Like you can use MIRC script to create bots, or make it easier to change a topic, a scripting language for JJ2 would mean you could change the amount of health/ammo a player has dynamically and similar things.)

(Edit: Here's a technical part, probably not interesting for people who don't have some experience with JJ2 utilities)

Since MP is the most used type of game in Jazz2, it's only reasonable that somehow when someone makes a program that has scripting abilities, that it supports multiplayer. There are (at the least) three challenges when taking this on. The problem you run into first is that of client-side and server-side variables. With variables that are set at the server side (I have no idea which ones these are, but I think health is an example) it's easy: a scripting client would just modify the serverside variable and it would change for all clients too. When you have client-side variables (like, I presume, player position), it becomes impossible to work with only one scripting program per server (at the host's computer). So that's probably the problem you run into most.. everyone would have to have the scripting program running for anything to work. That's a challenge, to make it so everyone is required to have one/or wants to have one.

A second challenge is how to command clients to give info on their variables, how to communicate this info between the scripting clients of various people and how to change things for everyone. It should be possible to somehow arrange this by changing certain variables that are sent to other clients, and the scripting programs at the client's computer would somehow understand this and reply (by doing something, or sending data back). What about sending something like a shot being fired at some unused location?

The third challenge is designing the scripting language and figuring out the methods to do everything.. even a very simple scripting language that can only check for a player's location and health and can only tweak triggers, health and location would already open up huge possibilities. And it probably would only take a good coder with good jj2 memory knowledge a short while to make. (you could just have a simple IF LOC=x,y TRIGGERID1=on statement structure thingie and it would already rock)

(Edit: Here comes the non-technical part! I added some more ideas to it, too[/b])

Some positive things having a scripting utility would possibly allow that I can think of at the top of my head:

MP

- Working team battle (without needing complex triggers)
- Adjusting people's score after events
- Lots of (new/improved) gametypes should be possible with this (Handicap CTF =))
- Making hurt events work in MP
- Giving gems/food/coins/other pickups more functions

SP

- Having levels with different next level possibilities (you choose to either go to planet 1, or planet 2, for example)
- Creating interactive stories (non-linear levels/storylines)
- Creating new hurt types

MP/SP
- Instant-killing people (iow: taking all their health at a time)
- Advanced time limit type levels (10 minutes to escape from the base!)
- Having a different 'default' health amount (5 hearts in CTF, or 2)
- Complex animations
- Trigger toggles/more advanced triggers (or more than the current limit, possibly)
- Changing layer properties on the fly
- Changing the level on the fly
- Multiple events on one tile
- Working fast feet
- Lots of stuff that may be possible, and may not be.

there's more.. but I am not really lucid right now. This rant doesn't seem that much understandable at all anyways.

Anyone have some input? I think this would be a good idea to talk about. We're not getting 1.25 anytime soon and this may be something to do until we get it.

edit I forgot there's also possibly the problem that when a memory value is changed serverside (for health for instance) you possibly have to get jj2 to realise that it changed so that it actually sends it to all clients.
__________________
“The truth is that everything that can be accomplished by showing a person when he's wrong, ten times as much can be accomplished by showing him where he is right.” - Robert T. Allen

Interesting Jazz-related links:
Thread: Gameplay Theories - Thread: Make Up Your Own Gametype

Spotify.fm


Last edited by FQuist; Apr 27, 2005 at 09:45 AM.
blurredd blurredd's Avatar

JCF Member

Joined: Nov 2001

Posts: 1,896

blurredd is an asset to this forumblurredd is an asset to this forum

Apr 22, 2005, 03:32 PM
blurredd is offline
Reply With Quote
I'm hoping "Instant-killing people" refers to instant death by falling into pits, because that would own in MP. If only some programmers were up to the challenge. It's a bit annoying knowing that all of these things are possible—and without a 1.25 patch—but no one is willing to make them.
__________________
D3
Extra. No CTO v0.75
Animating Tiles Properties.
ATB Contest. Scripting Language.
Gameplay Theories.
1UP. Pitfall. Desolation.
SC2.

Monolith

JCF Member

Joined: Mar 2001

Posts: 2,221

Monolith is doing well so far

Apr 22, 2005, 07:41 PM
Monolith is offline
Reply With Quote
This is a good idea. I've thought about it too, but I need to get used to programming the basics for JJ2 first. (And making interfaces ;|)
__________________
<div style="float: right; width: 100px; height: 70px; margin: 5px 15px;"><img src="http://madskills.org/monolith/idleserver.gif" style="width: 98px; height: 65px;"><img src="http://madskills.org/monolith/theserver.gif" style="width: 98px; height: 65px; position: relative; top: -65px;"></div><div style="margin: 0 3em; font-size: 80%; font-style: italic;">Love is patient, love is kind. It does not envy, it does not boast, it is not proud. It is not rude, it is not self-seeking, it is not easily angered, it keeps no record of wrongs. Love does not delight in evil but rejoices with the truth. It always protects, always trusts, always hopes, always perseveres.</div><div style="text-align: right; text-size: 80%;">1 Corinthians 13:4-7</div>
LittleFreak LittleFreak's Avatar

JCF Member

Joined: May 2004

Posts: 4,190

LittleFreak is doing well so far

Apr 22, 2005, 11:19 PM
LittleFreak is offline
Reply With Quote
To be honest, I have no idea what a scripting language is, but it sounds good so far.

I'm no coder of any sort, so I couldn't help though.

Should anybody be willing to make such a programm though, please keep in mind that some things which are helpful for MP games will ruin SP and backwards.
__________________
Sober again. Still love it.
ThunderPX

JCF Member

Joined: Dec 2002

Posts: 1,350

ThunderPX is doing well so far

Apr 26, 2005, 09:51 AM
ThunderPX is offline
Reply With Quote
Death pits = awesome. Play Metroid Prime Hunters to see what I mean ;p
Olsen Olsen's Avatar

JCF Member

Joined: May 2004

Posts: 1,370

Olsen is doing well so far

Apr 26, 2005, 10:05 AM
Olsen is offline
Reply With Quote
Really cool ideas. And as BlurredD said, the good thing yet still irritating is that it's possible but no one did it yet.
__________________
some kind of nature
R3ptile

Banned

Joined: Aug 2003

Posts: 3,885

R3ptile is doing well so far

Apr 26, 2005, 10:16 AM
R3ptile is offline
Reply With Quote
Quote:
Originally Posted by Fquist
- Working team battle
There's already a working team battle.

Instant-kill wouldn't be useful in CTF maps unless you have a flag.
cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,812

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Apr 26, 2005, 10:18 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by R3ptile
Instant-kill wouldn't be useful in CTF maps unless you have a flag.
So what?
R3ptile

Banned

Joined: Aug 2003

Posts: 3,885

R3ptile is doing well so far

Apr 26, 2005, 10:21 AM
R3ptile is offline
Reply With Quote
Quote:
Originally Posted by Cooba
So what?
Oh and by the way, it wouldn't be useful in battle levels, too.
LittleFreak LittleFreak's Avatar

JCF Member

Joined: May 2004

Posts: 4,190

LittleFreak is doing well so far

Apr 26, 2005, 10:22 AM
LittleFreak is offline
Reply With Quote
There are more multiplayer modes than CTF. ;D

And in some it could be useful indeed.
__________________
Sober again. Still love it.
White Rabbit White Rabbit's Avatar

JCF Member

Joined: Aug 2001

Posts: 4,478

White Rabbit is doing well so far

Apr 26, 2005, 12:24 PM
White Rabbit is offline
Reply With Quote
What exactly is stored in JJ2's 'memory' apart from ppl's positions, hearts, ammo?
blurredd blurredd's Avatar

JCF Member

Joined: Nov 2001

Posts: 1,896

blurredd is an asset to this forumblurredd is an asset to this forum

Apr 26, 2005, 06:13 PM
blurredd is offline
Reply With Quote
What isn't stored in JJ2's memory? I can't answer either question completely, but I could imagine most of the things that need to be modified by a program are already there in memory.

To R3ptile: Seeing how pits work in other multiplayer games, I don't see a problem with it in JJ2. You lose a roast when you fall into a pit (not to mention all your ammo and powerups), which means extra danger and more skill needed to pass through routes near the bottom of a level. It could make levels more interesting if done well.

As for Team Battle, besides the fact the scoring works in reverse, it doesn't work 100% of the time and levels have to be made to support TB. A Team Battle prog would mean anyone could easily make a TB level. Start positions might still be an issue though if a level uses mostly MP start positions--I know I'm guilty of doing this with my own levels--but hopefully this can be worked around.
__________________
D3
Extra. No CTO v0.75
Animating Tiles Properties.
ATB Contest. Scripting Language.
Gameplay Theories.
1UP. Pitfall. Desolation.
SC2.

White Rabbit White Rabbit's Avatar

JCF Member

Joined: Aug 2001

Posts: 4,478

White Rabbit is doing well so far

Apr 27, 2005, 07:33 AM
White Rabbit is offline
Reply With Quote
Heck, we could even put a warp in a lvl, with no warp target, and call it a trap. ;P
R3ptile

Banned

Joined: Aug 2003

Posts: 3,885

R3ptile is doing well so far

Apr 27, 2005, 08:29 AM
R3ptile is offline
Reply With Quote
BlurredD: You should look at FireSworD's B1 team battle edition, he made a new, better system.
FQuist FQuist's Avatar

JCF Member

Joined: Sep 2001

Posts: 3,251

FQuist is an asset to this forumFQuist is an asset to this forum

Apr 27, 2005, 08:43 AM
FQuist is offline
Reply With Quote
What about being constructive and actually suggesting things, R3ptile, instead of just shooting down stuff?
__________________
“The truth is that everything that can be accomplished by showing a person when he's wrong, ten times as much can be accomplished by showing him where he is right.” - Robert T. Allen

Interesting Jazz-related links:
Thread: Gameplay Theories - Thread: Make Up Your Own Gametype

Spotify.fm

DoubleGJ DoubleGJ's Avatar

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Apr 27, 2005, 09:15 AM
DoubleGJ is offline
Reply With Quote
This sounds like possible to do for one who already made a Jazz2 utility. Anyone of the J2HG still here?
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM

Two Games Joined releases:
Control / Splinter (twin singles)
|| Ballistic Bunny (EP)
||
Beyond (maxi-single)
|| Beyond: Remixed (remix EP)
|| Inner Monsters OST (mini-album)
||
Shadows (album)
FQuist FQuist's Avatar

JCF Member

Joined: Sep 2001

Posts: 3,251

FQuist is an asset to this forumFQuist is an asset to this forum

Apr 27, 2005, 09:48 AM
FQuist is offline
Reply With Quote
Quote:
Originally Posted by Monolith
This is a good idea. I've thought about it too, but I need to get used to programming the basics for JJ2 first. (And making interfaces ;|)
Maybe you (and people in general) can work together. The J2HG crew has quite some experience with some aspects of manipulating JJ2. And some of them (like Link) know C++. The biggest problem is that most people use different programming languages here.. and in J2HG. I for example would make this stuff with others but I only know Delphi (excluding internet scripting languages).

This thing would never get off the ground without multiple people working on it, probably. Too much testing and designing work. Designing a sustainable scripting language that will be logical even after features get added isn't THAT easy.
__________________
“The truth is that everything that can be accomplished by showing a person when he's wrong, ten times as much can be accomplished by showing him where he is right.” - Robert T. Allen

Interesting Jazz-related links:
Thread: Gameplay Theories - Thread: Make Up Your Own Gametype

Spotify.fm

blurredd blurredd's Avatar

JCF Member

Joined: Nov 2001

Posts: 1,896

blurredd is an asset to this forumblurredd is an asset to this forum

Apr 27, 2005, 10:43 AM
blurredd is offline
Reply With Quote
Quote:
Originally Posted by R3ptile
BlurredD: You should look at FireSworD's B1 team battle edition, he made a new, better system.
I'm intrigued. What's different about it?
__________________
D3
Extra. No CTO v0.75
Animating Tiles Properties.
ATB Contest. Scripting Language.
Gameplay Theories.
1UP. Pitfall. Desolation.
SC2.

R3ptile

Banned

Joined: Aug 2003

Posts: 3,885

R3ptile is doing well so far

Apr 27, 2005, 11:02 AM
R3ptile is offline
Reply With Quote
Quote:
Originally Posted by BlurredD
I'm intrigued. What's different about it?
Well, it scores for the right team.
blurredd blurredd's Avatar

JCF Member

Joined: Nov 2001

Posts: 1,896

blurredd is an asset to this forumblurredd is an asset to this forum

Apr 28, 2005, 07:11 AM
blurredd is offline
Reply With Quote
Well, I wouldn't have assumed that was possible without an overcomplicated system because of the predicament where, for example, a blue player who passes through two red bases will score for red team but keep the second flag as well. Also, reversed scoring wasn't the main part of my argument albeit an important factor.
__________________
D3
Extra. No CTO v0.75
Animating Tiles Properties.
ATB Contest. Scripting Language.
Gameplay Theories.
1UP. Pitfall. Desolation.
SC2.

White Rabbit White Rabbit's Avatar

JCF Member

Joined: Aug 2001

Posts: 4,478

White Rabbit is doing well so far

Apr 28, 2005, 07:16 AM
White Rabbit is offline
Reply With Quote
Hey, if so much is in JJ2's memory, we should DEFINITELY expand the memory of JJ2 for SP. I mean, in multiplayer, everything's loaded. All the ammo, all the crates, triggers, springs, etc, but in SP, JJ2's memory seems to reach only a limited amount of tiles away from the player, like a box (afaik, it's around 20x20 tiles large). If we expand that 'memory box', you can do a lot of cool stuff in SP like timers (a la Bank Robbery), trigger effects (like those in GF lvls) and so much more. It would also prevent some bugs from being exploited because a regenerating event outside the 'memory box' will instantly appear again, when the player comes close. I multiplayer, this isn't the case. Would something like this be possible?

EDIT: Oh, and maybe you can edit JJ2's memory so that you can change pre-existing events, put in the lvl with JCS, into other events? For example, if JJ2 thinks there is a 3x seeker pick-up at pos 56, 70, then you could edit its memory and make it think that there is a 15x seeker-crate at pos 56, 64.
Neobeo

JCF Member

Joined: Sep 2002

Posts: 409

Neobeo is an asset to this forumNeobeo is an asset to this forum

Apr 29, 2005, 02:40 AM
Neobeo is offline
Reply With Quote
Sounds interesting. I would be more than glad to help. Btw, what happened to the J2HG?
(For those who don't remember me , I used to be in J2HG, with experience in x86 ASM and C++ (and visual basic, but not delphi)).
__________________
<TABLE border=1><TR><TD>Facts:
Jazz Sprite Dynamite (JSD)
Tileset Extractor
Neobeo's Firetruck

</TD><TD>Myths:
Jazz Creation Station Plus (JCS+) - 10%
Coming soon - a dedicated server! - 25%
Jazz Sprite Dynamite v2 (JSDv2) - 2%
Another generic single-player level - 0%
</TD></TR></TABLE>
Nitro

JCF Member

Joined: Aug 2003

Posts: 2,607

Nitro is doing well so far

Apr 29, 2005, 03:21 AM
Nitro is offline
Reply With Quote
I don't know how to program but I know this, to do death pits you got to define their position on the map on the level, like (23,70) or whatever, or certain Y hights. Anyway after that you make some program that whenever a player goes to that place (i.e coords) then his hearts value get set to zero.(/nerd) hehe [:
R3ptile

Banned

Joined: Aug 2003

Posts: 3,885

R3ptile is doing well so far

Apr 29, 2005, 05:18 AM
R3ptile is offline
Reply With Quote
Quote:
Originally Posted by BlurredD
Well, I wouldn't have assumed that was possible without an overcomplicated system because of the predicament where, for example, a blue player who passes through two red bases will score for red team but keep the second flag as well. Also, reversed scoring wasn't the main part of my argument albeit an important factor.
The system doesn't seem to be complicated at all. Contact me if you want me to host it.
n0

JCF Member

Joined: Mar 2001

Posts: 2,291

n0 is a forum legendn0 is a forum legendn0 is a forum legend

Apr 29, 2005, 09:14 AM
n0 is offline
Reply With Quote
Hrm... I see what you meant, Quist.

I think I could make a program that, for single player, turns area ID events into instant death events. Or, depending on the ID value, the events would be diffrent things. Like Area ID=0 is instant death, Area ID=1 is activate mini boss (been working on a way to do this), Area ID=2 is single player "No Fire Zone," ect.

I think I will work on this once I am done with school (One Week!)

Not really a scripting languge, but a start anyways.
__________________
<.<
>.>
-.-
blurredd blurredd's Avatar

JCF Member

Joined: Nov 2001

Posts: 1,896

blurredd is an asset to this forumblurredd is an asset to this forum

Apr 29, 2005, 09:28 AM
blurredd is offline
Reply With Quote
Hmm... Never thought of using the glitch where a player can score without actually passing through the base outside of classic CTF. This changes my stance on a Team Battle utility, but it still would be cool if TB could work without any level modifications.
__________________
D3
Extra. No CTO v0.75
Animating Tiles Properties.
ATB Contest. Scripting Language.
Gameplay Theories.
1UP. Pitfall. Desolation.
SC2.

cooba cooba's Avatar

JCF Veteran

Joined: Jan 2004

Posts: 7,812

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Apr 29, 2005, 09:48 AM
cooba is offline
Reply With Quote
Quote:
Originally Posted by TheOnlyN0B0DY
Area ID=0 is instant death
Use ID=1 for that =|
VashTheStampede VashTheStampede's Avatar

JCF Member

Joined: Jul 2003

Posts: 1,049

VashTheStampede is doing well so far

May 4, 2005, 02:16 PM
VashTheStampede is offline
Reply With Quote
you could try coding it in more than one scripting language, and have the different languages take on different functions

i.e. C++ for TB

or dephi for your smaller things like pits and instakill

it could work if you used the game engine just the right way.
__________________
I'm like that cousin nobody remembers until the holidays, when he shows up uninvited.

[JxFhGo9w34865tRh!!!!!] - sÀlÄmÃnDèRDM
Link Link's Avatar

Untitled

Joined: Apr 2001

Posts: 2,099

Link is doing well so far

May 6, 2005, 06:33 AM
Link is offline
Reply With Quote
Quote:
Originally Posted by Fquist
A second challenge is how to command clients to give info on their variables, how to communicate this info between the scripting clients of various people and how to change things for everyone. It should be possible to somehow arrange this by changing certain variables that are sent to other clients, and the scripting programs at the client's computer would somehow understand this and reply (by doing something, or sending data back). What about sending something like a shot being fired at some unused location?
The easiest way to do this would be to have parallel network communication. Using JJ2's networking (like a shot being fired) would be difficult and limited. The scripting program could run in client or server mode alongside JJ2, and send data separately.

Many of your suggestions can be done already with simple server-side programs (Project Controller for example), but I think they could be done more elegantly with extra server-client communication.
__________________
With our extreme gelatinous apology,
We beg to inform your Imperial Majesty,
Unto whom be dominion and power and glory,
There still remains that strange precipitate
Which has the quality to resist
Our oldest and most trusted catalyst.
It is a substance we cannot cremate
By temperatures known to our Laboratory.

~ E.J. Pratt
 
FQuist FQuist's Avatar

JCF Member

Joined: Sep 2001

Posts: 3,251

FQuist is an asset to this forumFQuist is an asset to this forum

May 13, 2005, 02:12 PM
FQuist is offline
Reply With Quote
Maybe that is the best solution, Link. You know more about network programming than me. A disadvantage of communicating outside of JJ2 is that people have another connection and port to worry about. A major disadvantage of using JJ2 for communications is that JJ2 has sloppy netcode and data might be lost more quickly that way, especially in laggy servers. I don't think using JJ2 would make things very limited, I'm sure using memory manipulation pretty much everything can be done if you design some protocol. If you really want it simple you could even work using bits by just turning something somewhere off and on.

I'm not sure that there are already programs that can do a lot what I suggested. Using PC4 you can skip games, and change some server settings and the level, but it's not influenced by any actions so it's pretty much useless and can't do what's the point of a scripting language - replying to actions, which would make new gametypes and more interactive single player experience possible.

Let's do some more thinking.. how should the scripting language work? It will need to be able to test for certain conditions like player position or health, or joining/leaving players. There would need to be a continuous loop somewhere checking for conditions to occur. You can either have the people themselves create this (a script someone would make that would check for certain conditions would have some sort of loop, like most GUI programs have for example, something like main() I think, not sure), or do it for people, and have something in the order of functions in the script that are called each time a movement changes, or some way of setting up "listeners" (a bit like setting up mIRC script timers, syntaxwise). What would be the best? I have no experience with any, although I could probably devise some syntax that work could with whatever thing is best.
__________________
“The truth is that everything that can be accomplished by showing a person when he's wrong, ten times as much can be accomplished by showing him where he is right.” - Robert T. Allen

Interesting Jazz-related links:
Thread: Gameplay Theories - Thread: Make Up Your Own Gametype

Spotify.fm

Monolith

JCF Member

Joined: Mar 2001

Posts: 2,221

Monolith is doing well so far

May 13, 2005, 06:18 PM
Monolith is offline
Reply With Quote
In terms of the networking, it would be much easier for the scripting program to use it's own connection and port than trying to ride on top of JJ2's connection. You could probably use something like port 10053 since I think a lot of people open that port even though it's not used for client-to-client communication.

And for the scripting language itself, it would be easiest to use a pre-existing language such as Lua or Python, and create an interface for that.
__________________
<div style="float: right; width: 100px; height: 70px; margin: 5px 15px;"><img src="http://madskills.org/monolith/idleserver.gif" style="width: 98px; height: 65px;"><img src="http://madskills.org/monolith/theserver.gif" style="width: 98px; height: 65px; position: relative; top: -65px;"></div><div style="margin: 0 3em; font-size: 80%; font-style: italic;">Love is patient, love is kind. It does not envy, it does not boast, it is not proud. It is not rude, it is not self-seeking, it is not easily angered, it keeps no record of wrongs. Love does not delight in evil but rejoices with the truth. It always protects, always trusts, always hopes, always perseveres.</div><div style="text-align: right; text-size: 80%;">1 Corinthians 13:4-7</div>
White Rabbit White Rabbit's Avatar

JCF Member

Joined: Aug 2001

Posts: 4,478

White Rabbit is doing well so far

May 14, 2005, 04:28 AM
White Rabbit is offline
Reply With Quote
From what I've gathered, a singleplayer script would be much more easier to do than a multiplayer script?
Monolith

JCF Member

Joined: Mar 2001

Posts: 2,221

Monolith is doing well so far

May 14, 2005, 08:01 PM
Monolith is offline
Reply With Quote
Quote:
Originally Posted by White Rabbit
From what I've gathered, a singleplayer script would be much more easier to do than a multiplayer script?
Yes. Because you wouldn't have to worry about multiple clients running the right script and being synced up and all.
__________________
<div style="float: right; width: 100px; height: 70px; margin: 5px 15px;"><img src="http://madskills.org/monolith/idleserver.gif" style="width: 98px; height: 65px;"><img src="http://madskills.org/monolith/theserver.gif" style="width: 98px; height: 65px; position: relative; top: -65px;"></div><div style="margin: 0 3em; font-size: 80%; font-style: italic;">Love is patient, love is kind. It does not envy, it does not boast, it is not proud. It is not rude, it is not self-seeking, it is not easily angered, it keeps no record of wrongs. Love does not delight in evil but rejoices with the truth. It always protects, always trusts, always hopes, always perseveres.</div><div style="text-align: right; text-size: 80%;">1 Corinthians 13:4-7</div>
Baggers Baggers's Avatar

JCF Member

Joined: Jan 2005

Posts: 558

Baggers is doing well so far

May 15, 2005, 02:03 AM
Baggers is offline
Reply With Quote
Just jumping into this convo so sorry if this has already been covered, but I see the main problem is integrating the scripts into the game, how would this be done, as far as i know youd need the jazz source code....wouldnt you ?
__________________
Click the Sig to go to the Jazz3D fangames Site
FQuist FQuist's Avatar

JCF Member

Joined: Sep 2001

Posts: 3,251

FQuist is an asset to this forumFQuist is an asset to this forum

May 15, 2005, 02:31 AM
FQuist is offline
Reply With Quote
Or about cheating, something I didn't think of until now. If you can manipulate individual player's positions, ammo, health, etc, it'd be pretty easy to make scripts that aid the player.. and maybe would even be hard to discover if done well. I will have to think about how to deal with that.
__________________
“The truth is that everything that can be accomplished by showing a person when he's wrong, ten times as much can be accomplished by showing him where he is right.” - Robert T. Allen

Interesting Jazz-related links:
Thread: Gameplay Theories - Thread: Make Up Your Own Gametype

Spotify.fm

Odin Odin's Avatar

Banned

Joined: Dec 2003

Posts: 3,776

Odin is doing well so far

May 15, 2005, 08:46 AM
Odin is offline
Reply With Quote
Quote:
Originally Posted by Fquist
Or about cheating, something I didn't think of until now. If you can manipulate individual player's positions, ammo, health, etc, it'd be pretty easy to make scripts that aid the player.. and maybe would even be hard to discover if done well. I will have to think about how to deal with that.
Maybe the script used by the player would have to be also in the possession of all the other players in the server, or at least the server.
Monolith

JCF Member

Joined: Mar 2001

Posts: 2,221

Monolith is doing well so far

May 15, 2005, 06:43 PM
Monolith is offline
Reply With Quote
To prevent cheating in a multiplayer environment the scripting client/engine will have to incorporate some way of checking to make sure all clients are running the same script. This sort of check would have to be made anyway, not just specifically to prevent cheating. Although if someone was joining an unscripted server, we might have to detect this and force that no scripts are used so they can't be running one while other people aren't. And if someone wants to cheat in single player, that's their choice.
__________________
<div style="float: right; width: 100px; height: 70px; margin: 5px 15px;"><img src="http://madskills.org/monolith/idleserver.gif" style="width: 98px; height: 65px;"><img src="http://madskills.org/monolith/theserver.gif" style="width: 98px; height: 65px; position: relative; top: -65px;"></div><div style="margin: 0 3em; font-size: 80%; font-style: italic;">Love is patient, love is kind. It does not envy, it does not boast, it is not proud. It is not rude, it is not self-seeking, it is not easily angered, it keeps no record of wrongs. Love does not delight in evil but rejoices with the truth. It always protects, always trusts, always hopes, always perseveres.</div><div style="text-align: right; text-size: 80%;">1 Corinthians 13:4-7</div>
Torkell Torkell's Avatar

Stealth Admin

Joined: Jul 2004

Posts: 2,153

Torkell is a forum legendTorkell is a forum legendTorkell is a forum legend

May 16, 2005, 03:08 AM
Torkell is offline
Reply With Quote
Server uploads script to clients, clients md5 it and send the hash back. Server maintains game state for all clients and does not trust clients - if server says client dies, and client then says "no, I shoot dave", server says "no, you're dead" (you'd have to allow for lag, but just ping the client every once in a while to measure lag).
__________________
-- Torkell



Odin Odin's Avatar

Banned

Joined: Dec 2003

Posts: 3,776

Odin is doing well so far

May 18, 2005, 04:24 PM
Odin is offline
Reply With Quote
Okay, I promised Quist that i'd post the syntax for the scripting language I came up with. Here you go.

/showspr XX posX posY Layer [XX refers to the number the sprite has assigned to it in anims.j2a. The command /showspr 35 15 18 4, for example, would show the sprite 35 at position 15, 18 in layer 4.]
/showani XX YY posX posY Layer FPS [XX and YY refer to the range of the sprites, according to the number assigned to it in anims.j2a. The command /showani 03 06 15 18 4 10, for example, would show sprites 03, 04, 05, and 06, in that order, at position 15, 18 in layer 4, animating at 10 frames per second.]
/stringwrite XX YY [XX refers to the string number, while YY refers to the value of the string. The command /stringwrite 01 "Jazz > Spaz" (With the quotation marks, mind you) would write the string "Jazz > Spaz" (without quotation marks) at string number 01.]
/musicplay XX [XX refers to the file name of the music module you wish to run. The command /musicplay diamond.j2b would change whatever music is playing to diamond.j2b.]
/musicsto [Stops current music.]
/musicrep [Starts music module from the beginning.]
/kick XX [XX can mean two things; either a name, or an IP. The command /kick Odin would kick any player named Odin in the server.]
/ban XX [Same as above.]
/print XX [XX is the player you wish the text to come from, while YY is the string you wish to print. The command /print 01 gg no re would show the host saying "gg no re."]
/spoofprint XX [XX is the string you wish to print. This is the same as above, but the text will be shown as if it were a game message (such as "Violet CLM roasted Orbitz CC").]
/eventcreate XXX posX posY A B C D G [XXX refers to the event number, while A, B, C, and D refer to the event variables. A G present creates a generator with the event. The command /eventcreate 164 15 18 31 G would create a soda pop event at position 15, 18, with a delay of 31 seconds, with a generator.]
/respawn posX posY XXX [XXX refers to the event number in the tile (with a scripting system, I assumed we'd find a way to create multiple events in one tile. However, you could not have two of the same event in the same tile.).]

I have lots more, but that's good enough for now, right?
WaterRabbit WaterRabbit's Avatar

JCF Member

Joined: Jan 2005

Posts: 191

WaterRabbit is doing well so far

May 19, 2005, 12:53 PM
WaterRabbit is offline
Reply With Quote
Using Odin's script idea I came up with a few more options for a scripting language. Here they are:

Syntax: /choosemusic
This would automatically make a list appear in JJ2 that would let you choose from music files that you have in your JJ2 folder.
example: /choosemusic ChrisiLiz.it (You don't have to type this. The client will choose the music through JJ2)

Syntax: /levelvote [Levels for Voting]
This would automatically make a list full of different levels to vote on. The list would appear in JJ2.
example: /levelvote sfalls2.j2l xlmjrc.j2l olcunder.j2l
Reply

Thread Tools

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 On

Forum Jump

All times are GMT -8. The time now is 11:25 AM.