Originally, I wanted to ask opinion on the procedure of making a trigger for this. I had some versions, and wanted opinion on how should I proceed to get the better efficiency and whatnot. I'm pretty nitpicky with the code being perfect.
Then I realized I could start a trigger version of WTE, give some more freedom in the trigger and see what the result is. Currently, I'm experiencing in class the pain in the ass that is to have a customer ask for some program, when he doesn't know anything about it, so you end completely misunderstanding him (or better said, he doesn't understand what he wants) and your weeks of work had to be thrown out.
But my point isn't to make everyone work on something and then tell them that's not what you wanted. It's more like to see who gets the better result, ask for stuff in a bit ambiguous manner, giving that way much more freedom. If it becomes popular, we could try asking for some weird utility every weak and see who manages to achieve the goals. So, here it goes, something easy to test how people reacts to it:
Weekly build the trigger #1: Key Hero
I'll try to explain myself as best as possible, but giving ambiguity enough for different results.
I want the system to show a series of groups of letters. The player must press the letters of that group before the next group appears. If he presses the wrong letter, that group gets invalidated, and he has to wait for the next to keep trying. As this "game" goes on, speed gets increased, to the point you have like 1 second only to react to the letter.
If you "complete" a group before the next one appears, you get "good points". If you don't complete a group in time or you just fail to type, then you get "bad points".
This application should help get a better keyboard APM, and could even be linked to some extra to learn how to type properly (using 10 fingers, not just one). It can have a lot of other users, too (games where you must suddenly press a key, or minigames where you must follow a rhythm).
I know it's simple, but well, I'll think about something much more harder if this gets a good reaction :P.
Good luck with it ;).
PS: You don't need to make a map of this, but it's always nice to see it in action, and could help newbies understand it better.
Due to limitations with the current key input system, This would only be responsive enough to work as required in single player or map testing mode. Do you accept submissions in Galaxy? I'd submit an entry, but I hate clicking around with Triggers in GUI.
Meanwhile, giving a set of keys for each player in offline play wouldn't be that hard. The problem is that there wouldn't be space in the keyboard for all those hands xDDD.
Edit: Wait, what if the "keys" were linked to no-effect abilities? Would that work better? As far as I know, spamming storms and a-move doesn't break the game.
Yes it is possible, Look up progammer's data WASD move system, I believe it uses a similar concept. There should be a way to have triggers catch when such an ability is pressed. I've actually done something like that before with wc3's engine. No reason why they would take a step back and disallow it.
Its more responsive, but theres likely a limit of 15 buttons (the command card). From what I've heard blizzard plans to have the keys fixed by patch 1.2. Which I really hope comes soon, because the key lag problem is seriously game breaking.
Anyway, just to be clear, the purpose of a weekly triggering exercise would be to allow us all a chance to share the way we code in open source so the community can learn new stuff from each other right? Does sound like a good idea. I'll come up with an entry of my real life work doesn't smother me.
These solutions have been thought of, processed, evaluated, lost, reinvented, lost again, burried in fresh turf, dug out and finally discarded for good.
For example, at Uther Party, there was a rhythm game, where you had to cast the spell Archimonde had casted. That could be considered a simpler version of this.
Its more responsive, but theres likely a limit of 15 buttons (the command card). From what I've heard blizzard plans to have the keys fixed by patch 1.2. Which I really hope comes soon, because the key lag problem is seriously game breaking.
Heh, 15 can become 15*15*15*15... you just need to open a new tab with each button, just like W3 spellbooks (I used this strategy to make a sorts of dance minigame in W3).
Also, I guess we could make some custom UI with buttons, and link them to various letters, so it looks like you press them with the keyboard even if that's not true, when you decide to use keys instead of clicking over the buttons.
Anyway, just to be clear, the purpose of a weekly triggering exercise would be to allow us all a chance to share the way we code in open source so the community can learn new stuff from each other right? Does sound like a good idea. I'll come up with an entry of my real life work doesn't smother me.
Yeah, my main goal is to ask "something hard", and then show the newbies it isn't that hard. Pros working the code would have a fun time solving the "puzzle", too.
Also, seeing others' code is always good, imo. You learn about little details that are always useful to know beforehand. The best part is that we build it here, step by step, so it's easier to understand than opening a map and trying to see what does the code do.
What solution do you specifically refer to here that doesn't work? Ability -> Trigger detection? From my experience, it does have some latency too. Sadly. But i suppose its not as bad as direct key press triggers.
I guess it's a matter of testing. Some maps like Crush Company rely upon 100% key gameplay, and I have played it with teams of 2 and it didn't give too much lagg.
Also, if the "fake abilities" don't do nothing at all, all the game would have to endure with would be the actions triggered by "casted ability", which, for our system, is just checking if it matches with what's at screen and giving good/bad points.
I haven't tested this properly yet, but I'm confident that it works. Anyway, feel free to post the code you make, no matter it crashes the game or not. After all, we're talking about code and programming, not about shitty compilers and engines; the point is to learn.
Due to limitations with the current key input system, This would only be
responsive enough to work as required in single player or map testing
mode. Do you accept submissions in Galaxy? I'd submit an entry, but I
hate clicking around with Triggers in GUI.
The specifications of the challenge is intentionally ambiguous. I interpreted it in a different way. i.e. no enter button required, just press the keys. Something like guitar hero, thus the name of the challenge being key hero. I haven't played Rod's NWW, but I really doubt what OP has in mind and NWW is the same.
A game such as guitar hero (In this case, key hero) would suck if i had to press enter every time I wanted to strike a note/key. Thus key presses are arguably the most viable alternative.
@Lonami
By the way, does the letter sequence matter? Or can the letters in a group be hit in any order?
My Pseudocode, No time to actually code this as of now.
1) Spawn Dialog with Group of random letters on it. Attach timer to it
2) Concatenate random letters into string and check it later by looping substring
3) Create trigger that detects keystrokes.
4) string getAlphabet(gamelink? keystroke), This function returns the letter that was pressed based on an alphabet lookup table or whatever
5) Compare retrieved alphabet with alphabets in string array. If match, increase score or w-ever, if not fail for that player, disable until next group comes along.
5b) Good points will highlight the letters green, bad will highlight it red.
6) If timer expires or all letters in group pressed, refresh the group with a new set of random letters.
All random letters and alphabet lookups will be done with the help of the following string.
"abcdefghijklmnopqrstuvqrstuvxyz" - Assuming everything is lower case to make things less complicated.
Done. Damn.. Im gettin hyped up.. I feel like building this just for the kicks --
Well he specifically said if you enter one wrong key it would invalidate the set... so
What hes asking for is simple text input and then compare.. His name for it "key hero" is rather ... off in my opinion from the description he gave.
may not exactly a text compare but comparing a "series" of values verse a "series" of inputs.... If if they were say colors.... I would handle them with text values.
why i say hit "enter" to compare im not talking about using the message box ... which is what rod might actually use. I havent played NWW either but ive read enough about it
Seems this starts to take shape. I know triggers aren't like terrain and other stuff, and that need more work and base knowledge, but it's awesome to see you guys being interested in this :).
As for the "key sets", my "original" goal was to, sometimes, ask to press 2+ keys at the same time, but I think there's no proper way to detect that, so I left it ambiguous in purpose.
As for enter/type/enter, I don't think it's viable in the long term, when the game speeds up as hell. As FuzzYD said, pressing enter would be annoying as hell, and more if you have to watch timings. Also, something I don't like about it, is that you can "edit" what you input, and copy-paste text and stuff like that.
Finally, for the order of the letters when there's more than one, it doesn't matter that much. I leave it free: no order, order or pressed at the same time; as you prefer. You can feel free to see this as a sorts of code "competition" where you only have to follow some requirements, and try to get a nice code and gameplay.
The basic thing of this, imo, is more "arcade" in its conception. You only need to press keys to play, nothing more.
I'm sure you all would understand the concept better if I explain the setting where I formerly wanted to use this, but I prefer to give freedom and see what people manages to do, without having to think of more requirements that could ruin the randomness and uniqueness of each posted code. And anyway, if I make the map, I prefer it to be a surprise, and I want people to think "hey, this collaborative post helps making cool stuff, maybe I should take part or give it a read".
I hope that was of help, it's the first time that I try to do this in a serious way (tried before at my Spanish W3 mapmaking clan, but always with simple stuff to teach people how to make leaderboards and things like that) so I'm not sure if I'm being not enough / too much ambiguous :P.
As for the "key sets", my "original" goal was to, sometimes, ask to
press 2+ keys at the same time, but I think there's no proper way to
detect that, so I left it ambiguous in purpose.
This is doable. But semi complicated. I was attempting to write a sample trigger but determined It would be a bit too complicated to just write out with out testing.
Basically each key press is going to run your trigger for each button pressed your logic needs to handle this and give the player a short period of time .5 seconds to accept two key presses. You would need a global variable that each single key press is added to the global. then you would need some kinda time limit that the code is going to allow the player to complete the key presses. .5 seconds should be more then enough. other wise it will reset the players input value to nothing.
Sounds kinda more like you are shooting for some kinda in put similiar to how guitar hero button pressing works.
This could prolly be done in 2-4 short functions that handle player input and clear player input. Pretty sure I could whip this up in a short time but the part about making a "playable" example might be a bit more complicated.
How does Rod's NWW work then. From my understanding hes doing exactly what this guy wants for this weekly trigger thing
Honestly the easiest way to do this is
set curword variable
build TempWord variable from key presses.
compare after so much time of inactivity or que the compare off enter key....
What we want here is a system which checks your input and immediately reacts to it.
What NWW is doing is simply registering every chat message you write (so only after you press Enter after you wrote the complete word) and compare it to the list of current words.
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Originally, I wanted to ask opinion on the procedure of making a trigger for this. I had some versions, and wanted opinion on how should I proceed to get the better efficiency and whatnot. I'm pretty nitpicky with the code being perfect.
Then I realized I could start a trigger version of WTE, give some more freedom in the trigger and see what the result is. Currently, I'm experiencing in class the pain in the ass that is to have a customer ask for some program, when he doesn't know anything about it, so you end completely misunderstanding him (or better said, he doesn't understand what he wants) and your weeks of work had to be thrown out.
But my point isn't to make everyone work on something and then tell them that's not what you wanted. It's more like to see who gets the better result, ask for stuff in a bit ambiguous manner, giving that way much more freedom. If it becomes popular, we could try asking for some weird utility every weak and see who manages to achieve the goals. So, here it goes, something easy to test how people reacts to it:
Weekly build the trigger #1: Key Hero
I'll try to explain myself as best as possible, but giving ambiguity enough for different results.
I want the system to show a series of groups of letters. The player must press the letters of that group before the next group appears. If he presses the wrong letter, that group gets invalidated, and he has to wait for the next to keep trying. As this "game" goes on, speed gets increased, to the point you have like 1 second only to react to the letter.
If you "complete" a group before the next one appears, you get "good points". If you don't complete a group in time or you just fail to type, then you get "bad points".
This application should help get a better keyboard APM, and could even be linked to some extra to learn how to type properly (using 10 fingers, not just one). It can have a lot of other users, too (games where you must suddenly press a key, or minigames where you must follow a rhythm).
I know it's simple, but well, I'll think about something much more harder if this gets a good reaction :P.
Good luck with it ;).
PS: You don't need to make a map of this, but it's always nice to see it in action, and could help newbies understand it better.
Due to limitations with the current key input system, This would only be responsive enough to work as required in single player or map testing mode. Do you accept submissions in Galaxy? I'd submit an entry, but I hate clicking around with Triggers in GUI.
Of course, any script should be valid. In case of Galaxy, you may try to port it to a map, to show how it works.
If not, you can always explain a bit some of the lines. I would love if this becomes a sorts of "weekly" tutorial for the new people.
PS: You think this would lagg too much at Bnet? damn, I wanted to try some key-game experiments :S.
@Lonami: Go
Yes, key- and mousepresses lag too much on battlenet. It'd be hell to play it.
But for a single-player map this is perfectly fine.
Well, damn you Blizzard.
Meanwhile, giving a set of keys for each player in offline play wouldn't be that hard. The problem is that there wouldn't be space in the keyboard for all those hands xDDD.
Edit: Wait, what if the "keys" were linked to no-effect abilities? Would that work better? As far as I know, spamming storms and a-move doesn't break the game.
@Lonami: Go
Yes it is possible, Look up progammer's data WASD move system, I believe it uses a similar concept. There should be a way to have triggers catch when such an ability is pressed. I've actually done something like that before with wc3's engine. No reason why they would take a step back and disallow it.
Its more responsive, but theres likely a limit of 15 buttons (the command card). From what I've heard blizzard plans to have the keys fixed by patch 1.2. Which I really hope comes soon, because the key lag problem is seriously game breaking.
Anyway, just to be clear, the purpose of a weekly triggering exercise would be to allow us all a chance to share the way we code in open source so the community can learn new stuff from each other right? Does sound like a good idea. I'll come up with an entry of my real life work doesn't smother me.
These solutions have been thought of, processed, evaluated, lost, reinvented, lost again, burried in fresh turf, dug out and finally discarded for good.
They all don't work.
I remember they worked with W3 :S.
For example, at Uther Party, there was a rhythm game, where you had to cast the spell Archimonde had casted. That could be considered a simpler version of this.
Heh, 15 can become 15*15*15*15... you just need to open a new tab with each button, just like W3 spellbooks (I used this strategy to make a sorts of dance minigame in W3).
Also, I guess we could make some custom UI with buttons, and link them to various letters, so it looks like you press them with the keyboard even if that's not true, when you decide to use keys instead of clicking over the buttons.
Yeah, my main goal is to ask "something hard", and then show the newbies it isn't that hard. Pros working the code would have a fun time solving the "puzzle", too.
Also, seeing others' code is always good, imo. You learn about little details that are always useful to know beforehand. The best part is that we build it here, step by step, so it's easier to understand than opening a map and trying to see what does the code do.
Isn't this basically nexus word wars
@nevjmac: Go
I think you "type" the words there. Here, you just click the letters the same way you click the buttons of a pad.
@nevjmac: Go
NWW is type the whole word, this one is evaluated by every letter typed (similar to Typing of the Zerg)
@s3rius: Go
What solution do you specifically refer to here that doesn't work? Ability -> Trigger detection? From my experience, it does have some latency too. Sadly. But i suppose its not as bad as direct key press triggers.
I guess it's a matter of testing. Some maps like Crush Company rely upon 100% key gameplay, and I have played it with teams of 2 and it didn't give too much lagg.
Also, if the "fake abilities" don't do nothing at all, all the game would have to endure with would be the actions triggered by "casted ability", which, for our system, is just checking if it matches with what's at screen and giving good/bad points.
I haven't tested this properly yet, but I'm confident that it works. Anyway, feel free to post the code you make, no matter it crashes the game or not. After all, we're talking about code and programming, not about shitty compilers and engines; the point is to learn.
How does Rod's NWW work then. From my understanding hes doing exactly what this guy wants for this weekly trigger thing
Honestly the easiest way to do this is
@SouLCarveRR: Go
The specifications of the challenge is intentionally ambiguous. I interpreted it in a different way. i.e. no enter button required, just press the keys. Something like guitar hero, thus the name of the challenge being key hero. I haven't played Rod's NWW, but I really doubt what OP has in mind and NWW is the same.
A game such as guitar hero (In this case, key hero) would suck if i had to press enter every time I wanted to strike a note/key. Thus key presses are arguably the most viable alternative.
@Lonami
By the way, does the letter sequence matter? Or can the letters in a group be hit in any order?
My Pseudocode, No time to actually code this as of now.
Done. Damn.. Im gettin hyped up.. I feel like building this just for the kicks --
@FuzzYD: Go
Well he specifically said if you enter one wrong key it would invalidate the set... so
What hes asking for is simple text input and then compare.. His name for it "key hero" is rather ... off in my opinion from the description he gave.
may not exactly a text compare but comparing a "series" of values verse a "series" of inputs.... If if they were say colors.... I would handle them with text values.
why i say hit "enter" to compare im not talking about using the message box ... which is what rod might actually use. I havent played NWW either but ive read enough about it
@SouLCarveRR: Go
I really don't think either of us is in the wrong here.
For all we know it could be a combination of both. Press enter, type the letters, and they don't have to be in sequence.
Seems this starts to take shape. I know triggers aren't like terrain and other stuff, and that need more work and base knowledge, but it's awesome to see you guys being interested in this :).
As for the "key sets", my "original" goal was to, sometimes, ask to press 2+ keys at the same time, but I think there's no proper way to detect that, so I left it ambiguous in purpose.
As for enter/type/enter, I don't think it's viable in the long term, when the game speeds up as hell. As FuzzYD said, pressing enter would be annoying as hell, and more if you have to watch timings. Also, something I don't like about it, is that you can "edit" what you input, and copy-paste text and stuff like that.
Finally, for the order of the letters when there's more than one, it doesn't matter that much. I leave it free: no order, order or pressed at the same time; as you prefer. You can feel free to see this as a sorts of code "competition" where you only have to follow some requirements, and try to get a nice code and gameplay.
The basic thing of this, imo, is more "arcade" in its conception. You only need to press keys to play, nothing more.
I'm sure you all would understand the concept better if I explain the setting where I formerly wanted to use this, but I prefer to give freedom and see what people manages to do, without having to think of more requirements that could ruin the randomness and uniqueness of each posted code. And anyway, if I make the map, I prefer it to be a surprise, and I want people to think "hey, this collaborative post helps making cool stuff, maybe I should take part or give it a read".
I hope that was of help, it's the first time that I try to do this in a serious way (tried before at my Spanish W3 mapmaking clan, but always with simple stuff to teach people how to make leaderboards and things like that) so I'm not sure if I'm being not enough / too much ambiguous :P.
This is doable. But semi complicated. I was attempting to write a sample trigger but determined It would be a bit too complicated to just write out with out testing.
Basically each key press is going to run your trigger for each button pressed your logic needs to handle this and give the player a short period of time .5 seconds to accept two key presses. You would need a global variable that each single key press is added to the global. then you would need some kinda time limit that the code is going to allow the player to complete the key presses. .5 seconds should be more then enough. other wise it will reset the players input value to nothing.
Sounds kinda more like you are shooting for some kinda in put similiar to how guitar hero button pressing works.
This could prolly be done in 2-4 short functions that handle player input and clear player input. Pretty sure I could whip this up in a short time but the part about making a "playable" example might be a bit more complicated.
What we want here is a system which checks your input and immediately reacts to it.
What NWW is doing is simply registering every chat message you write (so only after you press Enter after you wrote the complete word) and compare it to the list of current words.