在 Windows 中,有一个用于 Flash 游戏的工具,名为作弊引擎它可以将进程加速/减速 X 量,使游戏中任务所需的时间比现实世界中更快或更慢。这对于基于时间的游戏特别有用,因为这些游戏需要您等待 X 量的时间才能完成一栋建筑、完成一次收获等……这也适用于您需要让它们运行得更慢以便您可以防御多个敌人(僵尸游戏等)的游戏,或者它们的难度取决于玩家完成某件事的速度的游戏。
但这不仅限于基于网络的 Flash 游戏。Cheat Engine 还可以加速/减慢其他游戏(Half-Life、Quake 3 等)。
有没有办法在 Ubuntu 中做到这一点?
这是速度黑客我指的是使用 Windows 中的“Cheat Engine”工具的选项,它实际上是 99.99% 的 Cheat Engine 用户使用 Cheat Engine 的选项:
我应该说明一下,我并不是在寻找一种每毫秒暂停该过程的方法(比如减慢 Firefox 或 Chrome 的速度而不是减慢 Flash 游戏的速度)。例如,减慢 Firefox 的速度是行不通的,因为它也会减慢其他所有的速度,所以它不会是一种速度黑客攻击,而是会减慢整个过程的速度,包括用户的所有操作。基本上一切都会一样,只是速度变慢了。加快进程也是一样。
我正在寻找一种方法来对基于 Web 的 Flash 游戏和/或 Wine 模拟游戏进行此操作。
答案1
简短回答,没有。没有用于进程调度的 2x 按钮。您能做的最好的事情就是使用 cgroups 来处理您感兴趣的任务,以牺牲另一个进程为代价获得更多的 CPU 时间。如果我不得不猜测,speedhack 之所以有效是因为它通过操纵 flash 运行时(或简称为虚拟机)来执行其工作。这并不是说它加速了程序,而是改变了整个 VM 所基于的基本参数。我想 Java 或 Python 之类的东西也可能实现同样的效果。
哦,好吧,我猜你得继续在 Windows 上玩 farmville 游戏了。真可惜。
答案2
这些可能有助于减缓进程,但不会加快进程......
1)SIGSTOP和SIGCONT:
该kill
命令可以向具有给定 pid 的进程发出一个STOP
和两个信号。我以前曾用它来“暂停”和“限制”python 脚本,它在这方面表现很好。CONT
下面是一个 bash 脚本示例(将相关进程的 PID 作为命令行参数传入):
PID=$1
while true; do
sleep 0.5
kill -s STOP $PID
sleep 0.5
kill -s CONT $PID
done
这些睡眠时间(以秒为单位)需要减少到更小的量以减少抖动,但更大的间隔使得测试更加明显。
一旦您对特定间隔感到满意,您就可以使用变量调整睡眠比例。
2)对于节流,另一种可能性是'cpulimit':
sudo apt-get install cpulimit
要将 Firefox 的 CPU 使用率限制为 30%:
cpulimit -e firefox -l 30
答案3
我建议几件事。如果它确实是 farmville/某种在网上玩的东西(正如 ppetraki 所建议的),我相信一条途径是通过 greymonkey 路线(它是一个允许运行所有基于 javascript 的脚本的平台,允许在浏览器/页面渲染的所有级别上进行更高级的调整。)。同样,我很快读完了所有其他答案,令人惊讶的是没有看到任何人提到 Winehttp://www.winehq.org/documentation。
更具体地说,如果普通的 Wine 无法工作(我能够让它工作,最好尝试 32 位),那么一切希望都不会破灭,因为这听起来像是 Wine 扩展/附加程序“Wine-Hacks”的完美候选者,它会提示用户安装满足特定要求等的各种软件(如果传统的 Wine 配置不起作用,这是一个非常简单的途径)。这是一个有趣的困境,重要的是要记住,Linux 通常为用户提供了一个更大的平台来定制和调整各个级别的各种进程/线程/等……但是,大量的阅读通常来自它。从较低层次的角度来看,如果游戏正在利用进程间通信,则可以调整套接字的速度('vmstat'/'top'/'ps'/'ss'命令只是Linux提供的一小部分),尽管它的学习曲线/易用性不会那么小,但这些工具是分析进程级活动/内存管理的开始。
但是查看您的图片,并亲自下载了该应用程序,了解了应用程序的工作原理,以及它正在读取内存位并扫描内存地址/等的事实......它避开了这样做,在低级上调整内存/进程间通信(但是沿着这条路线,您将创建自己的“Cheat-Engine”的黑客版本,可以很容易地用gdb(gcc-debugger,开发人员/安全工具,因为执行这些类型的任务是开发人员工作的常见部分,以更好地衡量应用程序的工作原理/其整体性能。,在更有限的范围内采取类似的行动)。你只是使用不同的工具来控制套接字级通信的内存/序列。同样,Wine 场景可以工作,我尝试了简单一下(但是,我不知道你玩的目标游戏是什么,哈哈!!)。
最后,为了让我们清楚,一种方法是重新优化 Linux 中的进程/进程线程(任务)/并使用实用程序/或调试器(已提及)定位进程间/套接字通信中使用的各种内存地址和位。然后,另一种更基本的方法是在非 Windows 环境中利用“Cheat-engine”本身的逻辑,通过将其与 Wine 一起安装,因为 Wine 运行应用程序,并在其中的进程/线程中管理它,因此就像程序在 Windows 本身中运行一样。我见过的所有 Ubuntu 特定发行版中都有 Wine 程序,“apt-get”/“aptitude”用于安装 Wine)。此外,另一个用于调试/调整基于 flash 的游戏/等的工具是 Flashbug(firebug 变体,就像 Greasemonkey 在 Mozilla 中使用一样)祝你好运,干杯!
答案4
我知道这是一个老问题,但我找到了一个可以改变程序运行速度的工具,至少在理论上是这样。很多东西似乎不受影响,或者帧速率会改变,但实际游戏速度不会改变。无论如何,它在这里:
https://github.com/evg-zhabotinsky/libspeedhack
预构建的二进制文件现已发布于https://github.com/evg-zhabotinsky/libspeedhack/releases/并且应该可以在大多数系统上使用。查看 README 了解如何使用该工具。我说的“有效”是指该工具本身,但可能仍然无法帮助您的特定游戏,如果是这样的话,那不太可能修复。