V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Oilybear
V2EX  ›  程序员

想开发一个桌面应用软件,求前辈们推荐技术栈

  •  
  •   Oilybear · 306 天前 · 3163 次点击
    这是一个创建于 306 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 背景:小弟很喜欢赛车,最近想用爱发电开发一个基于 Forza 遥测 UDP 的赛道 LOG 分析工具,帮助自己还有一些群里的车迷朋友分析圈速和刹车点。

    • 需求:

      1. 跨平台支持 Windows & Mac ,( Windows 游玩、分析或者 Xbox 游玩,Mac 分析)
      2. 有现成的图标分析组件,毕竟 Log 图可以理解为折线分析图
    • 初步想法:React-Native / Element UI ,后者似乎看到更多人使用,但是 React 我想对熟悉一点

    不知道各位大佬对于技术栈选取,有没有什么建议或者忠告。 PS:软件的样子及功能可以参考,B 乎这边提到的软件: https://zhuanlan.zhihu.com/p/404070375

    DiamondYuan
        1
    DiamondYuan  
       306 天前 via Android   ❤️ 1
    为什么做桌面软件而不是桌面网页?
    网页的话可以用 react ,如果要桌面分发,可以用 electron
    lmdown
        2
    lmdown  
       306 天前 via Android   ❤️ 1
    tauri ? UI 是 html+js
    xieren58
        3
    xieren58  
       306 天前   ❤️ 2
    GordianZ
        4
    GordianZ  
    MOD
       306 天前
    @DiamondYuan 因为要监听局域网 UDP 啊。
    我之前本来准备做一个的,但是 FH 凉透了直接删游了。
    Oilybear
        5
    Oilybear  
    OP
       306 天前
    @DiamondYuan 这个思路也可行,我其实不是太懂,我的理解 React-Native 应该也是你这个意思,搞个 Chrome 内核在上面渲染出一些组件界面,只是看起来像是桌面应用,因为跨平台,我想最后选出来的大概率也是这个类型的方案。

    @xieren58 这个相当于是.Net 写吗?我 .Net 没什么经验感觉学习成本可能比较高,但是还是谢谢你的回复
    Jirajine
        6
    Jirajine  
       306 天前   ❤️ 3
    如果是商业产品,electron 是最优选。
    如果是个人项目,可以试试 flutter/tauri/rn 这些尚未成熟的踩坑。
    Oilybear
        7
    Oilybear  
    OP
       306 天前
    @GordianZ FH 做不太了,只能做做类似 Simhub 那种效果。IsRacing 段是 1 的时候,起码 FM8 车辆真的在赛道中跑,可以通过数据推断映射到地图上具体的弯道,FH 随便在地图上动一动 IsRacing 都是 1 ,没有很好的办法映射到某个赛道某个具体的弯道上,这样 Log 图就算做出来也就没太多意义了
    icaolei
        8
    icaolei  
       306 天前
    桌面分发建议 tauri
    GordianZ
        9
    GordianZ  
    MOD
       306 天前
    @Oilybear 我说错了,我说的就是 FM8😅
    FM8 的遥测扩充了一些,确实比 FH 好多了。但是照现在的用户量,除非自己组联赛,不然都没人正经玩。
    lisongeee
        10
    lisongeee  
       306 天前
    说实话,我没看懂为什么把 React-Native 和 Element UI 并列,这俩也不是同层级的技术

    而且 Element UI 已经停止维护,替代版本叫 Element Plus
    Oilybear
        11
    Oilybear  
    OP
       306 天前
    @lisongeee 因为确实不懂,不好意思
    Oilybear
        12
    Oilybear  
    OP
       306 天前
    好的了,谢谢各位的答复,基本上是 electron 和 tauri 两个得到大家的认可多一些,我对比调研一下进行选择,再次感谢本贴留言的各位前辈
    Elroooo0Y
        13
    Elroooo0Y  
       306 天前
    前端技术栈 + 本地 server ;


    软件打开时, 即启动一个 server, 并自动打开浏览器;
    服务端和前端技术栈两个没有关联, 使用 http 进行通信.
    bronyakaka
        14
    bronyakaka  
       306 天前   ❤️ 1
    建议 python ,使用 flet 库,简单、漂亮
    看我的项目 https://github.com/Bronya0/Kafka-King
    ysc3839
        15
    ysc3839  
       306 天前
    React Native 在 Windows 和 macOS 都能使用原生的 UI 库,性能更好、更接近系统风格。不过要监听 UDP 的话,可能需要用 C++ 之类的写监听部分代码了。
    journalist
        16
    journalist  
       305 天前
    https://github.com/austinbaccus/forza-telemetry

    这个感觉做得挺好的。我觉的难点在于分析数据吧,毕竟这游戏自带的回放到现在都不太正常.
    akjarjash
        17
    akjarjash  
       305 天前
    @xieren58 #3 这个不行,你实际使用了吗?
    sorude
        18
    sorude  
       305 天前
    electron+react 有脚手架。https://electron-react-boilerplate.js.org/
    XavierLing
        19
    XavierLing  
       305 天前
    今年准备用 Flutter 写一款 windows
    xieren58
        20
    xieren58  
       305 天前
    @akjarjash 都做了几个项目, 赚钱了... 还不行... (doge
    akjarjash
        21
    akjarjash  
       305 天前
    @xieren58 #20 做的什么类型的项目赚了多少?
    wozhihuipinyin
        22
    wozhihuipinyin  
       305 天前 via Android
    @Elroooo0Y 这种方案使用哪些技术?有案例能参考下吗?
    Oilybear
        23
    Oilybear  
    OP
       303 天前
    @bronyakaka 感谢你的推荐,我自己本职是 Python 开发相关。
    Python 的 GUI 方向,wxPython 和 pyqt 我两个 python 比较主流的 GUI 方案在其他项目上使用过,当时需要配合 pytorch 做一些实时完成一些采集和推理。个人体感不是很好,毕竟数据采集相关的工作肯定有独立的线程/进程维护,不会放置在和 GUI 相关的主进程中,但是 Python 的多线程受制于 GIL ,多进程的话数据共享也需要而外的进程维护数据相对性能牺牲代价较大。
    这个项目的运行环境是运行游戏的同时还运行该软件,后期预想的甚至是配合 N/A 卡的一些录制 API 同步进行一部分录制,以满足圈速分析上刹车点分析的一些需求,所以性能层面可能要很早考虑。
    目前我的决定是使用上面的前辈推荐的 tauri 这个框架 [前端技术栈+本地 Rust 后端] ,毕竟非商业项目尝鲜一下,另外一个是我觉得 python 有潜在风险不太适合,但是还是感谢你的推荐,以后有什么小工具需要快速实现又尽可能考虑美观的地方我会看一下 flet 这个框架。
    nicholasxuu
        24
    nicholasxuu  
       300 天前
    要注意一下游戏 udp 提供的采样率,采样率低的话,很多遥测数据的意义不大。
    知乎文章里的那个工具看上去很基础,基本只有视频(方向盘操作),油门刹车,速度数据。
    感觉如果只是要这个数据的话,可以考虑纯从 60fps 视频里提取,从游戏的 hud 数据里识别出来,有录屏就能用了?

    *rfactor2 之类的遥测数据导出后放 motec 看,避震压缩甚至轮胎与地面的倾角都能看(可能比真车还强)
    Oilybear
        25
    Oilybear  
    OP
       299 天前
    @nicholasxuu 我确实有这个想法,不过你也提醒我了,文档里面( https://support.forzamotorsport.net/hc/en-us/articles/21742934024211-Forza-Motorsport-Data-Out-Documentation )是有明确指明每秒 60 个遥测数据,差不多平均 0.016S ,一个算可用范围。
    相比 rfactor2 这种专业性更强的游戏,在导出视频时就能从游戏引擎层采集了同步的遥测数据。FM 只能获取遥测,也就是说即便采取同步录制,采集的视频和遥测数据的对应也可能有问题,录制方式导致或者其他因素。
    另外我想其实更重要的是快速验证一下软件可行性,至于这些视频同步分析这些功能有一些可预知的难度我想放到以后的版本中实现。退而求其次,利用刹车点的曲线 gap 和时速也能够推倒计算刹车点差多少米,在配合重刹区的一些指示牌去调整。其实能做的想法还蛮多的,弯角名称的播报,车胎磨损的语音提醒,就想有个赛道工程师在 TR 里做我们的专属工程师,一步一步来哈哈哈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1515 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:05 · PVG 01:05 · LAX 09:05 · JFK 12:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.