大家好,这是我过去几周一直在努力 hack 的项目,我觉得它现在已经足够成熟可以做个小小的公告。该项目完全开源,且免费用于任何商业用途(Apache 2.0 / MIT 许可证)。
https://reddit.com/link/1xis3xo/video/e5bps6yj9gyh1/player
Repo: https://github.com/VagabondTech/smokescreen
Browser demo: https://vagabondtech.github.io/smokescreen/
Full disclosure: the project is heavily AI-assisted, so if that's an issue for you, I'm sorry.
重要提示:该项目大量依赖 AI 辅助,如果这对你来说是个问题,我很抱歉。
For what it's worth, I've been a software developer for around 12 years now and this project is something I've had in mind where I wanted to specifically try to venture into a field that's totally out of my comfort zone (in order to see how far leveraging a frontier model could get me). As such, I could really use any feedback about what I can do to make the library easier to use or more useful and/or if there are any confusing parts about the API. Any pro tips in the realm of Bevy, Rust & Crate packages would be much appreciated! I am very new to this ecosystem.
值得一提的是,我已经作为软件开发者大约12年了,而这份项目是我想专门尝试进入完全超出我的舒适区的领域(为了看看利用前沿模型能走多远)。因此,我很欢迎任何关于如何让库更易用、更实用的反馈,或者 API 中任何让人困惑的地方。关于 Bevy、Rust 与 Crate 包的任何专业技巧都非常感谢!我对这个生态还非常陌生。
These are the main focal points of this project:
以下是本项目的主要关注点:
Performance
I have tried my best to make this library as performant and optimised as possible, this means optimisation on the client side (both CPU and GPU processes) as well as the serverside CPU processes. Part of the experiment behind this library was for me to see if it would be possible for me to put something together with the help of AI that actually has decent performance, I believe that this has been achieved from my naive point of view. If anyone has criticism regarding the performance or where you feel things are too inefficient, I'd really appreciate any critique on this front!
性能:我尽力让该库尽可能高性能、优化。这意味着在客户端(CPU 和 GPU 进程)以及服务器端 CPU 进程上进行优化。该库背后的实验之一是看看我能否借助 AI 来构建出实际具有良好性能的东西,在我看来这已经实现了。如果您对性能有批评或觉得某些地方过于低效,我很乐意在此方面接受批评!
Fairness
I've done my best to keep smokes as synced up as possible, not only between clients but also for the backend to be able to accurately calculate sight lines (so that if you have bots on the backend, they won't spot you through the smoke unless they can actually see you). Bullet/explosion holes in smoke are triggered serverside to avoid high-ping players from being able to spot other players early by making holes in the smoke.
公平性:我已尽力保持烟雾在客户端之间以及后端之间保持同步,以便后端能够准确计算视线(因此后端的机器人除非真的能看到你,否则不会在烟雾中发现你)。烟雾中的子弹/爆炸孔洞由服务器端触发,以避免高延迟玩家提前通过在烟雾中制造孔洞来发现其他玩家。
Ease of use
This library should be very easy to drop into an existing project, the serverside crate (smokescreen) has no Bevy dependency, the clientside crate (bevy_smokescreen) is where the Bevy dependency lies. I've tried to keep the API clean and intuitive.
易用性:该库应能够轻松集成到现有项目中,服务器端 crate (smokescreen) 没有 Bevy 依赖,客户端 crate (bevy_smokescreen) 则包含 Bevy 依赖。我已尽力保持 API 清晰直观。
More technical details can be found in the repo's README. Thanks for taking a look, keep well! I'll hopefully be making more of these sorts of open source Bevy plugins going forward!
更多技术细节请参见仓库的 README。感谢观看,保重!我希望今后能继续开发此类开源 Bevy 插件。
评论 (0)