使用移动 pkg 的 Golang 跨平台游戏引擎?

标签 go opengl-es game-engine gomobile

是否可以使用 Go 移动包资源创建跨平台(移动 + 桌面)游戏引擎?或者它以某种方式与 gomobile 和移动架构相关联?

第一个问题是我将使用的 glsprite 和其他渲染包构建在 OpenGL ES 之上,所以我将不得不忽略 gl 并只使用更通用的包,如 https://godoc.org/golang.org/x/mobile/exp/sprite/portable ?或者我仍然可以在定位移动设备时近乎无缝地使用 glsprite?

理论上音频应该与 https://godoc.org/golang.org/x/mobile/exp/audio 交叉编译。 ?

它可行/可行吗?还是太麻烦了?

最佳答案

上次我在 Windows 上尝试了 gomobile opengl,它没有用。我只能为android编译。也许这个错误现在已修复,不确定..

但是;对于跨平台,您可以简单地将 gomobile 用于移动平台,并在桌面上为通用 opengl 创建一个界面,您将无缝地拥有两者。只需抽象出常规 opengl 和 gomobile opengl es 之间的接口(interface)即可。

更新:

实际上只是尝试使用 go run 运行“基本”示例,它在 Windows 上运行。所以这个错误必须被修复。因此,在您的回复中,是的,可以将 go mobile x 用于跨平台移动 + 桌面:

https://github.com/golang/mobile/blob/master/example/basic/main.go

但是;由于 Linux 特定的 Open AL 库,音频无法在 Windows 上编译。如果您查看构建标志,darwin,仅限 linux,没有 windows。

关于使用移动 pkg 的 Golang 跨平台游戏引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560316/

相关文章:

java - 如果您使用游戏引擎和 3D 建模软件,编程语言有什么用?

multithreading - 半异步代码逻辑

go - 如何在Go中获得精确的float64值?

c# - 使用 Go 编码 UTF-8

Android Surfaceflinger 和 openGL ES

ios - 与 iOS9 (OGLES2.0) 相比,iOS10/11 下的离屏渲染性能大幅下降

java - jBullet 例子

go - 模拟加密/ssh/终端

android - 编译时的 OpenGL ES 版本

javascript - LimeJS 自定义 Sprite 吞咽事件