Posts for ntclark

Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
It sounds like a pretty cool run to me. I love runs that make me wonder wtf just happened.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
Loved the run. I was particularly surprised by the use of the grapple beam to damage boost out of the super missile room in the ghost ship. Being surprised is what makes TASes great! I can't vote, but would give this a hearty yes.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
And where are all malls?
There's at least one in White Plains (between NYC and Yorktown). Malls take up a lot of space, and space costs a lot in Manhattan, so you typically don't see them there. This is the exception rather than the rule, as all other US cities I can think of have large malls.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
Overall, the social atmosphere seems very friendly.
I'm still laughing about this from the last page! I've lived in New York, California, Texas, Georgia, Michigan, and visited most of the other states. New Yorkers are easily the meanest people in the country.
---- I feel that as a tourist, I should be doing all sorts of things, visiting all kinds of places, but I don't like any of that. Yet, if I don't do that, something inside me is nagging to me that I'm wasting an once-in-a-lifetime opportunity.
That's not the right attitude. Just have as much fun as you can in whatever way you enjoy most. Some things I liked in NY: - Museum of Modern Art (MoMA) is great - China town - Yankees game - Play chess at Washington Square Park - Wander the galleries in soho - Get some New York style pizza - Sit in a cafe all day near NYU and people watch/read a book - Visit Strand book store (828 broadway) - Check out a concert; lots of good underground and mainstream music venues there. Even if you've never heard of the band, just finding a random cheap show can be fun. - Brooklyn Zoo - Museum of Natural History
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
amaurea wrote:
ntclark: I don't get how this dynamic programming stuff is going to help. How would you use that to solve the first 10 seconds of super mario bros. 1, for example?
A Metroid-style game is a better example. Let's say you have 100 rooms in the game, each room takes ~4 seconds to get through, and the optimal path must go through 200 rooms. You might brute force each room individually using a smart branch-and-bound algorithm (i.e., using alpha-beta pruning, memoization, etc.) testing roughly 100 rooms * (2^8 inputs) ^ (4 s * 60 fps / 16 smartness-factor) = 1.33e38 possibilities. Then the collection of optimal rooms can be combined to find the optimal 200 room path through the game using a shortest path graph algorithm (e.g., floyd-warshall). Compare to a brute forcing of the entire game: (2^8 inputs)^(4 s * 60 fps * 200 rooms) = 256^384000 possibilities. Now clearly the dynamic programming approach is still not close to feasible, however, if we start making other assumptions, such as the optimal 4s second path through a room is composed of optimal 1 second paths, and ignore input combinations with start and select, we can reduce that to 100 rooms * 4 segments/room * (2^6 inputs) ^ (1s * 60fps / 16) = 1.4e15. If testing each of those combinations took 1 million cycles, then a quad-core 2 GHz chip would be done in ~3 days. The assumption we've made here is that an optimal run of the whole game will consist of optimal runs of subsections of the game. The tradeoff is that the subsections have to be chosen small to prevent exponential explosion, but large enough to allow for local minima to be overcome. Techniques like this would never work for an entire RPGs, where local minima take forever to be overcome (e.g., I have to buy a potion 18 minutes before I need it (unless you explicitly define buying a potion as one of the primary goals of the path before it's needed)), but would work great for certain platformers (e.g., contra).
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
These movies are great, amaurea. Thanks for making them!
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
moozooh wrote:
It's important to remember that "an optimal 10 second sequence will also be optimal in the first 5 seconds" isn't equal to "if you break the task into two segments 5 seconds each, together they will be equal to the optimal 10 second segment". In other words, if the first 5 second segment has a consequence in the second, the result will likely be suboptimal as a whole, which is pretty much the only reason there is little point in large-scale scripting as opposed to doing most of it by hand.
Right, which is exactly why you should use dynamic programming. If the optimal 10 second version always contains the optimal 5 seconds, then a simple greedy algorithm will work. If it may contain the optimal 5 seconds, then you use dynamic programming. The whole idea with dynamic programming is that you break the overall problem into subproblems, which are easily solved optimally, and then combine the subproblems (which may be locally suboptimal) into a globally optimal solution.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
amaurea wrote:
The NES has 8 binary inputs, which are read 60 times per second. If the shortest way through a game is 10 s long, a brute force search would need 8^600 tries, which is about 10^542 tries.
Aside from moozoh's great point about the length of the sequence, and the number of useful inputs being far less than you assumed, most video games exhibit optimal substructure over any significant period of time (i.e., an optimal 10 second sequence will also be optimal in the first 5 seconds). Optimal substructure can be leveraged by using dynamic programming to make the problem polynomial over the length of the input sequence, instead of exponential, as you assumed. If I were to hazard a guess, I think brute forcing a game with dynamic programming is probably close to feasible on current machines.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
If they are stored as floating point numbers, they can't overflow, they just get less and less precise. And I'm not sure but I think fixed-point doesn't overflow either.
Not quite. All finite length binary representations overflow (floating point, fixed point, etc.). The intuition is that if you have N bits to represent a number, there are only 2^N different numbers you can represent, and there is always some number bigger than all 2^N possibilities. That's overflow. What actually happens when the number overflows in a game is subject to hardware and software implementation.
Experienced Forum User
Joined: 5/9/2008
Posts: 35
Location: USA
Yrr, that armor fight is sweet... One minor suggestion for the WIP: it looks as though you are turbo-ing through the dialog, dropping frames occasionally. Very entertaining, regardless!