Posts for Derakon


Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Any reason why you can't deathwarp after retrieving Wednesday from the freezer? That's an awfully long walk back. Otherwise, looked good!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
I do wonder why you have that long glide in level 2. Wouldn't it have been faster to land and then run to take advantage of better diagonal movement? Aside from that and the inconsistent health management, this looked good! I played the hell out of this game back in the day, so this was a nice kick in the nostalgia. Incidentally, the camera oddities are because Kurt (the protagonist) is pre-rendered, like the karts in Mario Kart 64. Compare him to Bones (the six-legged dog). A free camera would make this really bloody obvious; as it is it still stands out when you move the camera up or down. Thanks for the encode, Spikestuff!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Incidentally, since I haven't seen it said yet, thank you, dwangoAC, for spearheading this effort! I know that many other people contributed a lot of time, effort, and resources into this project, but you took the lead to make certain that it went as smoothly as possible. Were there things that could have been improved? Absolutely. Was it nonetheless a fantastic showpiece? Also absolutely. If you want to keep AGDQ as a showpiece for "major advances" in TASing and experimenting with the medium, maybe SGDQ could be used for simply running some entertaining pre-existing TASes? Also, a random idea: code up an emulator so a speedrunner could play against a TAS ghost. This would of course have to be game-specific and would work best in a game with regular checkpoints (like door transitions in Super Metroid, say). It'd also be wildly unfair. :) But it'd be a neat way to show off the differences between TAS play and highly-skilled human play.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
MUGG wrote:
It's not really worth solving them yourself except as an exercise.
Well, for me this is a good exercise to see if I'm capable of realizing my plans. Google has been my only help and even so I'm making satisfying progress and I don't see unsolvable problems lying ahead yet.
Hey, that's great, and I didn't mean to demean the "exercise" aspect of it. You absolutely will learn a lot in trying to implement your own engine. It's just a question of if you're more process-oriented (i.e. "I'm writing this game because I want to write a game") or goal-oriented ("I'm writing this game because I want to have a game"). A goal-oriented developer would be trying to avoid duplicate effort wherever reasonable, but that's much less critical for a process-oriented one. And I know lots of process-oriented developers (and was one myself for quite some time). There's a lot of satisfaction to be had in being able to point at something and say "I wrote all of that". It just takes a hell of a lot longer that way. Kind of like the difference between building a house solely with handtools and raw lumber vs. building it with power tools, prefabricated fittings, precisely-dimensioned lumber, etc.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Honestly, if you want to make games, download Unity and go through some of the tutorials. Unity's a professional-level game engine, but it's free (for any developer making less than $100k/year from their Unity products, which I guarantee will include you for the foreseeable future) and has a ton of community support. There's a lot of really hard problems in game development that have been solved a million times before. It's not really worth solving them yourself except as an exercise. Here I'm talking about stuff like resource management, physics, input handling, 3D scenes, animations, etc. etc. etc. I made my own 2D sprite-based engine once. It took me months. If I'd used a full game engine (as opposed to the SDL, a.k.a. PyGame, which is what I used), I could have spent that time on content and maybe actually finished my project.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
You could do a livestream of TASes with commentary, but in practice you'd need to get a lot of different commentators since nobody knows every game to the degree needed to give good commentary. And the easiest way to do that would be to just have everyone pre-record their commentary. Which would be a great resource to have, mind, and I'm all for it, but it wouldn't really justify the "marathon" format -- why not just make the commentary available online with the runs?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
In AGDQ-related news, albeit not TASBot-related news, the SMB3 runner managed to pull off the wrong-warp glitch in the spare minutes he had after finishing the warpless run. First time I've seen that done in realtime, and he got it on his first try.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Congrats! This is great for the site's ease of use, since many people would much rather watch a stream in a webpage than download a video and play it off of their computer (even though they get better quality from the download...).
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
MUGG wrote:
thanks but
External Link Disallowed You're seeing this message because it appears that you're linking from an external site directly to one of the text files stored at GameFAQs. We allow other sites to link to any of our HTML pages, including FAQs, but not directly to our text files themselves.
Copy the link, open a new browser window, and paste the link into the URL bar. This removes the referer [sic] tag from the page request, which is what websites use to detect such hotlinking. It's possible you'll need to do a force-refresh to get your browser to actually serve up the new content instead of a cached copy of the "sorry no hotlinking" page.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Is it really worth using "contains speed/entertainment tradeoffs" for single-frame differences? Especially since, as I understand it, taking advantage of those differences would require pausing the game, which costs more than a second each time? Usually that tag is used for when there are significant (i.e. readily-noticeable at normal speed) detours from "optimal" play specifically for purposes of entertainment.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Post subject: Re: Award Winning, seriously
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Nach wrote:
dwangoAC: I want you to make me a screensaver of this run, it's perfect.
I could actually believe that an RNG loop could be set up with this game where, after awhile, the input could be looped indefinitely to make a never-ending TAS.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Sorry for the late response on this; I only just got around to finishing watching. In the vertical scrolling section in the last level (28:07 in the YouTube encode), you stand on some of those crumbling blocks and it seems to cause an awful lot of lag. Could this be avoided by using an alternate descent, or is the lag just a coincidence and nothing to do with the crumbling blocks? If it instead has to do with other activity, maybe killing the skull enemies could help reduce lag there? There's also one last jump right at the end of the game that looks superfluous, like input could maybe have ended slightly earlier. I may be misunderstanding the sequence of events there though. Otherwise this run looked decent, but I have to say that the NES Castlevanias limit your movement options so much that I'm not really a fan of taking away more opportunities for damage-boosting, let alone the more varied protagonists that the various other branches allow for. That's more of an entertainment complaint than an execution one though.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
A proper emulator will emulate lag just like on the console. I think at this point bsnes, and any emulator based on it, is exactly comparable to an actual SNES in terms of the amount of time a run takes. That includes the framerate. SNES9x is not as accurate -- it is close for some games, but has subtle timing variations for many. ZSNES should not be trusted for anything.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Gonna have to agree with the consensus. This is great entertainment for the first five minutes or so; too bad it goes on for another fifteen after that. Nice work though, dwangoAC! Thanks for making the TAS. And thanks for the encode, Spikestuff.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
It could be something as simple as the crush block's trigger box being narrow enough that a fast-moving ball can just barely skip over the entire box if perfectly aligned (e.g. box is 5px wide, ball is moving at 6px/tick). That's the simplest potential explanation I can think of for why it usually triggers but sometimes doesn't -- though of course there could be any number of other explanations.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
GHNeko wrote:
Razor_ua wrote:
I feel that this movie is entertaining and boring at the same time. Magic.
For the most part I feel the same. I lean towards yes on the aspect that the normal levels were interesting to watch, but somehow it just do it all the way for me. Maybe because I'm currently more enthralled by Sonic 2 Battle Race
This video is amazing. Thanks for linking it!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
I don't really have anything concrete to add, but I want to wish you good luck with your emulator! Seems like your head is in the right space for this kind of work. :)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
#2 (the middle one) IMO.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
You'll probably want to set a breakpoint that triggers when the vitality memory is read, so you can see what bits of assembly code access it. Ideally there'd be some code that looks like
if (some value compares to vitality):
  increase vitality
Then you'd be able to figure out a) what the comparison operator is, and b) what that "some value" is, and possibly where it comes from. However, it's entirely possible that the rule for gaining vitality is something simple like "if you lose a lot of HP and a random number is passed, then gain vitality". In other words, the vitality number might not be used directly in a comparison anywhere. This would be somewhat consistent with other behaviors in FF2 -- for example, Agility isn't looked at directly for determining agility gains; the game only cares about your evasion score. So you'd probably be best off setting a breakpoint on when the vitality value is modified, and then trace backwards from there to try to figure out what the rules for modifying it are.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Ehh, the special stages really didn't feel tool-assisted. I mean, I know there's limited opportunities to show stuff off in what is effectively an autoscroller, but the degree of precision shown is definitely not superhuman. The other stages were okay, I guess, and it's nice to see the unusual attributes of the vs. mode (e.g. the monitors that switch the two players when activated).
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
purplehelmet wrote:
To the point, I am engineering several things to be accessed early through TAS methods only. What I need to know is in regards to the wave beam room and the jumping through ceilings glitch. The resource page says that horizontal platforms thinner than a full block can be passed through simply by jumping straight up through them if the vertical speed is sufficient. Is it possible to enter the wave beam room from the bottom door, run under the spikes and jump up the platforms on the very far right of the room with enough vertical speed to pass through the ceiling? If that works, that would put samus directly in front of the door to the wave beam. I realize that would be redundant in a normal speedrun, but it would be very useful for a certain route through my project.
I don't remember that part of the map super-well, so I looked up the full tile map of the game. Those don't look like half-height tiles to me. The ones you can glitch through are things like the blue platforms in the old Tourian escape shaft. They aren't very common; most platforms in the game are at least a full tile tall.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
WST wrote:
Just for your interest, here is a TAS of a hack of such kind, made by feeuzz. As you can see, even changed layouts don’t prevent finding huge shortcuts.
Cripes, who decided it'd be a bright idea to desaturate all the colors and replace every green with puke-brown? This is ugly.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Radiant wrote:
So they basically implemented SMW as an SMB3 hack? That's pretty impressive!
There's a bunch of references to other Super Mario games too (SMB1, SMB2, SML, etc.). 2-4 with the Bob-ombs has a bit where you run past one bob-omb gun (which has just dispensed a bob-omb), go to a second one, wait for it to dispense a bob-omb, and then kill it and wait for its timer. You could have saved a lot of time here by taking the first bob-omb, so its timer would be ticking while you ran to the wall you needed to blow up. I didn't watch the entire run, largely because of the badly-implemented music, so I'm not voting, but it seems clear there's room for improvement here.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
Nach wrote:
The way RAM works, there is a pattern to initialization, some bits will always mirror or oppose the same other bits at each initialization time. You don't need to prove the state in question happened in one in a million power ups, you need to show the lines in the RAM is connected in such a way that the state you've chosen doesn't violate any of the relationships that require mirror and opposition between all the bits in the state. Edit: Alternatively, you can show that the game in question after decompiling it (or similar) only happens to look at the bits in question that you're setting, so we can ignore researching the others bits. Then you simply need to prove the validity of the state of the bits you're setting in their relationships to each other and their ability to be 0 or 1 randomly.
Okay, thank you for the clarified ruleset. Not that this is ever likely to be personally relevant, but it's good to know that there's a sensible policy in place. :)
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced Forum User
Joined: 7/2/2007
Posts: 3960
A dramatic reading of turnbyturn.txt would be a fantastic wasteuse of AGDQ time.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.