问题标签 [demoscene]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 什么对演示场景大小限制有影响?
所以我想做一个小的(64k)演示——没什么特别令人印象深刻的,只是为了编码体验。我一直在想,字节数到底是什么?例如,一旦我运行了一个简单的演示引擎,我就可以将 Lua 作为一种脚本语言嵌入,但是由于几乎每台 *nix 计算机上都有 python,我可以免费使用它的解释器吗?
有些人可能会争辩说,这不符合演示场景的精神,但我确实认为这算作每一个字节都挤奶。另外,Lua 是 50k,我不想编写更小的自定义解释器(这将是错误的)。
demoscene - 创建演示场景的教程
语境:
- 观看:http ://www.youtube.com/watch?v=AWcbj7ksqwE
- 我熟悉 OpenGL / GLSL / C++ / C
我做了一些音频编程。
暂时不要介意将其压缩到 64k 或 4k。
我什至不知道如何在程序上合成类似上述演示的东西。
问题:
我意识到演示场景有点像地下魔法。但是,是否有任何关于创建其中之一的好的教程/演练?就像是:
“了解 OpenGL / GLSL / C++ / C 的傻瓜演示场景”
我也意识到有一些工具包旨在压缩代码——但对我来说压缩目前并不重要。我很乐意学习如何创建这样的东西。
简洁的问题:
任何人都可以建议一个关于逐步创建演示场景的好教程/演练,以便具有足够技术背景的人了解各个步骤(但无法看到整个画面)。
谢谢。
c++ - 如何在 Visual C++ 中创建小型 exe
我需要创建小于 64KB 的 exe 文件。在以前的项目中,我能够通过使用 crinkler 而不使用任何类或 std 库来完成 4KB。我正在使用 Visual Studio Express 2012。
在我目前的项目中,我经常使用类,但我想使用 crinkler。我收到类似的错误
错误 1 错误 LNK: 找不到符号 '??3@YAXPAX@Z'
我正在谷歌搜索解决方案。这里有人写信不要使用 std,但我没有使用命名空间 std 中的任何东西。
有没有一种特殊的方法可以让它与类一起工作?
c++ - 演示制作者如何获得超小文件大小?
当我在 youtube 上观看 demoscene 视频时,作者经常吹嘘他们的文件大小是 64kb 或更小,有些只有 4kb。当我用 C++ 编译一个非常基本的程序时,可执行文件总是至少 90kb 左右。这些演示完全是用汇编编写的吗?据我了解,demomakers 也使用了 c/c++。
c++ - 为什么与 Direct X 链接会大大增加我的程序大小?
我需要制作一个具有以下要求的程序:
- 独立(无需安装)
- 针对尺寸进行了优化
- Windows XP 兼容
问题在于,例如添加#include <d3dx9.h>
和使用单个函数会使可执行文件大小增加 370kb。
有什么方法/工具,所以如果我只使用库的几个函数,它不会完全链接到可执行文件中?
我尝试了以下但没有成功
- 发布模式
- 整个程序优化
- 最小化尺寸 (/O1)
- 偏爱小代码(/Os)
- /选择:参考
- /选择:ICF
- 使用链接时间码生成 (/LTCG)
这是测试代码(我使用的是 2004 年 10 月的 d3dx 版本,它允许在此处找到静态链接https://github.com/kavika13/jumpmanzero-thirdparty)
注意:应该注意的是,使用同一个库的更多功能会增加相同的 ~370Kb。
c - 使用 ld 手动链接 SDL/openGL 应用程序
我正在尝试为演示场景比赛创建一个最小尺寸的可执行文件。我试图通过自己链接来最小化可执行文件的大小。
这是我的最小 main.c,取自http://www.int21.de/linux4k/它在屏幕上绘制了一个白色三角形:
我使用void _start()
而不是int main()
,因为我不想使用 C 运行时。这是我的构建命令(我的机器运行的是 Ubuntu Linux):
程序在 SDL_SetVideoMode 上崩溃。gdb 报告:
怎么了?如果我void _start()
改为int main()
,并用 编译整个东西gcc main.c -o main -lSDL -lGL
,它工作得很好。当我使用ldd
.
python - 如何使用改进的 DFS 算法遍历循环有向图
概述
我试图弄清楚如何使用某种 DFS 迭代算法遍历有向循环图。这是我目前实现的一个小 mcve 版本(它不处理循环):
上面的代码正在测试几个案例,第一个是下图的某种表示:
第二种是一张图包含一个“无限”循环的最简单情况{a->b, b->a}
要求
- 不会存在诸如“无限循环”之类的东西,假设当找到一个“无限循环”时,将有一个最大阈值(全局变量)来指示何时停止围绕那些“伪无限循环”循环
- 所有图形节点都能够创建循环,但将存在一个名为的特殊节点
Repeat
,您可以在其中指示围绕循环循环的迭代次数 - 我发布的上述 mcve 是遍历算法的迭代版本,它不知道如何处理循环图。理想情况下,解决方案也是迭代的,但如果存在更好的递归解决方案,那就太好了
- 我们在这里谈论的数据结构不应该被称为“有向无环图”,因为在这种情况下,每个节点都有其子节点,并且在图中节点连接没有顺序。
- 一切都可以连接到编辑器中的任何东西。您将能够执行任何块组合,唯一的限制是执行计数器,如果您进行无休止的循环或过多的迭代,它将溢出。
- 该算法将保留节点的方法执行的开始/中间/之后,类似于上面的代码片段
问题
谁能提供某种知道如何遍历无限/有限循环的解决方案?
参考
如果此时问题还不清楚,你可以在这篇文章中阅读更多关于这个问题的内容,整个想法将使用遍历算法来实现类似文章中所示的工具。
这是一个屏幕截图,显示了这种数据结构的全部功能,我想弄清楚如何遍历和运行: