Hello everyone!
大家好!
Another day another post, but today is a more special one.
Or well… closer to my heart.
新的一天新的帖子,但今天的这个比较特别。 像是……更接近吾之本心。
Before we start
前言
These days I have headaches often, not because of a cold but due to the sheer amount of ideas and information that flow through my head.
Your mind is in overdrive, but the thoughts cannot be let go of until you release it; whenever that's programming or other creative persuits.
It is very comparabe to having a fast song like Pixel Terror & Aviella – Enigma playing in your mind all the time.
I think genshin impact is one of the few games that allow me to actually relax (can't wait for Ganyu's rerun btw!).
But that's enough about me.
最近我常常头痛,不是因为感冒,而是因为脑子里充斥着大量的想法和信息。 大脑过载,但在你实现它们之前,决不能让这些玩意溜走; 这便是编程或其他创造性的追求。 这与 Pixel Terror & Aviella – Enigma 之类的快节奏歌曲一直在脑内循环播放非常相似。 我想原神是为数不多的能让我真正放松的游戏之一(顺带一提,甘雨复刻GKD!)。 但这对我来说已经足够了。
Current state of Aki
AKI目前的状态
While 0.12.12 is coming along nicely and recently had Styrr join the development team, I am not happy with the direction the project has been going for the past months. This is not due to the development team, but because of the inherent nature of the project. As I described above, true creativity is pure chaos like how the project has been ran the past years.
虽然 0.12.12 进展顺利,而且最近 Styrr 加入了开发团队,但我对该项目过去几个月的发展方向并不满意。 这不是开发团队的原因,而是项目的固有性质。 正如我上面所描述的,创造的本质是纯粹的混乱,就像过去几年项目的运行方式一样。
What kept this chaos managable was principles;
– the code must be as simple as possible
– only the bare minimum should be implemented
– rewrite the project often (iterative)
– knowledge must be spread and documented
保持这种混乱可控的是原则;
– 代码必须尽可能简单
– 在最小限度内使代码生效
– 经常重写项目(迭代)
– 知识必须传播和记录
With these principles a foundation is build on which not only the development team relies on, but also modders and end users.
Bugs or different behaviour from live eft is not an issue, everyone is aware we work hard and do this in our spare time.
有了这些原则,不仅开发团队依赖,而且MOD制作者和用户都依赖于这个基础。 Bug和与线上塔科夫不同的表现力不是问题,每个人都知道我们努力工作并在业余时间这样做。
However, when I came back I noticed the focus has been shifted on a different set of principles. Favoring accuracy, completeness and features over simplicity and maintainability. The developers are scared to rewrite existing code in fear of breaking it and there was lack of comminucation as well. Luckily information is being spread more than before and the developers went back to work, but this wasn't the case initially the moment I returned.
然而,当我回来时,我注意到重点已经转移到了一套不同的原则上。 与简单性和可维护性相比,更注重准确性、完整性和功能性。 开发人员害怕重写现有代码,害怕破坏它,并且缺乏沟通。 幸运的是,信息比以前传播得更多,开发人员也回去工作了,但在我回来的那一刻,情况并非如此。
While the current wave of activity is fantastic, it is not sustainable due to the conditions and principles that are being worked with. I've had a distaste for the current server project for a long time, and thus decided to take matters into my own hands once more.
虽然当前的活动浪潮广受欢迎,但由于正在使用的条件和原则,这是不能长久持续的。 我不喜欢目前的服务器项目已经很久了,因此决定再次将事情掌握在自己的手中。
Introducing Fuyu (冬)
It was quickly understood that the current server project is beyond saving, so a replacement has to be written. The language pretty much all developers of the team are intimate with is C#, which also is beneficial for performance and stricter code control. It looked promising.
However, it turned out I made a gross underestimation of the undertaking it would be. All data models I wrote were outdated in a matter of weeks, and C# isn't flexible enough for prototyping, among other issues which forced me to put the project on hold.
Instead, I would look for a middle ground before I would resume development on Fuyu.
很快就明白当前的服务器项目已无法保存,因此必须编写替换。 团队中几乎所有开发人员都熟悉的语言是 C#,这也有利于提高性能和更严格的代码控制。 看起来很有希望。 然而,事实证明我严重低估了它的作用。 我编写的所有数据模型在几周内就过时了,而且 C# 对于原型设计不够灵活,以及其他迫使我搁置项目的问题。 相反,我会在恢复 Fuyu 的开发之前寻找一个中间立场。
Introducing Haru (春)
Haru is drastically different of Aki and Fuyu in the way it is being developed. The goal here is to make a modding framework, not an out-of-the-box complete eft experience. Hopefully I'll be able to adress some design flaws from design flaws of Aki as well like the lack of proper synchronization between the client and server and the overcomplicated unintuitive request handling.
Haru 的发展方式与 Aki 和 Fuyu 截然不同。 这里的目标是制作一个修改框架,而不是一个开箱即用的完整 eft 体验。 希望我能够从 Aki 的设计缺陷中解决一些设计缺陷,例如客户端和服务器之间缺乏适当的同步以及过于复杂的不直观的请求处理。
Haru also differs from Aki and Jet as it has no linage to polivilas's emutarkov; this is completely written from the ground up. This is also why I chose the name Haru (spring), as spring is fresh, revitalizing and brings new life. Just like Ganyu finding a new reason to enjoy her life.
Haru 也不同于 Aki 和 Jet,因为它与 polivilas 的 emutarkov 没有血缘关系。 这完全是从头开始写的。 这也是我选择 Haru(春天)这个名字的原因,因为春天是新鲜的,充满活力,带来新的生命。 就像赣榆找到了享受生活的新理由。
I have been commenting my code and documenting everything since day one, and hope to make a few examples before releasing a 0.1.0 version (which will only be able to get into the main menu and play a raid, no profile saving, stash interaction or trading whatsoever). Hopefully I will be able to get into the main menu with within two weeks. When I do, I'll upload the build here to demonstrate the proof of concept.
我从第一天开始就一直在评论我的代码并记录所有内容,并希望在发布 0.1.0 版本之前做几个例子(只能进入主菜单和玩突袭,没有配置文件保存,隐藏交互 或进行任何交易)。 希望我能在两周内进入主菜单。 当我这样做时,我将在此处上传构建以演示概念验证。
Complexity
复杂
The server two years ago (polivilas's emutarkov) was simple; a very basic http server was able to comminucate with the game, without requiring anything else. Those days are long gone. Now you must have a launcher (start arguments), game patches (disable battleye and file consistency checkers) and a server with multiple comminucation protocols (http and websocket) with encryption on top of that as a bare minimum. We're not even in the main menu yet .
两年前的服务器(polivilas 的 emutarkov)很简单; 一个非常基本的 http 服务器能够与游戏进行通信,而无需其他任何东西。 那些日子已经一去不回。 现在你必须有一个启动器(开始参数)、游戏补丁(禁用 Battleye 和文件一致性检查器)和一个带有多个通信协议(http 和 websocket)的服务器,在此基础上加密作为最低要求。 我们甚至还没有进入主菜单
While there is no value to the end-user for this, getting into the main menu on it's own is a real milestone. It takes a long time to get basic functionality to work while ensuring that there is a strong foundation for the months to come.
Closing thoughts
结束语
This does highlight how far bsg has come from where they were before; Updates look small when we receive them in three months time, but it is impressive to see what they accomplished. While I do not agree with their vision, I have to give credits where it's due.
这确实突出了 bsg 与之前的位置相比有多远; 当我们在三个月后收到更新时,更新看起来很小,但看到它们取得的成就令人印象深刻。 虽然我不同意他们的愿景,但我必须在应有的地方给予赞赏。
I really wish to write more, but it's 06:00 AM in the netherlands and haven't slept for a day yet, need to be in office at 08:00 AM…
很想再多写一点,但是荷兰现在是早上06:00,还没睡一天,需要早上8:00到单位……
…I fear this will be another day where I'm reliant on coffee hahahaha
…我担心这将是我依赖咖啡的另一天哈哈哈
Published too early by accident, made some revisions!
稍微对前半部分做了一些润色,Senko这篇是用谷歌机翻的
以后的版本 做成什么样子 我除了口头上的支持也帮不上一点忙 本来还想拉进来一个学霸那【2021年我外出打工时候 结交到一位为了等学位毕业证才进场体验生活打工的 聊天能聊到一块的学霸级别的程序员 我推荐他来加入这个游戏的离线制作组 他了解了游戏之后说不喜欢这个类型 】我心里头就挺可惜的 没拉进来
thx love u
expect Haru