This post is longer than I prefer, but contains mostly minor questions.
And thoughts on mostly 2 things. Apologizes for wall of text in advance, I try to avoid big posts.
I've seen instances where the console buffer prints some impossible text (the text looks like C code "#ifdef UNSUPPORTED") to the console if a particle script contains unknown keywords and then complains each line contains an unknown command.
I don't know if this is a buffer overflow, bad pointer or what not or something I could somehow be doing.
If I see it again --- and I will -- I'll post a screenshot and provide enough info to recreate. Never happens when the particle script is fine.
I record a demo using protocol 15 or -15 and it wouldn't playback in GLQuake, which I found slightly confusing because I thought the point of -15 and -666 was to allow that.
Having said that:
1) The ability to record a true protocol 15 demo is very important.
1a) I think "-15" should be "15". There's no reason to use protocol 15 except as a server or if trying to record a demo that another client can play.
2) The ability to record a protocol 666 demo is not important at all.
I consider protocol 666 to be a good effort, but incomplete as it cannot do what is intended --- you can't coop a bigmap game reliably. Believe me, I know
So I would suggest the following:
1) Call this "666" something else.
2) Have it be maybe "700". And make it the default.
Because a name should mean something. If FitzQuake 0.85 can't play the demo and Quakespasm can't play the demo, it shouldn't really be 666.
The engine can playback 666 demos and that's important.
But honestly, I don't think even being able to connect to a 666 server is important. I'm just expressing that I feel, like you seem to believe, that this essentially completes what 666 was designed to do and makes 666 obsolete.
a) What does rainfrequency apply to and not apply too. If I have a pent emit particles like some of the brief demos I made, does rainfrequency apply to that? (I asked about the interval because "emitinterval" sounded like something that would control that)
b) I get "count 1" or "count 50" but is the emission rate per frame? I don't know what interval it uses. I just know it doesn't seem to be per second.
c) There are quite a few different commands, some of them seem redundant so it just takes time to figure out what they do --- and some of them even reading the source code I can't figure out what they do. ramp and rampdelta in particular is an example. And some of the ones that have an (XY) and then a (Z) parameter.
d) Has Socked asked if pixel particles that don't distance scale or ever change angle are possible? I'm just wondering for tutorial purposes, but it doesn't matter to me if they do or don't exist really.
I'll have to satisfy myself with read the code, at least for quite a while.
But yeah, I've read a fair amount of it.
My short term goal is doing what I can to make sure this engine gets put to use -- and receives testing, and to the extent you are willing -- polish. Both the particle scripting and the server features, because I recognize the value of each. I'd like see the QuakeC extensions get used, but that isn't down my alley.
Obviously, I think what you have done is incredible, and it I have some different plans running through my head.
/I think I'll have the opportunity to put it through some serious coop testing this weekend
/Damn that's a long post. Too long for my liking, but it's too late now.
And thoughts on mostly 2 things. Apologizes for wall of text in advance, I try to avoid big posts.
Originally posted by Spike
View Post
I don't know if this is a buffer overflow, bad pointer or what not or something I could somehow be doing.
If I see it again --- and I will -- I'll post a screenshot and provide enough info to recreate. Never happens when the particle script is fine.
(note that even if you are using protocol 15, the 'fte' thing means that its merely a 'base' protocol, or in other words, its completely roflstomped over for quakespasm clients in a way that will be (mostly) invisible to every other type of client. hurrah. thus those client-only extensions probably still apply, at least when connecting with the same build as the (dedicated?) server).
Having said that:
1) The ability to record a true protocol 15 demo is very important.
1a) I think "-15" should be "15". There's no reason to use protocol 15 except as a server or if trying to record a demo that another client can play.
2) The ability to record a protocol 666 demo is not important at all.
I consider protocol 666 to be a good effort, but incomplete as it cannot do what is intended --- you can't coop a bigmap game reliably. Believe me, I know
So I would suggest the following:
1) Call this "666" something else.
2) Have it be maybe "700". And make it the default.
Because a name should mean something. If FitzQuake 0.85 can't play the demo and Quakespasm can't play the demo, it shouldn't really be 666.
The engine can playback 666 demos and that's important.
But honestly, I don't think even being able to connect to a 666 server is important. I'm just expressing that I feel, like you seem to believe, that this essentially completes what 666 was designed to do and makes 666 obsolete.
3) half a particle doesn't make sense. for rain/surface emitters, you can use rainfrequency which will scale up/down the frequency of emission effects (where count remains the number of particles spawned with each 'puff', which is useful with eg sparks).
b) I get "count 1" or "count 50" but is the emission rate per frame? I don't know what interval it uses. I just know it doesn't seem to be per second.
c) There are quite a few different commands, some of them seem redundant so it just takes time to figure out what they do --- and some of them even reading the source code I can't figure out what they do. ramp and rampdelta in particular is an example. And some of the ones that have an (XY) and then a (Z) parameter.
d) Has Socked asked if pixel particles that don't distance scale or ever change angle are possible? I'm just wondering for tutorial purposes, but it doesn't matter to me if they do or don't exist really.
So, baker, how long until you port this stuff to one of your engines?
But yeah, I've read a fair amount of it.
My short term goal is doing what I can to make sure this engine gets put to use -- and receives testing, and to the extent you are willing -- polish. Both the particle scripting and the server features, because I recognize the value of each. I'd like see the QuakeC extensions get used, but that isn't down my alley.
Obviously, I think what you have done is incredible, and it I have some different plans running through my head.
/I think I'll have the opportunity to put it through some serious coop testing this weekend
Extra:
a) When time permits I want to bring up thoughts on game/gamedir
b) Don't want to make this any more of a wall of text, but out of curiosity does FTE have banning ability for IPv6? I just am curious. As far as I've ever heard, banning someone on IPv6 is a real PITA (from website operators saying that). Yeah, I noticed that bantest is disabled in the source, made me think of that. (This is a curiosity only).
c) Please, please see keys.c and find this line and make insert the default cursor behavior (make it default true instead of false).
I saw that change by MH in the Remake Quake engine --- and it brought me pause back at the time --- I'm uber-conservative but MH does not make changes on a whim either. So I tried it out and thought about it and after some testing, I tried to imagine any scenario I wouldn't want it on and there were none. Makes using the console a complete delight. I think goldenboy or ijed were the ones that asked MH.
a) When time permits I want to bring up thoughts on game/gamedir
b) Don't want to make this any more of a wall of text, but out of curiosity does FTE have banning ability for IPv6? I just am curious. As far as I've ever heard, banning someone on IPv6 is a real PITA (from website operators saying that). Yeah, I noticed that bantest is disabled in the source, made me think of that. (This is a curiosity only).
c) Please, please see keys.c and find this line and make insert the default cursor behavior (make it default true instead of false).
I saw that change by MH in the Remake Quake engine --- and it brought me pause back at the time --- I'm uber-conservative but MH does not make changes on a whim either. So I tried it out and thought about it and after some testing, I tried to imagine any scenario I wouldn't want it on and there were none. Makes using the console a complete delight. I think goldenboy or ijed were the ones that asked MH.
int key_insert = true; //johnfitz -- insert key toggle (for editing)
Comment