本文作者为奇舞团大前端CodeFarmer
背景
笔者在公司前前后后做了有小一年Flutter 开发,从入门到后面业务方变动,到暂时放弃Flutter。对于Flutter争议不提,我们得承认Flutter 是一款很优秀的跨端解决方案,到前段时间的Flutter3.0的提出,3.0对游戏做了很友好的支持,笔者又重新开始以游戏为切入点 去上手Flutter。所以我们探索一下Flutter3.0 对于游戏的支持力度,是否可以低成本写出一个自己的小游戏呢?
Why?为什么要做Flutter游戏开发?
一套代码多端运行(Flutter 特性):可以想想开发一款游戏,既能争安卓市场,苹果市场还能挣Web市场的钱,是不是很好?
比较流畅的仿原生环境,与纯原生环境相比流畅度无太大的降低;
游戏很挣钱,apple store 收入70%来自游戏;
Flutter 3.0 新出了对广告、应用内购买、Firebase、Play 服务和游戏中心等服务的预构建集成加快游戏开发;(方便发布游戏,3.0对游戏支持很友好)。
Flutter 侧重2d游戏,3D游戏 参考其他技术,如 unity3d
Flutter3.0环境准备
![c92a424e1537958e02807cdfe3387b98.png](https://img-blog.csdnimg.cn/img_convert/c92a424e1537958e02807cdfe3387b98.png)
以Mac 电脑为例,去准备Flutter 环境
Flutter 3.0 SDK 下载
下载以下安装包以获取 Flutter SDK 的最新稳定版本:
Intel芯片 M1 芯片 flutter_macos_3.0.1-stable.zip flutter_macos_arm64_3.0.1-stable.zip 解压SDK
cd ~/development unzip ~/Downloads/flutter_macos_arm64_3.0.1-stable.zip
添加环境变量:(关于Mac 环境变量 不累述:参考)
export PATH="$PATH:`pwd`/flutter/bin" open ~/.bash_profile source ~/.bash_profile
- 查看Flutter环境完整性: flutter doctor flutter doctor
环境常见问题
问题1:CocoaPods环境依赖安装cocoapods
sudo gem install cocoapods Error: To set up CocoaPods for ARM macOS, run: arch -x86_64 sudo gem install ffi
arch -x86_64 sudo gem install ffi、 Building native extensions. This could take a while... Successfully installed ffi-1.15.5 Parsing documentation for ffi-1.15.5 Done installing documentation for ffi after 3 seconds 1 gem installed
问题2:Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
flutter doctor --android-licenses
完整环境如下:非必须,缺失部分环境不影响开发
[✓] Flutter (Channel stable, 3.0.1, on macOS 12.4 21F79 darwin-arm, locale
zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version
32.1.0-rc1)
[✓] Xcode - develop for iOS and macOS (Xcode 13.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.2)
[✓] VS Code (version 1.67.2)
[✓] Connected device (4 available)
[✓] HTTP Host Availability
• No issues found!
第一个游戏模板
这个 Flutter 示例游戏 repo 预先集成了应用内购买、移动广告 SDK 和许多其他成功游戏的模块;
cd flutterdemo
git clone https://github.com/flutter/samples.git
Flutter 中的入门游戏,具有移动端(i