问题标签 [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.

0 投票
1 回答
465 浏览

c++ - 什么对演示场景大小限制有影响?

所以我想做一个小的(64k)演示——没什么特别令人印象深刻的,只是为了编码体验。我一直在想,字节数到底是什么?例如,一旦我运行了一个简单的演示引擎,我就可以将 Lua 作为一种脚本语言嵌入,但是由于几乎每台 *nix 计算机上都有 python,我可以免费使用它的解释器吗?

有些人可能会争辩说,这不符合演示场景的精神,但我确实认为这算作每一个字节都挤奶。另外,Lua 是 50k,我不想编写更小的自定义解释器(这将是错误的)。

0 投票
1 回答
13341 浏览

demoscene - 创建演示场景的教程

语境:

  • 观看:http ://www.youtube.com/watch?v=AWcbj7ksqwE
  • 我熟悉 OpenGL / GLSL / C++ / C
  • 我做了一些音频编程。

    暂时不要介意将其压缩到 64k 或 4k。

    我什至不知道如何在程序上合成类似上述演示的东西。

问题:

我意识到演示场景有点像地下魔法。但是,是否有任何关于创建其中之一的好的教程/演练?就像是:

“了解 OpenGL / GLSL / C++ / C 的傻瓜演示场景”

我也意识到有一些工具包旨在压缩代码——但对我来说压缩目前并不重要。我很乐意学习如何创建这样的东西。

简洁的问题:

任何人都可以建议一个关于逐步创建演示场景的好教程/演练,以便具有足够技术背景的人了解各个步骤(但无法看到整个画面)。

谢谢。

0 投票
0 回答
786 浏览

c++ - 如何在 Visual C++ 中创建小型 exe

我需要创建小于 64KB 的 exe 文件。在以前的项目中,我能够通过使用 crinkler 而不使用任何类或 std 库来完成 4KB。我正在使用 Visual Studio Express 2012。

在我目前的项目中,我经常使用类,但我想使用 crinkler。我收到类似的错误

错误 1 ​​错误 LNK: 找不到符号 '??3@YAXPAX@Z'

我正在谷歌搜索解决方案。这里有人写信不要使用 std,但我没有使用命名空间 std 中的任何东西。

有没有一种特殊的方法可以让它与类一起工作?

0 投票
5 回答
1401 浏览

c++ - 演示制作者如何获得超小文件大小?

当我在 youtube 上观看 demoscene 视频时,作者经常吹嘘他们的文件大小是 64kb 或更小,有些只有 4kb。当我用 C++ 编译一个非常基本的程序时,可执行文件总是至少 90kb 左右。这些演示完全是用汇编编写的吗?据我了解,demomakers 也使用了 c/c++。

0 投票
1 回答
144 浏览

c++ - 为什么与 Direct X 链接会大大增加我的程序大小?

我需要制作一个具有以下要求的程序:

  • 独立(无需安装)
  • 针对尺寸进行了优化
  • Windows XP 兼容

问题在于,例如添加#include <d3dx9.h>和使用单个函数会使可执行文件大小增加 370kb。

有什么方法/工具,所以如果我只使用库的几个函数,它不会完全链接到可执行文件中?

我尝试了以下但没有成功

  • 发布模式
  • 整个程序优化
  • 最小化尺寸 (/O1)
  • 偏爱小代码(/Os)
  • /选择:参考
  • /选择:ICF
  • 使用链接时间码生成 (/LTCG)

这是测试代码(我使用的是 2004 年 10 月的 d3dx 版本,它允许在此处找到静态链接https://github.com/kavika13/jumpmanzero-thirdparty

注意:应该注意的是,使用同一个库的更多功能会增加相同的 ~370Kb。

0 投票
1 回答
194 浏览

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.

0 投票
2 回答
2345 浏览

python - 如何使用改进的 DFS 算法遍历循环有向图

概述

我试图弄清楚如何使用某种 DFS 迭代算法遍历有向循环图。这是我目前实现的一个小 mcve 版本(它不处理循环):

上面的代码正在测试几个案例,第一个是下图的某种表示:

在此处输入图像描述

第二种是一张图包含一个“无限”循环的最简单情况{a->b, b->a}

要求

  • 不会存在诸如“无限循环”之类的东西,假设当找到一个“无限循环”时,将有一个最大阈值(全局变量)来指示何时停止围绕那些“伪无限循环”循环
  • 所有图形节点都能够创建循环,但将存在一个名为的特殊节点Repeat,您可以在其中指示围绕循环循环的迭代次数
  • 我发布的上述 mcve 是遍历算法的迭代版本,它不知道如何处理循环图。理想情况下,解决方案也是迭代的,但如果存在更好的递归解决方案,那就太好了
  • 我们在这里谈论的数据结构不应该被称为“有向无环图”,因为在这种情况下,每个节点都有其子节点,并且在图中节点连接没有顺序。
  • 一切都可以连接到编辑器中的任何东西。您将能够执行任何块组合,唯一的限制是执行计数器,如果您进行无休止的循环或过多的迭代,它将溢出。
  • 该算法将保留节点的方法执行的开始/中间/之后,类似于上面的代码片段

问题

谁能提供某种知道如何遍历无限/有限循环的解决方案?

参考

如果此时问题还不清楚,你可以在这篇文章中阅读更多关于这个问题的内容,整个想法将使用遍历算法来实现类似文章中所示的工具。

这是一个屏幕截图,显示了这种数据结构的全部功能,我想弄清楚如何遍历和运行:

在此处输入图像描述