Post subject: TASing PC games: a TAS mod for No Quarter + further thoughts
Player (6)
Joined: 10/25/2009
Posts: 22
(May the mods forgive me for opening yet another PC TAS topic. I'm new here.) I decided to take a break from solving Kwirk and try something different: I created a TAS "mod" for a Windows mini-game (Cryptic Sea's "No Quarter: V-Sides", and specifically the "Hitlers Must Die" preview it contains). I've posted details and the TAS video itself on my website, so I'm not going to repost the same content here. Apologies for the horrible web design. Binaries aren't currently available because I have selfishly used a proprietary commercial hooking library. Perhaps I'll eventually rewrite it to remove that limitation. Anyway, this isn't as much of an achievement as it is a basic example demonstrating that TASing some PC games is possible to do in a clean, deterministic, legal way that doesn't require enormous overhead due to emulation. Surely, there are a lot of 'if's with this model - the TAS extension would have to manage all resources that are allocated/destroyed by the game during the course of a replay, such as heap objects, handles, video surfaces, etc. - however, as this example shows, this may not even be necessary. Another thing: there are a few popular game-oriented virtual machines such as Game Maker and Multimedia Fusion. Creating a generic TAS system for such a VM would allow TASing all games created with that system. This approach at TASing PC games has several advantages over the more generic ideas of using hardware-level virtualization software, such as VMware or QEMU. The first and obvious advantage is speed - there is no virtualization overhead. Save-states are large and contain memory that's not directly related to the game (loaded OS files, filesystem cache, etc. - most often even free memory is dumped as the VM doesn't understand the OS' memory management). Replays themselves could be unnecessarily large, as they'd have to contain detailed input from all input devices. Timing is another problem - the VM software couldn't understand game input frames, so you wouldn't have discrete "frames", each with its own input state, but rather have a continuous time range and you would place input events across it, and try to guess which points in this time range would affect the game over its previous "logic" frame, which I would imagine would be extremely tedious unless it is somehow magically automated. And don't forget about input delay - it does take a while for input to get propagated from the hardware all the way down to the game logic code, passing through multiple layers of BIOS/kernel/game code. So, I really think that my approach is The Way To Go. Obviously, there need to be some restrictions. My suggestions: 1) The parts of the TAS extension software directly related to TAS must be entirely open-source (it should be allowed to use closed-source but freely-available 3rd-party libraries, including compiler runtimes) 2) The TAS extension software must be buildable using freely-available tools 3) The TAS extension source code should have a high level of readability and maintainability (clean, commented code) 4) If reverse-engineering (decompilation, disassembly) was involved in the development of the TAS extension, it must be accompanied by a written permission from the game author/copyright holder (Note: using a hex editor or looking at the import table is not commonly considered as reverse-engineering. IANAL.) Thoughts?
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
I like the sound of this. Which Windows game to TAS first though?
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Player (6)
Joined: 10/25/2009
Posts: 22
Cave Story has been nominated. That, or Multimedia Fusion, because all of Nifflas' games are made with it. :D
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Yes, I was thinking along the lines of an older classic though, like The Incredible Machine 3.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
TASing The Incredible Machine? Nice joke. :P
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Skilled player (1327)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
I am hooked! This sounds cool. I guess this is a step to having TASes of modern PC games. :P I wish you good of the luck!
Player (150)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
This sounds rather promising, though I'm a tad worried about synchability between different computer set-ups. Have you done any tests to see if/how much that's an issue?
moozooh wrote:
TASing The Incredible Machine? Nice joke. :P
A playaround could be interesting. Also, dibs on Lyle in Cube Sector (another MMF game). I vow to make it have more categories than Super Metroid!
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.
Lex
Joined: 6/25/2007
Posts: 732
Location: Vancouver, British Columbia, Canada
Yeah, Multimedia Fusion 2 seems like it would be a good start, considering Within A Deep Forest, Knytt, Lyle In Cube Sector, and I Wanna Be The Guy are all very TAS-worthy games.
Player (150)
Joined: 11/27/2004
Posts: 688
Location: WA State, USA
A year or two ago I pretty much figured out the route for a Lyle in Cube Sector speedrun (any% w/savewarps). I never got around to making the run, but my estimate for an unassisted run was about 20 minutes. With tool-assistance I'm sure that sub-15 minutes is possible, meaning it's well within the site's attention span. :D Anyways, we should keep in mind that there is far more to PC gaming than freeware platformers. :P
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.
Skilled player (1327)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
*Cough* *Cough* Portal *Cough* *Cough*
Joined: 11/16/2009
Posts: 68
I'm pretty sure the Portal runs up on SDA are already technically TASes, since they make extensive use of scripts. Granted the tools are provided in the software, they are tool-assisted runs nonetheless.
Skilled player (1327)
Joined: 9/7/2007
Posts: 1354
Location: U.S.
Scripts are different than frame advance & save states. Although they are fast, they are not perfect.
Joined: 7/2/2007
Posts: 3960
They're still tool-assisted, just like fighting game combo videos made with programmable controllers are tool-assisted. The definition of tool-assistance is broader than the types of movies this site generally publishes.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
upthorn
He/Him
Emulator Coder, Active player (392)
Joined: 3/24/2006
Posts: 1802
Before too much work is done on this, I'd like to direct peoples' attentions to this topic. Which has similar goals and is already at a functional level.
How fleeting are all human passions compared with the massive continuity of ducks.