A challenge for all

Avatar
protoborg
288 Posts
Posted Dec 11, 2012
I have a challenge for all you wannabe designers out there. :biggrin:

I am designing a level that will spell out my username, Protoborg, in binary. The level can only be completed if the player is able to release the nine (9) cubes that are present in the level. The only way to release the cubes is to enter the correct eight(8)-bit sequence into the locking mechanism. Each character must be entered in the correct order before the door will open.

My challenge to you is this; who can come up with 1) the simplest method for implementing this puzzle and 2) the most complex method?

Leave your response in this thread or you can find me on steam as protoborg. I am working on finding ANY solution myself and would like to see how MY solution stacks up against your solutions.

Advertisement
Registered users don’t see ads! Register now!
Avatar
Lpfreaky90
2,842 Posts
Posted Dec 11, 2012
Replied 2 hours later
is the solution fixed?
Avatar
protoborg
288 Posts
Posted Dec 11, 2012
Replied 1 hour later
What do you mean fixed? If you are asking have I found a solution yet, the answer is no. If you are asking if the solution has to be a particular way, again the answer is no.
Avatar
Lpfreaky90
2,842 Posts
Posted Dec 11, 2012
Replied 36 minutes later
So the solution should be random?
So like in game 1 the solution is say 12345678 and the next time it can be 87654321?
Avatar
FelixGriffin
2,680 Posts
Posted Dec 11, 2012
Replied 5 minutes later
How would you input the characters? I can think of a good way to do it even if you just had the PTI.
Avatar
protoborg
288 Posts
Posted Dec 11, 2012
Replied 1 hour later

Lpfreaky90 wrote:
So the solution should be random?
So like in game 1 the solution is say 12345678 and the next time it can be 87654321?

That solution is fixed as the binary equivalent of the characters "P", "r", "o", "t", "o", "b", "o", "r", and "g". For example, "P" would have to be entered first as "01010000".

The solution to how to enter the those sequences is not fixed.

FelixGriffin wrote:
How would you input the characters? I can think of a good way to do it even if you just had the PTI.

That is the whole point of this challenge. I know how I will be entering the characters. I want to know how someone else might think to enter the characters.

Avatar
Lpfreaky90
2,842 Posts
Posted Dec 11, 2012
Replied 24 minutes later
Okay; that makes it a lot easier :razz:
Avatar
CamBen
973 Posts
Posted Dec 11, 2012
Replied 36 minutes later
Is there going to be a giant keyboard made of func_buttons?
Avatar
FelixGriffin
2,680 Posts
Posted Dec 11, 2012
Replied 14 minutes later
I'd use a series of toggling buttons, one for each bit, and an "Enter" button that clears the others.
Avatar
protoborg
288 Posts
Posted Dec 11, 2012
Replied 29 minutes later
My solution is fairly simple (in my mind, anyway) and will be the one I go with unless someone comes up with something better. My solution is below. I have hidden it as I still want to see what others can come up with.

The player presses one more pedestal buttons that are keyed to some sort of logic gate series. There is a row of nine cube buttons that are require a cube be brought from another part of the level. The cube buttons are tied to the door. If, at any point, all nine buttons are active, the door opens. The cubes can only be obtained in the rooms that unlock when the binary code is entered (the code is the binary value for the characters in "Protoborg"). There will, of course, be some sort of clue as to what the unlock codes are. I haven't quite figured out where I will put the clues yet.

Avatar
Lpfreaky90
2,842 Posts
Posted Dec 11, 2012
Replied 46 minutes later

This is my solution;
10 entities and 2 outputs per button:

https://dl.dropbox.com/u/37801279/twp/button_test.vmf

Avatar
FelixGriffin
2,680 Posts
Posted Dec 11, 2012
Replied 1 hour later

protoborg wrote:
My solution is fairly simple (in my mind, anyway) and will be the one I go with unless someone comes up with something better. My solution is below. I have hidden it as I still want to see what others can come up with.

The player presses one more pedestal buttons that are keyed to some sort of logic gate series. There is a row of nine cube buttons that are require a cube be brought from another part of the level. The cube buttons are tied to the door. If, at any point, all nine buttons are active, the door opens. The cubes can only be obtained in the rooms that unlock when the binary code is entered (the code is the binary value for the characters in "Protoborg"). There will, of course, be some sort of clue as to what the unlock codes are. I haven't quite figured out where I will put the clues yet.

But how would you enter the code?

Avatar
protoborg
288 Posts
Posted Dec 12, 2012
Replied 3 hours later

FelixGriffin wrote:
protoborg wrote:

My solution is fairly simple (in my mind, anyway) and will be the one I go with unless someone comes up with something better. My solution is below. I have hidden it as I still want to see what others can come up with.

The player presses one more pedestal buttons that are keyed to some sort of logic gate series. There is a row of nine cube buttons that are require a cube be brought from another part of the level. The cube buttons are tied to the door. If, at any point, all nine buttons are active, the door opens. The cubes can only be obtained in the rooms that unlock when the binary code is entered (the code is the binary value for the characters in "Protoborg"). There will, of course, be some sort of clue as to what the unlock codes are. I haven't quite figured out where I will put the clues yet.

But how would you enter the code?

That's what the pedestal buttons are for.

Avatar
josepezdj
2,386 Posts
Posted Dec 12, 2012
Replied 5 hours later
Hey Protoborg! Interesting idea. I like this challenge! :thumbup:

This is what I've thought for the binary code entering (I think the part of the 9 cube_buttons and the door is pretty much easy or straight forward by means of logic_branches and a logic_listener). First of all it would be nice some kind of display to show the code, something similar to the timer examples I once posted, but with the following tweaks:

  1. The display would have as many characters as you would need your binary code to be, say 8. Font, background colour, character colours and such completely customizable. Each character will be changed (if you follow my timer example) by an env_texturetoggle entity (so there will be needed as many as the number of characters your display will have, thus 8 ). In this case, the best output for the env_texturetoggle is "IncreaseTextureIndex"

  2. I would use 3 pedestal buttons: one will fire the "0", other the "1" and the 3rd one would allow you to change the position in the display.

  3. It would be good to use named light entities or even better light_spots (colour depending on your personal taste) to spot the position in the display you're playing with in order to enter a number.

  4. In order to determine what code is correct, I'd suggest the usage of logic_branches (one per character) to output if the number in a certain position is "correct" (= value 1 in the logic_branch) or "incorrect" (= value 0 in the logic_branch). Imagining we need the 2nd and the 4th logic_branches with a value of 1 and the rest with a value of "0", we can use 2 logic_branch_listeners (one for the values "1", other for the values "0") to fire the final output only when our desired code is entered.

  5. The way how you can change the position in the display could be to use a math_counter with a max legal value as characters the display has; and each time you press the pedestal button to change the position in the display, you increase the value in the math counter. Ofc a logic_case entity would be necessary here too, that would receive the invalue from the math-counter. Then depending on the value, the case will be that a certain env_texturetoggle (if you follow my timer example) will be enabled.

  6. The key now is to determine what of the display's position is active in a certain time so that when you press any of the pedestal buttons that outputs the "0" or "1" these latter ones know what character to change. This can be done by using a new math_counter that stores the display's position values from left to right, for example from 0 to 7. Then a series of logic_braches, one per position, will be changing their value by a logic_case leaving only one with value "1" at a time. The key now is the outputs in the prop_buttons: I'd fire the "Test" output to ALL the these latter logic_branches, and this way, only the only which has a value of "1" will fire the output, thus change the number.

Ofc some logic_relays and logic_autos will be needed :biggrin: ... But I think this would be in general terms what I'd do.

Lol... I couldn't think of something more complex :lol: Seriously, it's not that complex, it's only that I used several logic lines, one for each event I want to create.

What do you think? :smile:

Avatar
protoborg
288 Posts
Posted Dec 12, 2012
Replied 4 hours later
@Jose: That sounds interesting and it is certainly much simpler than the method I came up with to trigger the exit door. I had thought to have each of the codes fed into a group of latches that would unlock the exit door. However, if you simple make it that the exit door is unlocked by nine cubes, that would make the final logic much easy to do.
Avatar
protoborg
288 Posts
Posted Dec 12, 2012
Replied 1 minute later
EDIT: double posted for some reason
Avatar
josepezdj
2,386 Posts
Posted Dec 12, 2012
Replied 8 minutes later
Yeah, I was assuming there would be like 9 different chambers where to get those cubes from, then a sort of final buttons area with the door inbetween and the corresponding indicator lights connecting the 9 buttons with the door. For this you only need 18 logic_relays (9 for "on" status, 9 for "off"), 9 logic_branches, one logic_listener and 1 env_texturetoggle. That's all :biggrin:

Although it's possible to build the map so the exit door is in the middle, the 9 chambers surrounding it, and the indicator lights coming from eeach chamber to the exitt door :wink: Alternatively, you can also make a big letter appear on top of the entry to each of the 9 chambers after the player has completed it (one for each of your nick's letters) :thumbup:

I think the complicated part of this map of yours is the part I explained in the previous post.

Avatar
protoborg
288 Posts
Posted Dec 12, 2012
Replied 16 minutes later

josepezdj wrote:
Yeah, I was assuming there would be like 9 different chambers where to get those cubes from, then a sort of final buttons area with the door inbetween and the corresponding indicator lights connecting the 9 buttons with the door. For this you only need 18 logic_relays (9 for "on" status, 9 for "off"), 9 logic_branches, one logic_listener and 1 env_texturetoggle. That's all :biggrin:

Although it's possible to build the map so the exit door is in the middle, the 9 chambers surrounding it, and the indicator lights coming from eeach chamber to the exitt door :wink: Alternatively, you can also make a big letter appear on top of the entry to each of the 9 chambers after the player has completed it (one for each of your nick's letters) :thumbup:

I think the complicated part of this map of yours is the part I explained in the previous post.

Yeah, you're right. I kinda like the idea of having nine chambers around some central "hub" room. I figured that's what I would do. The only challenge is, of course, that you want the player to understand that certain rooms are locked until the previous room has been completed.

josepezdj, I would love to work with you on this if you want. I could probably use your help with a project this large. You would get complete credit for whatever you do. I think this could be a very popular map. We may need to break it up into many smaller maps, but I think for now it is doable as one big map.

Avatar
josepezdj
2,386 Posts
Posted Dec 12, 2012
Replied 10 minutes later

protoborg wrote:
josepezdj, I would love to work with you on this if you want.

Well, dude, thanks for that! :thumbup: Though, you know, I'm kinda busy atm with my own projects and some beta-testing... Only if you are not in a real hurry and you let me some time, I could help you out for example by making a smaller example showing how I would do it. This way you could implement the ideas you want into your bigger version. :wink:

Advertisement
Registered users don’t see ads! Register now!
Avatar
protoborg
288 Posts
Posted Dec 12, 2012
Replied 23 minutes later

josepezdj wrote:
protoborg wrote:

josepezdj, I would love to work with you on this if you want.

Well, dude, thanks for that! :thumbup: Though, you know, I'm kinda busy atm with my own projects and some beta-testing... Only if you are not in a real hurry and you let me some time, I could help you out for example by making a smaller example showing how I would do it. This way you could implement the ideas you want into your bigger version. :wink:

Sounds good. That works for me.