Open fastfading opened 7 years ago
No plan in terms of a timeline, but it'd be good to get mobile support eventually, yes.
Due to ease of emulation (and therefore testing) android would probably come before ios. A hypothetical timeline would put this after 2.0.
@fastfading This is something you're still interested in so I'll go into more depth on the issues with android and ios:
Other game engines in Go have solved the issue of working with android and ios by instructing the user to stitch together assistant files in other languages, in the little I've looked around. Oak wants to be a pure Go language, so if support for mobile means requiring non-Go language files we want to generate all of those files for the user, which is a significant endeavour we haven't looked into because we haven't wanted to make a mobile game-- mobile games have a lot of restrictions that make it hard to make something new and fun.
Yes , u are right. However, from the user(player) view, mobile game is the future. That is why the populor engine like ue4 ,unity, cocos2dx all support mobile.
the gomobile project support programing mobile game in go, however it is a pity it stopped developing.
2017-11-13 16:33 GMT+08:00 Patrick Stephen notifications@github.com:
@fastfading https://github.com/fastfading This is something you're still interested in so I'll go into more depth on the issues with android and ios:
Other game engines in Go have solved the issue of working with android and ios by instructing the user to stitch together assistant files in other languages, in the little I've looked around. Oak wants to be a pure Go language, so if support for mobile means requiring non-Go language files we want to generate all of those files for the user, which is a significant endeavour we haven't looked into because we haven't wanted to make a mobile game-- mobile games have a lot of restrictions that make it hard to make something new and fun.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/oakmound/oak/issues/49#issuecomment-343847392, or mute the thread https://github.com/notifications/unsubscribe-auth/AH9v9AAgZhRG9K1thbba2LpBbDKAC16aks5s1_7DgaJpZM4PYb46 .
188 Adds experimental android support. IOS is still not going to come soon; I don't have an IOS device and developing for IOS does not personally interest me, but if anyone else can and wants to try adding it, it would be appreciated!
I tried to build one of the examples blank
on my macOS iMac targeting iOS with gomobile build -target ios
and this is what happens:
(⎈ |local:default)
prologic@Jamess-iMac
Sun Oct 02 11:16:10
~/tmp/test-gomobile/oak/examples/blank
(master) 130
$ gomobile build -target ios -bundleid io.mills.oak
gomobile: go build -ldflags=-w -o=/var/folders/8h/c9gl4gms3fjb0kyf7nb42ybh0000gn/T/gomobile-work-4044548340/ios/arm64 github.com/oakmound/oak/v4/examples/blank failed: exit status 2
# github.com/go-gl/glfw/v3.3/glfw
In file included from ../../../../../go/pkg/mod/github.com/go-gl/glfw/v3.3/glfw@v0.0.0-20220320163800-277f93cfa958/c_glfw.go:4:
In file included from ./glfw/src/context.c:30:
In file included from ./glfw/src/internal.h:184:
./glfw/src/cocoa_platform.h:30:10: fatal error: 'Carbon/Carbon.h' file not found
#include <Carbon/Carbon.h>
^~~~~~~~~~~~~~~~~
1 error generated.
# dmitri.shuralyov.com/gpu/mtl
mtl.m:16:22: error: 'headless' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:395:46: note: 'headless' has been explicitly marked unavailable here
mtl.m:17:22: error: 'lowPower' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:389:46: note: 'lowPower' has been explicitly marked unavailable here
mtl.m:18:23: error: 'removable' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:403:47: note: 'removable' has been explicitly marked unavailable here
mtl.m:26:37: error: 'MTLCopyAllDevices' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:104:37: note: 'MTLCopyAllDevices' has been explicitly marked unavailable here
mtl.m:32:38: error: 'headless' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:395:46: note: 'headless' has been explicitly marked unavailable here
mtl.m:33:38: error: 'lowPower' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:389:46: note: 'lowPower' has been explicitly marked unavailable here
mtl.m:34:39: error: 'removable' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:403:47: note: 'removable' has been explicitly marked unavailable here
mtl.m:173:49: error: 'synchronizeResource:' is unavailable: not available on iOS
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS16.0.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLBlitCommandEncoder.h:50:1: note: 'synchronizeResource:' has been explicitly marked unavailable here
Looks like oak depends on github.com/go-gl/glfw/v3.3/glfw somewhere which is trying to reference a C library I don't seem to have? I'm not very familiar with either glfw or oak so all I can do is help test/build if anyone wants to chime in that knows this stuff better than I? 🤔
It's probably defaulting to try to build a darwin desktop target, because there isn't a driver underneath shiny/driver
that matches gomobile's ios build tags. Until such a driver exists it will probably fall over immediately.
Is there plan for ios & android support?