GitHub 仓库:<a href="https://github.com/ArcadeMakerSources/ArcadeMaker" rel="nofollow">https://github.com/ArcadeMakerSources/ArcadeMaker</a>
(首先,我想说我做这个项目是出于乐趣和挑战。我一直想创建自己的编程语言,这个项目没有商业目标或其他目的。)
这个项目是一个受 GameMaker 8 启发的 2D 游戏引擎(基于 MonoGame)。它包含了自己的 IDE(使用 WinForms 构建)和我自己编写的解释型编程语言。
语言——毫无疑问是项目中最大的挑战——是一种简单的动态类型语言。当我开始时,对如何构建这样的东西一无所知。我甚至不知道自己在做一个解释器;起初我称它为编译器。这是一个个人挑战,我想在不使用任何资源或教程的情况下搞清楚一切。我的心态基本上是:“我需要编写一个软件,它能够读取一个包含代码的文本文件,并执行文件中的指令。”
不知怎么的,我让它成功了。最开始,运行一个空循环计数到 100 万需要 7 秒。经过大量的性能优化和系统部分重建,现在同一台机器可以在 2-3 秒内运行一个 3000 万的循环。这个改进相当不错。
这门语言本身有点不寻常,我想分享一个我非常喜欢的小特性:循环计数器。
```
foreach item in ['a', 'b', 'c'] : counter c
{
println(c + ": " + item)
}
```
// 输出:
// 0: a
// 1: b
// 2: c
这不是一个复杂的特性,但非常实用。
这里有一个 YouTube 视频,展示了我使用这个引擎构建一个小游戏的过程。
无论如何,这段时间我几乎没有时间继续这个项目,所以我决定将其开源。我希望这里的人能觉得它有趣,并帮助将其变成真正的东西。我在寻找贡献者!
我知道现在有很多 AI 生成的项目被分享,所以请在假设这是其中之一之前,先快速看一下代码。我保证这段代码显然是由人类编写的。
欢迎任何反馈。
返回首页
最新
我下载了一门课程,但遇到了跟踪进度和记住停留位置的问题。与其坐下来完成课程,我反而找到了拖延的方法——于是我制作了一个工具,可以准确记录你在视频中的停留位置、你正在观看的视频和章节,并允许你做笔记和将视频添加到收藏夹。现在我可以回去观看课程了,我没有借口。这个应用是开源的,所以现在你也没有借口了。<a href="https://ckourse.com/" rel="nofollow">https://ckourse.com/</a>
最近四周我注意到,这个用户代理字符串在我支持的网站上变得异常活跃。<p>在过去的四周里,共有2000万次请求,平均每天约50万次,而且很多看起来像是在尝试“攻击”......<p>用户代理:Mozilla/5.0(兼容;Applebot-Extended/0.1;+http://www.apple.com/go/applebot)<p>例如:
/key.pem
/nginx_status
/.hermes/config.yaml
等等。