It's difficult to plan a route for reallyjoel's dad so it's taking a little longer to TAS than normal did. Although I'm pretty sure the optimal start involves killing Reaper Drone and Tetron in the first 3 seconds.
I would vote for simply allowing a bot that controls the input (and can decide when to input the keys) to be acceptable as part of the run. Such bot might be limited to having to input the exact same sequence each time, but simply decides when to input the next key (based on memory analysis). This would be subjective, and would require a level of technical skill from the TASer, but I'm sure in most cases someone can justify why their better run is in fact better.
I'm primarily a Java programmer, and I'm am fairly sure I can simply implement my own event manager, system clock, and the wait() method to get deterministic behavior.
Also I don't think that "reallyjoel's dad" difficulty was really ever expected to be beatable. Although it would be funny if it was.
I don't see why we would bother with that sort of thing when we can TAS games in the more usual way (which, incidentally, allows for bots to contribute to the input if the TASer wants to put in the large amount of extra effort to do so).
Regardless of whether it was expected to be beatable, I would be very surprised if it's impossible to beat the first room.
Okay, you asked for it: reallyjoelsdad.avi
Or maybe you didn't ask for it, but I felt a need to justify my previous post's assertion anyway. Again, it's just a test TAS, probably not very optimized.
EDIT: I would have edited that into the previous post, but got a site error when I tried to do that. But, apparently, editing this new post works just fine...
I mean this only in that there is no set hardware or configuration for PC games. Allowing a script to be part of the movie may allow for the movie to be playable on multiple systems, since you aren't aiming for fully controlling the environment. The "bot" would only define what a "frame" is.
One possible metric for determining how fast a game is played is by determining the number of times the game checked the input. This completely ignores lag though.
Also, love the vidoes they are quite entertaining. I didn't know that you level up by defeating bosses in that difficulty, which really helps. Normally I would suggest YouTubing these, but you would probably be flamed into oblivion for "cheating".
Edit...
I vote no, because you only beat the first room. Rumor has it the key to beating the second room is by using a super secret technique whose sequence is the first odd perfect number in base 4, where <- is 0, -> is 1, ^ is 2, and v is 3.
Allowing a script to be part of the movie may allow for the movie to be playable on multiple systems, since you aren't aiming for fully controlling the environment.
But I am aiming to fully control the environment, or at least, all parts of the environment that have any effect on the game logic of any games that are supported.
When you think about it, I must be controlling an awful lot of the environment already, because otherwise these movies wouldn't even sync reliably on my own computer due to tiny timing differences from disk or CPU cache contents or the OS running background processes at different times and causing changes to the game's randomness and such. And of course while recording, if the speed my computer runs the game at mattered at all, then I wouldn't have been able to use tools like frame advance and fast-forward without causing desyncs all over the place. As for the multithreading unpredictability issues I mentioned earlier, I have an option that completely turns off multithreading (only the main thread is allowed to be created) and the game still syncs the same with that option on (the same goes for Cave Story and Iji and probably many other games), so I'm confident that's a non-issue in this case too.
subanark wrote:
The "bot" would only define what a "frame" is.
Ah. I think what you're suggesting really isn't that different from what I'm already doing. But I'm trying to keep things simple, so the definition of what a frame is will be an automatic, built-in concept as far as I can make it, rather than some extra thing the TASer has to worry about creating.
MegaMari would be an awesome candidate for a TAS =)
I'm also interested in this, I'm pretty certain that a TH09.5 - Shoot the Bullet / TH12.5 - Double Spoiler TAS can be quite awesome under the right conditions (all scenes; and then either max bonuses or maybe even max score)
Even if it turns out not being good for a TAS, it would be a handy tool to plan runs ; the only tools we have at our disposal at the moment is slowdown and frame advance.... but no rewinding is possible and thus, no luck manipulation =/
Keep in mind that:
1) most of the scenes are pretty trivial;
2) in many cases, max score requires a lengthy setup to catch more bullets in the frame.
In regards to Touhou games, Perfect Cherry Blossom would likely benefit the most because its scoring system is the hardest to max out. Most runs by HS参謀 are pretty damn awesome, though. Fairy Wars would be nice as well.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Man, if this could work, I'd love to see some more PC game TASes.Can anyone say "I Wanna Be the Guy?"
IWBTG has the same problems as Kaizohacks. Near perfect play is required to even progress, so any TASing wouldn't be significantly faster than an otherwise perfect non-speedrun and rather dull.
I think the level of play required to merely progress in IWBTG is a lot further from perfection than that. And what little TASing I've done of it so far suggests that there are plenty of little unintended timesavers (things you're unlikely to see outside of a TAS because of how risky they are). Plus, there's enough going on in IWBTG that most viewers probably wouldn't find a quick movie of it dull.
No I don't think IWBTG would be a dull TAS, there are indeed many things one could do for entertainment. And many parts that could be optimized far beyond human possibilities.
subanark wrote:
I would vote for simply allowing a bot that controls the input (and can decide when to input the keys) to be acceptable as part of the run. Such bot might be limited to having to input the exact same sequence each time, but simply decides when to input the next key (based on memory analysis). This would be subjective, and would require a level of technical skill from the TASer, but I'm sure in most cases someone can justify why their better run is in fact better.
I have actually made something like this. But not by memory watching, but by watching the screen. Basically it holds a certain key to move, until a pixel turns a certain color, on which it hops to the next step. It was quite a long-dreaded script, but it could easily be written to a input-file, compressing all required data for the script.
I managed to clear a few screens using this technique, I haven't had it desync once. You can see it on youtube.com/cxgamer, sorry I can't link to the video, as my school network blocks it (no proxies, no vm's either).
Though obviously I wouldn't vote this being allowed, as this can't be a long-term solution.
I wish I had the programming skills to contribute to this awesome project, I'm learning as fast as I can. :P
Minesweeper Clone has timing to the thousandth of a second. I wonder how fast a bot could solve Minesweeper. I may try to make one, but I'm not good at programming and most downloadable bots abuse the the mine revealing glitch.
Update: I started working on this again a little. Sorry it's taking so long. I think I've finally solved the Iji desync issues (enemies had different randomness every playback of a movie file, but now it's consistent), so I'm moving on to other things (for example, I added OpenGL support for games like Tumiki Fighters, which is TASable now too).
Ferret Warlord wrote:
Oh my god.
would games such as the ones from Alpha Secret Games work?
a vid http://www.youtube.com/watch?v=DM1lTWL6ylg
they're pretty simple I think, downloadables with an .exe to play them IIRC
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
Woah. I was just about to ask a couple days ago if this was still being worked on.
Keep up the good work.
Do Multimedia Fusion games (read: Lyle in Cube Sector) work?
Nach wrote:
I also used to wake up every morning, open my curtains, and see the twin towers. And then one day, wasn't able to anymore, I'll never forget that.
Do Multimedia Fusion games (read: Lyle in Cube Sector) work?
They didn't, but now Lyle in Cube Sector works.
EDIT: oops, except it's missing video output in AVI capture, shouldn't be hard but I still need to add that.
EDIT2: added, it's fully supported now. The v1.04 version at least, and some other MMF games like IWBTG and Legend of Princess.
One more time... does everyone still like the name "Hourglass"? The main thing I didn't like about that name was how ubiquitous a word it is (hard to search for, and there must be programs already called that). Right now it's still called winTASer, which I don't think is such a bad name really, but I could see it switching to Hourglass, or something else if anyone has any new ideas on the name.
Rolanmen1 wrote:
Most likely. At least, a (somewhat old?) demo version I tried worked quite well.
Xarthok wrote:
Hey, would ElastoMania work on this?
It doesn't yet. That game apparently does all of its drawing by locking the frontbuffer and setting pixels in a palettized display mode, which fails to fit the pattern of other games I'm supporting in at least 3 different ways. I don't think there would be anything truly difficult about adding support for it, though. (Just a little time-consuming.)
Phallosvogel wrote:
Well HOW would this work anyway?
It works very similarly to kkapture (except trying to do a lot more than just recording), combined with kind of a debugger for maintaining interactive control over and getting feedback from the game. Movie input is recorded at a fixed framerate that you have to specify before creating the movie, but if you choose a framerate that's higher than the natural speed of the game, "lag frames" will automatically be inserted to compensate, so even games that are supposed to run at weird or variable framerates are supported. Like in re-recording emulators, there is built-in AVI recording, and you could record to AVI while playing the game if you want to but it makes more sense to wait until movie playback to do that. Pause and frame advance are implemented by suspending threads, and controlling timing. Fast-forward is implemented by simply switching off delays while continuing to track them. Savestates are implemented by reading from or writing to all of the game process's writable RAM.
Phallosvogel wrote:
What would the interface look like?
The interface has two parts. The first part is the TASer program, which is basically just a movie play/record dialog with some menu options and the ability to select and launch a game. The second part of the interface is what you actually use to do TASing, which is the game itself after it starts up, i.e. there is no special interface except for the fact that you can press various hotkeys in the game (fast-forward, frame advance, pause/unpause, savestate/loadstate 1-10, and toggle movie read-only). The game is (optionally) forced to run inside a window if it's a fullscreen game, so that you can still see the TASer program in the background, which continues updating its frame count display and stuff while the game is running (and can still be used to configure options or initiate actions such as starting an AVI capture).
The TASer program itself currently looks like this:
Phallosvogel wrote:
And when do you think we could see some more test movies or an early alpha build?
The compatibility list I've been neglecting maintaining looks like this right now:
1: Timing
2: Stability
3: Pause and Frame Advance
4: Savestates
5: Playback Sync
6: AVI Video recording
7: AVI Audio capture
1 2 3 4 5 6 7
Cave Story: good good good good good good good !!
La-Mulana: good good good good good good good !!
Ika-Chan: good good good good good good good !!
Eversion: good ok good good good good good !!
Bunny Must Die: good ok good good good good good !!
Streets of Rage Remake: ok good good good good good good !!
MegaMari: ok ok good good good good good !!
Super Marisa Land: ok ok good ok good good good !!
Iji: ok ok good ok good good good !!
Tumiki Fighters: ok ok good ok good ok good !!
Rescue: The Beagles: good good? good good? good good good !!
RotateGear: ok? good? good good good good good !!
Hero Core: ok ok good good good good good !!
Perfect Cherry Blossom: ok? ok? good ok? good? good good !
Rosenkreuzstilette: ok? ok? good ok ok? good good !
Eternal Daughter: ok ok good ok ok? ok BAD
Lyle in Cube Sector: good ok? good ok? ok? NO good?
Within a Deep Forest: ok? ok ok ok BAD? NO good
I Wanna Be The Guy: ok? ok ok good good? NO good
!! == Fully TASable (criteria: everything is "ok" or better, and playback sync must be confirmed "good")
! == Possibly TASable (criteria: everything except stability is "ok" or better)
? == item not fully tested
So, uh, it probably doesn't have very good compatibility compared to regular emulators for other platforms, and there are many games that almost but don't quite work yet so it's tempting to keep expanding the list of compatible games, but I guess I should make an initial release sometime sort-of soon because I'd like to get to the point where somebody else than me would be willing to make contributions to the code.
The main things preventing a release right now are kind of stupid things such as the hotkeys not being configurable yet and the movie file format not storing some things that can affect movie sync and the source code having lots of commented-out temporary testing stuff that should be cleaned up. (That, and some of the recent changes I've made need to be verified on more computers, in case some things need to be reworked to be more compatible.)