(10 May 2004 at 14:07)
| I'm currently helping to "proctor" an exam, which really just means sitting still for three hours watching the squirming, tortured faces. That's not very fun. (Although, in contrast, we can all breathe a collective sigh of relief when it's over!)|
Aside from finishing up grading and being sick, I spent much of the weekend hacking on escape. Players can now rate levels that they play, which will (I hope) let me assess which levels are best so that I can create a collection of high-quality "Official" levels. The capability to submit puzzles that you make is already there, so if you're looking for something to do as your bored summer begins, I would love for you to try it out. Very soon will be a "1.0" release, at which time I'll make a nicer web page and try to expose the game to more than just readers of this weblog.
In other related news, Adam made a fantastic port of Escape to the Nintendo for his NES development class project. He managed to implement all the game rules, and all of the 18x10 levels are supposed to be included in it. I made some box artwork (complete with laser background) for the game. He's in the final polishing stages now... it will be available for download soon!
|Escape rules! I love Chip's Challenge so this game is perfect for me. I even used to have "chip's challenge" listed in my interests section on LJ.
I think I'll make some levels for it eventually :).
|Cool! Yeah, chip's challenge was in my top 5 shareware games of the 90s, for sure...|
|I can't register my player. username: mpn
That is: Escape win32 200404260
Connecting to escape.spacebar.org...
try 21532 27685...
fail: [fail (bug) register]
try 12254 12452
fail: [fail (bug) register]
Is the server just down?
|Nope, looks like I screwed something up without realizing it.
I will fix.
|It should work now.|
|escape is dandy, but when are we getting the band back together?|
|Soon Neal! All the pieces are now in place... I just need a free day or two to compose something.|
|I like that artwork!|
|Check out also the back cover: http://escape.spacebar.org/nes/backcover-small.png
|that's a hot box.|
|Can we have a command + H to hide the game ?|
|I'll look into it.|
|By the way, on Windows you can press Windows-m to minimize all of the windows and show the desktop.|
|Building on Mandrake Linux 10.0 I consistently get this error:
In file included from edit.cpp:21:
menu.h:82: error: syntax error before `,' token
menu.h:82: error: invalid data member initialization
menu.h:82: error: (use `=' to initialize static data members)
make: *** [edit.o] Error 1
Same on both the -src.tar.gz and the CVS version. The error makes no sense because line 82 is in the middle of the definition for the menuitem object, there are statements fore and aft of it and no commas at all, no quotes to be unbalanced, nada.
The static version segfaults when I try to do anything network.
|I just downloaded the OS X version (haven't started playing yet) and I notice that the menu is 'Escape.exe.' You should nix the extension and just have it display as 'Escape' -- especially on the Mac. ;-)|
|Thanks for the tip. I don't have access to a mandrake linux box, so it will be hard to debug, but I'd like to fix it. I'm having a hard time guessing what this might be -- my first thought would be that there is some #define in your system headers (but not mine) for a symbol used around there that includes a comma. (Perhaps gettext?) If you want to test this hypothesis, you can run g++ -E menuitem.h to have it preprocess the file (like edit.cpp) and then look at the result, searching for the definition of menuitem so you can see if the preprocessor mangles it.
Also, if GDB reports anything interesting from the static one, I'm interested in trying to make that more portable.
Thanks for the bug report!
|Also, on the preferences screen you should have descriptive text that let's the user know to press the Esc key to return to the main menu. ;-)
(I realize this is beta software so just tell me to shut up if you want. :-)
|No, this is the kind of stuff I want to know!|
|Oops curtis, I missed your first comment.
There's actually a reason I use the same filename for the binary on multiple platforms (it eases the auto-upgrade system). There's no sense in having it show up in the menu as .exe, though -- perhaps someone knows how to set that in the .app configuration file?
|By which I mean Info.plist.|
|Adding the key/value pair 'CFBundleName'/'Escape' to Info.plist seems to do it for me. Don't know if there's a better way though.|
|Thanks urtis, I changed it.|
Starting program: /home/leonb/Documents/download/escape/escape.exe
warning: shared library handler failed to enable breakpoint
Program received signal SIG32, Real-time event 32.
0x081a9866 in ?? ()
You now have an account on my Mandrake 10.0 machine as per separate email.
Program received signal SIGSEGV, Segmentation fault.
0x08207cf9 in ?? ()
I selected my character, then hit 4 to cause that.
|Thanks. I fixed the compilation problem; the gnome header apparently #defines gettext (a terrible idea!), causing the syntax error.
Also, I couldn't build a static binary on your system, but
seems to work now. (Although I can't run the binary from my ssh session ;))
|How do I post comments for levels? You posted something on a level I made for Escape and I want to reply to it, but I can't see any "post comment" link for levels.|
|Select the level and press ctrl-c from the load screen while in the game. I should add something to add comments from the web interface, since that is currently the only place to read them. ;)|
|I tried to follow your advice on MacUpdate, but I couldn't create a new player. My misspelled name is Rory OKane, and I want add the apostrophe between the O and the K, but whenever I try to make a new player of that name, Escape says "Couldn't create player. Does file already exist?" Is it that Escape doesn't recognize apostrophes in the name? I hope you can help me.|
|I have a suggestion. When small levels are highlighted in the list, the preview should resize to just fill the preview space so you can see the tiles better. Also, levels too large to show in the preview should have little yellow arrows around them like the ones when you are actually playing the level.|
|I'm wondering. What qualifications does a level need to have to get into the groups of levels at the top of the triage (and what does triage mean, anyway)? It's rather obvious what a level needs for the Annoying: Surprise Deaths one, but the other two aren't as clear. What makes a level impure? What changes could you possibly make that would break a level? What does sophomoric mean? Finally, categories are good and which are bad? Thanks for answering my questions.|
Yes, it won't let you use apostrophes in your name because that's an SQL escape character. Maybe I can come up with a workaround for this at some point.
I have plans to implement your second suggestion.
Impure / Broken / Censored is for levels that are either a joke (modern art), exhibit some bug in the game, or make use of unspecified behavior (which shows up as a warning with yellow and red stripes in the editor). Incidentally, I think that your self-destruct panels and binary choices both belong in here, since they have panels that target themselves or adjacent panels. This category isn't necessarily bad (for instance I think Claustrophobia is a great level), but I can't guarantee that panels will still work that way in future.
Sophomoric is harder to define, but as I was adding a bunch of levels made by kids in a class I tought many years ago, I noticed that there were a lot of levels that hardly constituted puzzles at all, and that those typically aren't very fun to play, so I separated them out. Levels that are trivially easy or are just drawings will probably go here.
I'm not sure whether these categories are a good idea or not in the long term, or whether levels should end up there by some voting process. (I do intend to have levels with warnings automatically deposited in the impure dir, though the editor also needs to be a bit more clear about the consequences of making levels with warnings!)
|Triage is used in (emergency) medicine to refer to the process of prioritizing which people to help. The 'tri' refers to the the three classes: those who are likely to die no matter if they are given help or not, those who are likely to live no matter if they are given help or not, and those for whom help is likely to make the difference between life and death. (The last category gets help first, of course!) Here I mean it to provide an initial survey of which levels are most worth looking carefully at for inclusion in an "official" collection of the best levels (coming soon).|
|I had a compile error for util.h on my system, which is using SuSE 7.0 Linux as the base system, gpp 2.95.3, gcc 2.95.3, libgpp 2.95.3, and glibc-devel 2.2.4. The error is because "FILE" is not defined. When I add "#include <cstdio>" (or "#include <stdio.h>") to util.h, it compiles fine and runs. (I do not know what the most portable solution would be.)
A couple suggestions...
- It would be nice to have unlimited undo capability in the levels.
- Since this seems to have a steep learning curve (the first MyLevels level that is rated easy is tough for me, even though the tutorial levels and the first triage level were not too bad), it would be nice if the beams of lasers were always showing so you know you can't walk in front of them. (Some of the images look like the beam should be blocked although it isn't.) Even nicer would be if the program would not let you move in a laser's path.
- It would be nice if the level selection screen remembered the last level solved or level being worked on and highlighted that.
But overall, this is a great idea and has great potential. Thanks for the fun this will bring!
|Thanks for the comments, Jay! I added stdio.h and committed the change to the sources.
The only current undo feature is that you can save your current solution using 's' and then replay that solution (until you quit the level) using 'r'. This is actually a "secret" right now, and it might go away in future versions. I think that allowing undo might make the game too easy.
The order of the levels is not supposed to indicate a good order to tackle them, except for the tutorials. If you like, you can sort by difficulty (ctrl-d) and solve the easy ones first (short red bar), although many of the easy ones are crummy. (So look for a high style score -- that's the green bar). One of the things that's definitely planned is to set up a real collection of levels, instead of making a first-time player wade through all of the junk in triage.
In general it's not reasonable to prevent the player from stepping in the path of a laser, since a move can have many consequences (such as stepping on a panel, teleporting, moving blocks). It might make sense to do a conservative version where it prevents you from stepping into
a laser's path only in certain simple situations. But this would still ruin some levels, ie, "What's Going On Over There?" by Max.
Level selection is supposed to remember the last level you worked on (at least while Escape is open), so if that's not working, let me know.
|I think you should make a description of how the level was cooked a requirement for checking the [cooked] box. I've noticed a good deal of reported cooks on levels that are pretty obviously uncookable...|
|Or... are they?
Actually, this is already on my to-do list. It will pop up the comment screen if you submit a rating with 'cooked' set.
I downloaded escape and realized that this is a wonderfull fun.
I would like to help You with Your work So I tried make
new graphic "in robomouse style" for this game.
Look on this and say me if it has some sense.
I have wanted to support "skins," which would allow the user to choose different tile graphics, for some time. Having this around will probably convince me to add that functionality faster. ;) Thank you!
|Very addictive game one, of the best for freeware.Will the next version be for sale.Also can anyone hack my computer through this game because of it's online abilites? |
|No, I intend for the game to always be free.
I've taken some care to make the game secure against internet malice. Since it only talks to my server, it should be fairly safe (at least as safe as running Escape in the first place!). I keep pretty close tabs on the levels that people upload, so I wouldn't worry about getting hacked.
|Are the solutions for the levels stored on the server? It would be great to be able to download the solutions and have the game give hints by running through the solution one step at a time. At any point the player could stop the hints and continue on there own.|
|They are stored on the server for levels uploaded since the summer. I also have solutions stored for almost every level (except for some that have been uploaded since the summer--damn you max--which are on the server!) in my personal player file, so somewhere I have a solution for every level. I'm not sure what I think about this kind of hint, though; virtues of spoiling levels aside, I don't think that seeing a prefix of the solution is usually a good way to get yourself started, since often the solution to a level is in the way the first few moves have been carried out.
Something I do want to add (after this nanowrimo!) is the ability for authors to add hints into the levels themselves, which appear as text or arrows, etc. (and which are visible only when a preference is set!) This would give authors some creative control about what sort of hints are possible.
Anyway, thanks for the suggestion. =)
|That new update that shows your solution in preview mode is awesome!|
|Thanks, I am glad you like it. I also implemented your suggestion of sending the player into comment mode when he says that he's cooked a level.
Next is animation!
|That animated solution-showing thing is incredible.
I'm usually not online while I'm playing, so I was wondering: is there any time other than right after finishing a level that ratings get submitted? (That is, should I manually re-rate levels that I've beaten when I go online, or is it being taken care of behind the scenes?)
|I think I found the difference in the SDL vs. Java speed things, you are implementing your own keyrepeat in SDL, where I am using the standard keyrepeat from the windowing system in Java. On that Duron we tested it on, there are more keyboard events from the system. I'm pretty sure things are even between Java and SDL if the rates are the same.|
|mjn: thanks! Just wait for real animation, coming in a week or two.
Ratings don't get synced with the server unless you re-rate, so you might consider doing that yourself. (I guess I should add this!) Also, you won't see the result of your changes until another level is uploaded.
|Adam: That makes sense, but does it account for the irregularity of the movement?|
|I'm so happy that somebody has put out a game for the Mac OS X that is so similar to chip's challenge (I wasted so many hours of my youth playing the Chip's challenge back in the day). Its simply too bad that my computer cannot run it :'( . I wonder how many others have had this problem?|
|I'd like to get it to run on your computer---if it's OS X, it should run! Can you tell me about what goes wrong?|
|i have also not been able to get Chips Challenge to run on OSX. I only downloaded an execute file that my computer had no idea what to do with, and I gave up. Anyone who can help me run Chips Challenge will be my hero! Also, I love escape, i've only been playing for a few days, but its great!
|Could someone help me? I've been trying to upload my latest Escape level for the last two days, and it gives me a "(bug) bad level" error message every time. I've checked the level over several times and cannot find an obvious bug. It has a valid solution, and I have rebuilt the level from scratch to make sure it's alright. Any ideas what's going wrong?|
This probably means that although your level/solution is okay with the escape program, the server doesn't like it. That shouldn't happen, so I want to fix it -- can you send me the level another way? For instance, e-mail it to me (tom7 at cs cmu edu)?
(Does it do anything odd like have the player start in the way of a laser?)
|The server was just full (oops). It should work now.|
|Welcome to beta 2!!! I put a lot of work into animation.
Can someone confirm that it works on OSX?
|Speaking of keyrepeat, looks like you're using SDL_DEFAULT_REPEAT_DELAY SDL_DEFAULT_REPEAT_INTERVAL, which is (500,30). Pretty slow for DELAY. How about SDL_EnableKeyRepeat(250,SDL_DEFAULT_REPEAT_INTERVAL) instead?|
|I dunno, I guess I could make it a setting. It would be best if I could just get it from the damn OS.|
|Hello.Please mail to me where you take so beautiful template for your site.Thanks.|