二游圈杂记:原神、绝区零与鸣潮
本文为笔者于2024年7-8月混二游圈有感。本文不能保证客观,无意冒犯任何玩家,且带有大量主观的理解和评价。
绝区零初体验与感受绝区零公测开服我其实是无感的,因为其给我最初的印象是与崩三类似的动作游戏,而我又恰好对动作游戏不太感冒。但是看着身边好兄弟都对其充满兴趣,我就还是以试一试的心态在iPad上开始了绳匠初体验。主要还是图开服的福利,就想着每天都上线看看,于是就大概在iPad连续玩了一周左右的时间。最终居然还是因为手头没有iPad可用,只能草草地结束,绳网等级定格在了27级。
现在想来,除了没能体验到45级后的内容,我到没有什么感到特别遗憾的地方。接下来我就简要说说我对绝区零的感受和评价吧。先说优点,绝区零的美术风格与动画效果还挺不错的,很有自己的特色,我也不太懂艺术,据说是什么美漫画风。还有通过一些老电视机、磁带、胶片、CD光盘以及街机电玩这些意象,营造一种生活在复古的日式街的Chill/松弛感(虽然我很讨厌来自沪圈的网络词汇,但是松弛放在这里莫名合适,感觉很符合我心中米哈游创作团队想要在此游戏中表现的感觉)。网上大家喷的最多的走格子玩法,我反而还觉得挺新奇的,有点 ...
简评《原神》
以玩家、游戏开发商视角,简单评价和分析《原神》这款“现象”级游戏。
本文不能保证客观,无意冒犯任何玩家,且带有大量主观的理解和评价。
体验“无体验,不置评。”
入坑与弃坑我姑且算是个开服玩家了。
众所周知,原神早期深陷“抄袭”塞尔达的争议。原神在很多地方,如美术风格、大地图探索、动作系统上与《塞尔达:荒野之息》相似,这是毋庸置疑且官方承认的。且不论借鉴本身,以一个朴素的单机玩家的视角来看,玩家何故放着更高自由度(更纯粹、约束更少)的塞尔达不玩,来玩一款二次元皮的“复制”品网游。那时我因沉浸于老滚(《上古卷轴5:天际》)之中,简单尝完鲜后,便弃坑了原神。
初期印象:开放世界RPG玩家的手游替代品、又肝又氪。
出乎意料我回坑很大程度上讲是被枫丹(法国、欧洲的国度背景)吸引的。作为开放世界RPG爱好者,我知道我玩原神的目的就是沉浸式的剧情体验。角色强度之类,完全就不在主要考虑范围内,只需要能够过大世界、任务足以。属于是把原神玩成了单机游戏。
由于米哈游用了一些手段来延长原神的游玩时长,导致想要一股脑过主线看剧情是很困难的,为了防止玩游戏的过程变质成为打工,最终我大概用了2个月完成了原 ...
AirDrop between Android and macOS
As we know, AirDrop is Apple’s proprietary protocol.However, it is possible to use AirDrop on non-Apple devices and enable those devices to work with Apple devices.
Of course, there are some prerequisites and limits.I’m specifically using Android as an example in this article.
At the time of writing, I haven’t finished the tool’s development.
https://github.com/I-Info/AnyDrop
BackgroundReferences to papers published by Secure Mobile Networking Lab, we can fully understand how AirDrop works:
...
【杂谈】编译的发展与未来
编译器与编程语言发展历程参考互联网上的相关资料,编译器与编程语言几乎是同步发展起来的,发展过程可以分为几个阶段:
第一阶段是20世纪50年代,出现了第一个编译程序,将算术公式翻译成机器代码,为高级语言的发展奠定了基础。
第二阶段是20世纪60年代,出现了多种高级语言和相应的编译器,如FORTRAN、COBOL、LISP、ALGOL等,编译技术也逐渐成熟和规范化。
第三阶段是20世纪70年代,出现了结构化程序设计方法和模块化编程思想,以及面向对象的语言和编译器,如Pascal、C、Simula等,编译技术也开始注重- 的可读性和可维护性。
第四阶段是20世纪80年代,出现了并行计算机和分布式系统,以及支持并行和分布式的语言和编译器,如Ada、Prolog、ML等,编译技术也开始考虑程序的- 性和分布性。
第五阶段是20世纪90年代至今,出现了互联网和移动设备等新兴平台,以及支持跨平台和动态特性的语言和编译器,如Java、C#、Python等,编译技术也开始关注程序的安全性和效率。在发展过程中也伴随着编译理论体系的逐步成熟,一些关键也成为了实现编译器必不可少的部分,如:有限状态自动机、上 ...
Run UI Automator Viewer on ARM/aarch64 macOS
At the time of writing this blog. Some tools (Like uiautomatorviewer) in the Android SDK are not compatible with ARM macOS.
However, the uiautomatorviewer is a Java program. It can be easily “hacked” to run on ARM machines.
Preparations
JRE 8. I chose Zulu-8 (Java 9+ may has more difficulties to work well. I gave up to make it run on openjdk-19)
Eclipse SWT 4.20 for macosx-aarch64
Install SWT
Goto the Android SDK tools directory.
1cd ANDROID_HOME/tools
Create lib/aarch64 directory.
1mkdir l ...
iOS砸壳与macOS侧载
本文测试平台:
iPhone5s: iOS 12.5.5(Jailbroken by unc0ver 8.0.2)
MacBook Pro (2021): macOS 12.5
本文将主要基于对易校园 App 进行的相关测试分析,文中简写为 yxy
砸壳/脱壳本文中的砸壳指的是去除 App Store 对应用添加的加密。本文不细探究砸壳原理。
砸壳原理以及手动砸壳推荐参考文章: iOS逆向(11)-砸壳原理剖析,主动加载所有framework
工具
flexdecrypt 静态 Mach-O 二进制解密工具
appdecrypt 静态 Mach-O 二进制解密工具,工作原理同 flexdecrypt
CrackerXI+ iOS 端自动砸壳工具, 可以通过添加(如 http://cydia.iphonecake.com 源)安装。动态脱壳,生成 ipa。
其他老牌的砸壳工具如 Clutch, dumpdecrypted, frida-ios-dump 也能够动态砸壳生成ipa。
对于不同的app应该根据情况来使用工具,并不能保证存在某个万能的砸壳工具。
解密 ...
NVIDIA休眠相关问题
关键词:NVIDIA, Arch Linux, suspend
最近好不容易迁移到了Wayland,但是小问题还是不少,其中一个关键问题就是从休眠(suspend)恢复后(此问题貌似与Wayland无关),gnome-shell中的文字和图标大多消失了,GUI只剩下骨架。
在网上搜索GNOME休眠后文字消失(google: gnome missing characters after suspend)相关问题,大多都是若干年前的讨论,经过测试,对于我的情况没有任何帮助(大多是和当初的Intel核显驱动或N卡开源驱动还有Linux内核有关)。当然最后还是找到了一定帮助的文章,才把问题定位到了NVIDIA闭源驱动上。
在Fedora论坛找到了最近几个月关于此问题的讨论,才知道NVIDIA Suspend已经成为了一个标准问题。Arch Linux Wiki也有相关的解决方案,其中也指出了NVIDIA驱动的说明文档的链接(还好有NVIDIA官方解决方案)。推荐阅读一下官方提供的说明文档。
Arch Wiki描述的过于简单,中间还是有一些坑的,既然坑我已经踩了,下面直接放上最终解决方案好了 ...
Arch Linux Wayland之路
前情提要:听说Linux上N卡闭源驱动有了较大的更新,比如添加了drm和Xwayland硬件加速支持。正好手头Manjaro滚炸了(很久没更新了,大概跟新驱动有关),直接新装Arch Linux + GNOME + Wayland套餐。不过中间Wayland之路经历了很多曲折,期间多次放弃Wayland滚回Xorg。。。
仅仅提供一个参考,具体还得看平台和使用场景。
环境:
Host: MSI GS66 Stealth 10SF
OS: Arch Linux with Stable kernel
CPU: Intel i7-10750H
GPU: NVIDIA GeForce RTX 2070 Mobile
如上图,标准的I+N双显卡游戏本。
注意,在写本文的时候,I+N方案Wayland支持程度仍然很差,当然使用Xorg性能也依然不佳(不然也不会想方设法去用Wayland
本文默认已经装好Arch Linux和GNOME,并且使用的是稳定版(非lts)内核。
NVIDIA闭源驱动安装参考Archwiki所述Wayland需求
https://wiki.archlinux ...
MacOS GPG2连接Keyserver返回Network Unreachable
环境:
macOS 12.2.1
gpg (GnuPG) 2.3.4 (homebrew)
与Keyserver进行连接操作时,无论如何都会返回Network unreachable错误。
Google后,在lists.gnupg.org上找到前人相同的问题反馈,得到解决方案。错误原因未知,大概和网络连接模式(tor)有关。
解决方案编辑~/.gnupg/dirmngr.conf配置文件(无则创建),添加:
1standard-resolver
重启后生效。
基于JAVA NIO的TCP协议定义与实现
定义了一个简单的基于TCP的面向报文的协议。大致组成就是报文起始标记,协议版本号,载荷类型,载荷,报文结束标记。
我的业务场景是使用protobuf(Google Protocol Buffers)进行客户端与服务端之间通信的数据封装。正如pb文档所说,pb没有提供多信息流式传输的支持,而如果使用如TCP(面向流的协议)就不能直接传输pb了。所以需要自己定义一个协议来进行信息分隔。
样例代码注:代码位于gist.github.com,如果无法加载样例代码,请手动点击链接访问。