View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Questions on Fall2001 P7 Milestone

Link back to Fall 2001 Milestone 7

You must implement a complete adventure game using workspace/single-method (or external file) code ONLY.

mean we can't use Squeak's excellent code browser system to build understandable modules for a game and implement them using specialized class messages to build our specific game?

Graham Coleman of KAYRAD

In P4-P6, you as the Adventure Game KIT Developer are expected to build the system using all the tools in Squeak. But you are developing for an Adventure Game Developer who will use your Kit to build something like the HomeWorld adventure game. Your user-developer (game-builder) may not know Squeak, definitely doesn't know how to use a browser, and plans on just typing in a file of code. That's your model of a user. In P7, YOU are that user. Make the game builder's life as easy as possible in P6, because that life becomes yours in P7. Mark Guzdial

Is there a way to make the rendering of the objects faster? I tried changing the color depth to 8 bit but that doesn't really help. Any tips are appreciated.

Kevin Steely

Turn hardware acceleration on, perhaps? What version Squeak are you using? Mark Guzdial

I've tried doing this and it doesn't really help. My computer/video card should be more than adequate. Once the objects are loaded and displayed, everything is fine. I can maneuver them with no problems. The problem is it takes each of them 5 or more seconds to load. I'm using Squeak3.1beta-4478

Kevin Steely

Oh, I understand. Here's a suggestion: Load everything at first (put up an hourglass cursor) and hide what you don't want to show. Mark Guzdial

Is the wonderland section of P7 a significant part in the grade? "Philip Holly"

sorry, Philip Holly

Only half credit is available for each point of the game if it's text only. Mark Guzdial

I am not really sure what you are expecting out of the wonderland interaction right now. Is there anyway we will get out p6 grades back so i can see if our wonderland interaction met the standards of those grading it?

Tim Hardcastle

You won't get P6 before P7 is due. But I encourage you to actually MEET WITH YOUR TA and ask them if the Wonderland interaction is okay. (I can't believe how people are avoiding their TAs, even when it's required to get your grade! We're thinking of making meeting with your TA a requirement next semester.) You could also come see me – I'm sitting here in the DARTS Lab now at office hours with no one here. Or you can ask here. I thought that the Wonderland specs were pretty clear in P6, e.g., rooms are unique, when something is taken it disappears, etc. But I'd be happy to answer any questions here! Mark Guzdial

D3D or OpenGL Versions: How to decide?

I hope you guys are going to be lenient with the rules. For example, when it says that 4 characters must converse with each other driven entirely by the rules, can that mean when two characters meet one could kill the other?

Sure – why not? Mark Guzdial

Also, do all of these requirements have to be met in a successful walkthrough of the game? (ie, in our game if certain characters meet then they lose, but it still counts as an interaction.)

The Goods

That works. As long as it's possible to see the interaction. Mark Guzdial

Having problem with the hide command during the animation process. Seems that hide is a #rightNow action. How do you go about removing a knife from a table AFTER the actor gets to the table? I tried something like the following and the knife dissappears before the actor gets to the table:

take: knife
actor moveTo: table.
knife hide.

Also, I've tried Delay class, but the Delay class is also run first...

Ken Bohannon of MotherSqueakers

Take a look at the example in the textbook on creating a SqueakMovie – you can ask the World to update itself, which gives the current animation a chance, before you move on. You could do that between commands, even those taken by external actors. Mark Guzdial

Just a quick question. What would you classify as a character working against the player? Would the troll from the House World demo be seen as one, or do we need a grander villian? Thanks.

Jonathan Shaver also of KAYRAD

Yes, the Troll would count as one, but that's pretty boring. Be imaginative! Mark Guzdial

I just tried to compile our workspace code and the compiler is crashing. I debugged the compiler(!!!) and it said that I referenced over 256 literals and I needed to decrease the number so that it could compile properly. &part of post removed for various reasons& Is there any way around this? Jared Parsons

Jared, yes, that's a limitation, but let's think about it before we label it, shall we? The number of literals is stored in the header of the method. You want that header as small as possible, you're going to want a lot of them, and Squeak wants to run in small memory devices like WinCE. So you leave a byte for counting literals. (We actually discussed this in class – methods compile to bytecodes, and there's one byte for referencing the literal frame.) So there's a limitation of 256. If you hit that limit, you're not writing well-written code, IMNSHO. Break up your workspace code into methods! As I said in class, we're going to call a particular class method – you can DO ANYTHING YOU WANT IN THAT CLASS METHOD, ESPECIALLY CALL OTHER METHODS! Mark Guzdial

We are having the exact same problem as Jared above. :-( We aren't even really close to all the stuff that we need to have in the game either. I can't think of any way to reduce the amount of literals that we ABSOLUTELY HAVE to use to less than 256. We have to have so many rooms, and each room has to have so many literals, including description, long description, the path to the mdl file, and all the other objects require even more literals. Even if we just do the bare minimum that we possibly could (ie, like NO objects having longDescriptions, etc) i don't think it's very feasible to do this. What are we supposed to do??? Ken Edwards and the Squeaky Clean Squeakers

USE MORE THAN ONE CLASS METHOD!!! I answered this one in class three weeks ago. (Yes, Professor Guzdial is annoyed. When less than 1/3 of the class shows up each lecture, you have NO right to complain when you don't know what got discussed in class.) Mark Guzdial

With all due respect, I have been to EVERY lecture this semester. Occasionaly late, but I have always shown up. I remember talking about the parser limit in class ( i think it was the design round table day ) but I guess I missed you telling us about Milestone's 7 changing requirments. I thought perhaps the Milestone description would have been changed to not have said "SINGLE-METHOD ONLY" but since it didn't, i assumed that the Milestone 7 description was correct.

I've had the problem myself, with M6. I heard that a way around it was to divide the thing into bits, put the bits in methods, and have a method that calls each in turn. I have not tried it myself, but no one has a better idea, than try that. Though, I would appreciate an official way around this little problem. Jon of KAYRAD fame.

That IS the "official" way, Jon, as I said at the time in class. Mark Guzdial
My apologies sir. I was in class that day, and even mentioned the problem during that period. If you wish to berate me tomorrow about not understanding the Milestone instructions, I will be in my usual seat, fourth row, far right (from your point of view). Jonathan Shaver

::Claps:: I agree, several people have asked this question, and from what I can remember everyone that has asked a question about is in class almost every lecture. I don't think it's fair for us to be treated with an attitude like that. From what I remember the only answer we got about this limit was that it was a 256 literal limit. there was no instructions on what to do beyond that point.

Yeah, i was thinking about that, BUT, at the very beginning of the Milestone description it says SPECIFICALLY (in bold and italics) that it has to be workspace code, in only ONE method! what's up with that??? Squeaky Clean Squeakers

Workspace code can call other methods, too – in fact, that's always what it does, right? "All computation is triggered by methods." The point of the BF/IT statement was that you may not create any additional classes – pretend that you're a programmer who knows virtually no Squeak, and maybe not O-O, but is building a game with your API. Mark Guzdial

That makes sense to me. Jonathan Shaver of KAYRAD

Since there seems to be only so many different backgrounds does adding objects to a generic room background ie the office has a desk and a book shelf and the kitchen has a oven as "part" of the room make these different rooms? Thanks this would really help.

Robert Schierholz

A different "set" without changing walls/ceiling/floor would still constitute a "room" to me – we can be flexible with the definition of a "room." But since changing the ground color is so easy, that should probably change with each room. Think of yourself as a director – it's okay to be minimalist, but think about what best conveys the "scene" to the user/viewer. (BTW, Robert – what browser are you using? After you edited, all these extra LF's showed up in the page.) Mark Guzdial

For our 10 additional verbs, does everything in our world need to understand these verbs or can particular objects understand particluar verbs. For example, if we had a verb called peel, should everything know how to be peeled, or can the banana just know how to be peeled? What is the proper way to implement this and meet the requirements?

Gark Muzdial and Associates

It's perfectly reasonable to have verbs that are only understood by some objects. Not all messages are polymorphic, right? Mark Guzdial

I was using IE I have no idea what I did to cause the LF's sorry Robert Schierholz
Are we allowed to use the same objects but in different rooms or do we need ten DIFFERENT objects? -Nadia Dowla

'We'll execute your game by doing: AdventureDemo gameExample'

I'm confused on what this means. Is AdventureDemo an instance of our World
or main class and gameExample contains the workspace code?


We're trying to implement the 'voices' a.k.a. the "Speaker" but we have no idea(s) on how to slow down the talkers. They are sometimes too fast, and what they say is unhearable. Is this possible to remedify? Thanks, MotherSqueakers

When I am writing the workspace code and I try to save it, it tells me that the temp variable stack is too deep. It seems that this means that I have too many temporary variables declared. How can I get around this?
Matthew Roach

When I put the workspace code in a class method I'm getting an error something like this "Cannot write to read only text/file". Anyone know what this is?

you're pretty much hosed. get a fresh image and look in your changes file at the bottom for your most recent saves.
banky the hack of Ron Jeremy's Minions

I'm having the same problem as Matthew Roach: temp variable stack too deep. Does anyone know what the problem is? Nadia Tow Dowla

use multiple methods...see guzdial's posts above.
banky the hack of Ron Jeremy's Minions

gay islamic vampire slugs powered by holy indian baked beans
gay islamic vampire slugs powered by holy indian baked beans

Link to this Page