背景:小弟很喜欢赛车,最近想用爱发电开发一个基于 Forza 遥测 UDP 的赛道 LOG 分析工具,帮助自己还有一些群里的车迷朋友分析圈速和刹车点。
需求:
初步想法:React-Native / Element UI ,后者似乎看到更多人使用,但是 React 我想对熟悉一点
不知道各位大佬对于技术栈选取,有没有什么建议或者忠告。 PS:软件的样子及功能可以参考,B 乎这边提到的软件: https://zhuanlan.zhihu.com/p/404070375
1
DiamondYuan 269 天前 via Android 1
为什么做桌面软件而不是桌面网页?
网页的话可以用 react ,如果要桌面分发,可以用 electron |
2
lmdown 269 天前 via Android 1
tauri ? UI 是 html+js
|
3
xieren58 269 天前 2
|
4
GordianZ MOD @DiamondYuan 因为要监听局域网 UDP 啊。
我之前本来准备做一个的,但是 FH 凉透了直接删游了。 |
5
Oilybear OP @DiamondYuan 这个思路也可行,我其实不是太懂,我的理解 React-Native 应该也是你这个意思,搞个 Chrome 内核在上面渲染出一些组件界面,只是看起来像是桌面应用,因为跨平台,我想最后选出来的大概率也是这个类型的方案。
@xieren58 这个相当于是.Net 写吗?我 .Net 没什么经验感觉学习成本可能比较高,但是还是谢谢你的回复 |
6
Jirajine 269 天前 3
如果是商业产品,electron 是最优选。
如果是个人项目,可以试试 flutter/tauri/rn 这些尚未成熟的踩坑。 |
7
Oilybear OP @GordianZ FH 做不太了,只能做做类似 Simhub 那种效果。IsRacing 段是 1 的时候,起码 FM8 车辆真的在赛道中跑,可以通过数据推断映射到地图上具体的弯道,FH 随便在地图上动一动 IsRacing 都是 1 ,没有很好的办法映射到某个赛道某个具体的弯道上,这样 Log 图就算做出来也就没太多意义了
|
8
icaolei 269 天前
桌面分发建议 tauri
|
10
lisongeee 269 天前
说实话,我没看懂为什么把 React-Native 和 Element UI 并列,这俩也不是同层级的技术
而且 Element UI 已经停止维护,替代版本叫 Element Plus |
12
Oilybear OP 好的了,谢谢各位的答复,基本上是 electron 和 tauri 两个得到大家的认可多一些,我对比调研一下进行选择,再次感谢本贴留言的各位前辈
|
13
Elroooo0Y 268 天前
前端技术栈 + 本地 server ;
软件打开时, 即启动一个 server, 并自动打开浏览器; 服务端和前端技术栈两个没有关联, 使用 http 进行通信. |
14
bronyakaka 268 天前 1
建议 python ,使用 flet 库,简单、漂亮
看我的项目 https://github.com/Bronya0/Kafka-King |
15
ysc3839 268 天前
React Native 在 Windows 和 macOS 都能使用原生的 UI 库,性能更好、更接近系统风格。不过要监听 UDP 的话,可能需要用 C++ 之类的写监听部分代码了。
|
16
journalist 268 天前
|
18
sorude 268 天前
electron+react 有脚手架。https://electron-react-boilerplate.js.org/
|
19
XavierLing 268 天前
今年准备用 Flutter 写一款 windows
|
22
wozhihuipinyin 268 天前 via Android
@Elroooo0Y 这种方案使用哪些技术?有案例能参考下吗?
|
23
Oilybear OP @bronyakaka 感谢你的推荐,我自己本职是 Python 开发相关。
Python 的 GUI 方向,wxPython 和 pyqt 我两个 python 比较主流的 GUI 方案在其他项目上使用过,当时需要配合 pytorch 做一些实时完成一些采集和推理。个人体感不是很好,毕竟数据采集相关的工作肯定有独立的线程/进程维护,不会放置在和 GUI 相关的主进程中,但是 Python 的多线程受制于 GIL ,多进程的话数据共享也需要而外的进程维护数据相对性能牺牲代价较大。 这个项目的运行环境是运行游戏的同时还运行该软件,后期预想的甚至是配合 N/A 卡的一些录制 API 同步进行一部分录制,以满足圈速分析上刹车点分析的一些需求,所以性能层面可能要很早考虑。 目前我的决定是使用上面的前辈推荐的 tauri 这个框架 [前端技术栈+本地 Rust 后端] ,毕竟非商业项目尝鲜一下,另外一个是我觉得 python 有潜在风险不太适合,但是还是感谢你的推荐,以后有什么小工具需要快速实现又尽可能考虑美观的地方我会看一下 flet 这个框架。 |
24
nicholasxuu 263 天前
要注意一下游戏 udp 提供的采样率,采样率低的话,很多遥测数据的意义不大。
知乎文章里的那个工具看上去很基础,基本只有视频(方向盘操作),油门刹车,速度数据。 感觉如果只是要这个数据的话,可以考虑纯从 60fps 视频里提取,从游戏的 hud 数据里识别出来,有录屏就能用了? *rfactor2 之类的遥测数据导出后放 motec 看,避震压缩甚至轮胎与地面的倾角都能看(可能比真车还强) |
25
Oilybear OP @nicholasxuu 我确实有这个想法,不过你也提醒我了,文档里面( https://support.forzamotorsport.net/hc/en-us/articles/21742934024211-Forza-Motorsport-Data-Out-Documentation )是有明确指明每秒 60 个遥测数据,差不多平均 0.016S ,一个算可用范围。
相比 rfactor2 这种专业性更强的游戏,在导出视频时就能从游戏引擎层采集了同步的遥测数据。FM 只能获取遥测,也就是说即便采取同步录制,采集的视频和遥测数据的对应也可能有问题,录制方式导致或者其他因素。 另外我想其实更重要的是快速验证一下软件可行性,至于这些视频同步分析这些功能有一些可预知的难度我想放到以后的版本中实现。退而求其次,利用刹车点的曲线 gap 和时速也能够推倒计算刹车点差多少米,在配合重刹区的一些指示牌去调整。其实能做的想法还蛮多的,弯角名称的播报,车胎磨损的语音提醒,就想有个赛道工程师在 TR 里做我们的专属工程师,一步一步来哈哈哈 |