發(fā)布時(shí)間:2023-11-27 20:46:33 瀏覽量:166次
字節(jié)抖音小游戲是一種基于字節(jié)跳動(dòng)產(chǎn)品生態(tài)開(kāi)發(fā)且無(wú)需下載安裝即可使用的全新游戲應(yīng)用,實(shí)現(xiàn)了客戶端“點(diǎn)開(kāi)即玩”的優(yōu)質(zhì)用戶體驗(yàn)。小游戲擁有開(kāi)發(fā)輕便快捷,發(fā)布流程簡(jiǎn)單的特點(diǎn),同時(shí)依托字節(jié)跳動(dòng)生態(tài)優(yōu)勢(shì),讓小游戲天然具備較強(qiáng)的內(nèi)容分發(fā)能力,支持小游戲開(kāi)發(fā)者快速推廣與變現(xiàn)。
進(jìn)入字節(jié)小程序開(kāi)發(fā)者后臺(tái),在開(kāi)發(fā)者平臺(tái)中點(diǎn)擊右上角的「快捷登錄」進(jìn)行帳號(hào)注冊(cè)。在登錄后需要通過(guò)【申請(qǐng)創(chuàng)建】提示完成申請(qǐng)流程即可。
然后等著字節(jié)小游戲通過(guò)注冊(cè)時(shí)的手機(jī)號(hào)或郵箱給予的答復(fù)。工作日提交的話一般在幾個(gè)小時(shí)之內(nèi)就有答復(fù),最長(zhǎng)時(shí)間為兩個(gè)工作日之內(nèi)。
注冊(cè)后按照要求填寫(xiě)資質(zhì)信息:公司就寫(xiě)企業(yè)全稱,個(gè)人開(kāi)發(fā)者填寫(xiě)個(gè)人姓名,然后其他內(nèi)容根據(jù)要求填寫(xiě)。
其中需要注意的是小游戲體驗(yàn)路徑:一般是一個(gè)可用的測(cè)試鏈接或者是一個(gè)網(wǎng)盤地址里面放一個(gè)可以玩的apk。(我們寫(xiě)過(guò)蘋果商店地址審核失敗了,應(yīng)該是IOS的不行)
如果使用 natvie 方案:確認(rèn)游戲工程運(yùn)行在 Unity 2019.4.8f1 或者 Unity 2019.4.35f1
如果使用 wasm 方案:建議使用 unity 最新版,比如 2021.2 之后的版本,在 wasm 方面做了很多優(yōu)化
可以用 2019.4.8 構(gòu)建 native 版本,用 2021.x 構(gòu)建 wasm,一起發(fā)布。
我前幾天測(cè)試了2019.4.35f1c1,2019.4.8f1,Unity2021.3.3f1c1版本都是可以使用的,
不過(guò)在7月26號(hào)看到有開(kāi)發(fā)者反饋說(shuō)2019.4.8f1不好用了,官方回復(fù):最近因?yàn)锳ndroid 12 的普及新增崩潰太多了,所以發(fā)新版需要升級(jí)了。
因?yàn)椴寮旧硪苍陂_(kāi)發(fā)中,所以建議在開(kāi)發(fā)是加入意見(jiàn)反饋群(在官方文檔文末),及時(shí)關(guān)注動(dòng)態(tài),以免重復(fù)趟坑。
我這里用的是Unity2021.3.3f1c1版本:
發(fā)布Android就在下載時(shí)添加:Android Build Support 模塊:
發(fā)布WebGL的話就在下載時(shí)添加:WebGL Build Support 模塊: (想上線IOS的話只能使用WebGL的方式進(jìn)行發(fā)布)
審核通過(guò)后就可以在應(yīng)用中心看一個(gè)以07結(jié)尾且長(zhǎng)度是20位AppID,若不是需要重新申請(qǐng)(后面打包時(shí)用)
下載字節(jié)SDK:開(kāi)發(fā)者后臺(tái),建議先讀一遍文檔,因?yàn)楫?dāng)你看的時(shí)候有可能有更新:
導(dǎo)入后在工具欄選:ByteGame --> ByteGame Develop Tools
打開(kāi)后下載:StarkSDK和StarkSDKUnityTools兩個(gè)包:
下載完成后目錄大致如下:
發(fā)布抖音小游戲,只需要一個(gè)錄屏分享功能即可上線。所以這里只提供錄屏和分享功能示例,其他功能可按需接入,官方文檔地址。
邏輯也非常簡(jiǎn)單,創(chuàng)建三個(gè)按鈕分別為開(kāi)始游戲,游戲結(jié)束,分享錄屏來(lái)模擬游戲過(guò)程中的功能實(shí)現(xiàn);帶有詳細(xì)注釋的接入代碼如下:
using System.Collections;
using System.Collections.Generic;
using StarkSDKSpace;
using UnityEngine;
using UnityEngine.UI;
public class StarkSDKTest : MonoBehaviour
{
public Button startBtn;
public Button endBtn;
public Button shareBtn;
void Start()
{
startBtn.onClick.AddListener(StartVideo);
endBtn.onClick.AddListener(StopVideo);
shareBtn.onClick.AddListener(ShareVideo);
}
void StartVideo()
{
Debug.Log("抖音 開(kāi)啟錄制視頻 ...");
// <param name="isRecordAudio">是否錄制聲音,默認(rèn)為錄制聲音</param>
// <param name="maxRecordTimeSec">最大錄制時(shí)長(zhǎng),單位 s。小于等于 0 則無(wú)限制。默認(rèn)為10分鐘</param>
// <param name="startCallback">視頻錄制開(kāi)始回調(diào)</param>
// <param name="errorCallback">視頻錄制失敗回調(diào)</param>
bool isStart = StarkSDK.API.GetStarkGameRecorder().StartRecord(true, 200,
StartCallback, FailedCallback, SuccessCallback);
Debug.Log("視頻開(kāi)啟錄制結(jié)果 ..." + isStart);
}
void StopVideo()
{
Debug.Log("抖音 停止錄制視頻 ...");
bool isStop = StarkSDK.API.GetStarkGameRecorder().StopRecord(SuccessCallback, FailedCallback, null, false);
Debug.Log("停止錄制視頻狀態(tài) ..." + isStop);
}
void StartCallback()
{
Debug.Log("視頻開(kāi)始錄制回調(diào)執(zhí)行 ...");
// 開(kāi)始回調(diào)邏輯,比如:顯示錄屏中按鈕
}
void FailedCallback(int errCode, string errMsg)
{
Debug.Log("錄制視頻失敗回調(diào)執(zhí)行 ... 錯(cuò)誤碼是:" + errCode + " ,錯(cuò)誤消息是:" + errMsg);
// 失敗回調(diào)邏輯,比如:隱藏錄屏中按鈕
}
void SuccessCallback(string videoPath)
{
Debug.Log("視頻錄制完成實(shí)際路徑:" + videoPath);
// 成功回調(diào)邏輯,比如:隱藏錄屏中按鈕
}
void ShareVideo()
{
Debug.Log("ShareVideo ShareVideo ...");
// 只有回調(diào),不帶預(yù)定義標(biāo)題和話題
StarkSDK.API.GetStarkGameRecorder().ShareVideo(SuccessCallback, FailedCallback, CancelledCallback);
// <param name="successCallback">分享成功回調(diào)</param>
// <param name="failedCallback">分享失敗回調(diào)</param>
// <param name="cancelledCallback">分享取消回調(diào)</param>
// <param name="title">分享視頻的標(biāo)題,如不需要設(shè)置標(biāo)題,可以傳null或空字符串</param>
// <param name="topics">分享視頻的話題,如不需要設(shè)置話題,可以傳null或空列表</param>
//StarkSDK.API.GetStarkGameRecorder().ShareVideoWithTitleTopics(SuccessCallback, FailedCallback,
// CancelledCallback, "自定義標(biāo)題", new List<string>() {"自定義話題1", "自定義話題2"});
void SuccessCallback(Dictionary<string, object> dictionary)
{
Debug.Log("視頻分享成功回調(diào) ...");
// 成功回調(diào)邏輯,比如:彈窗提示并發(fā)放獎(jiǎng)勵(lì)
}
void CancelledCallback()
{
Debug.Log("取消分享回調(diào) ...");
// 取消回調(diào)邏輯,比如:彈窗提示
}
void FailedCallback(string errMsg)
{
Debug.Log("分享視頻失敗回調(diào)執(zhí)行 ... " + " ,錯(cuò)誤消息是:" + errMsg);
// 失敗回調(diào)邏輯,比如:彈窗提示
}
}
}
最后將代碼掛載到游戲場(chǎng)景中并將上面創(chuàng)建的三個(gè)按鈕賦值給代碼中預(yù)留的公開(kāi)變量。
然后運(yùn)行:點(diǎn)擊開(kāi)始游戲按鈕 -——> 調(diào)用錄屏邏輯 -——> 游戲中出現(xiàn):開(kāi)發(fā)階段...文字提示,-——> SDK接入成功 -——> 進(jìn)入真機(jī)測(cè)試階段。
在工具欄選擇 ByteGame --> StarkSDKTools --> Build Tool 即可打開(kāi)打包的工具面板
在面板的運(yùn)行框架選擇Native,然后按照需求填寫(xiě),構(gòu)建即可。
在面板的運(yùn)行框架選擇WebGL,然后選擇構(gòu)建WebGL:
構(gòu)建完成后,會(huì)在指定目錄生成 --> 一個(gè)webgl的目錄和一個(gè)壓縮包,如下圖:
然后在3.1圖1中選擇發(fā)布WebGl:
最后按需填寫(xiě)完成后,選擇發(fā)布,等待發(fā)布完成即可在彈出二維碼,使用抖音掃描就可以進(jìn)行測(cè)試了。
測(cè)試IOS時(shí)發(fā)現(xiàn),使用IOS15.4版本的測(cè)試機(jī),不能成功加載出游戲場(chǎng)景,報(bào)錯(cuò)如下:
報(bào)錯(cuò)原文:
10:08:30.703 exception thrown: RuntimeError: Out of bounds memory access (evaluating 'dynCall_ii(index,a1)'),<?>.wasm-function[59627]@[wasm code] .wasm-function[146029]@[wasm code] .wasm-function[83839]@[wasm code] wasm-stub@[native code] invoke_ii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:413696 .wasm-function[83839]@[wasm code] .wasm-function[19042]@[wasm code] .wasm-function[1057]@[wasm code] .wasm-function[66513]@[wasm code] .wasm-function[4560]@[wasm code] .wasm-function[118584]@[wasm code] wasm-stub@[native code] invoke_iii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:411844 .wasm-function[118584]@[wasm code] .wasm-function[2239]@[wasm code] .wasm-function[63653]@[wasm code] .wasm-function[18940]@[wasm code] .wasm-function[541]@[wasm code] .wasm-function[540]@[wasm code] .wasm-function[111580]@[wasm code] .wasm-function[134747]@[wasm code] .wasm-function[18950]@[wasm code] .wasm-function[118583]@[wasm code] wasm-stub@[native code] invoke_iiii@blob:file:///ce3cf2cf-9cb3-4723-a499-98a7b0c93a71:3:412366
應(yīng)該unity引擎有些代碼變動(dòng)導(dǎo)致,一個(gè)相關(guān)說(shuō)明
解決方法:升級(jí)IOS版本就不會(huì)有問(wèn)題啦。
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計(jì)領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點(diǎn)擊咨詢報(bào)名。
2. 手機(jī)游戲如何開(kāi)發(fā)(如何制作傳奇手游,都需要準(zhǔn)備些什么?)
?如何制作傳奇手游,都需要準(zhǔn)備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說(shuō)明時(shí)代在進(jìn)步游戲在更新,更趨于方便化移動(dòng)化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費(fèi)、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費(fèi)、一鍵制作炫酷特效,適合新手小白??靵?lái)試試!
4. Steam值得入手的武俠游戲盤點(diǎn),各具特色的快意江湖
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個(gè)抉定都將觸發(fā)更多愛(ài)恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
5. Bigtime加密游戲經(jīng)濟(jì)體系揭秘,不同玩家角色的經(jīng)濟(jì)活動(dòng)
Bigtime加密游戲經(jīng)濟(jì)模型分析,探討游戲經(jīng)濟(jì)特點(diǎn),幫助玩家更全面了解這款GameFi產(chǎn)品。
6. 3D動(dòng)畫(huà)軟件你知道幾個(gè)?3ds Max、Blender、Maya、Houdini大比拼
當(dāng)提到3D動(dòng)畫(huà)軟件或動(dòng)畫(huà)工具時(shí),指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動(dòng)畫(huà)的軟件程序。但是,在3D動(dòng)畫(huà)軟件中還包含了其他類型的...
7. 3D動(dòng)漫建模全過(guò)程,不是一般人能學(xué)的會(huì)的,會(huì)的多不是人?
步驟01:面部,頸部,身體在一起這次我不準(zhǔn)備設(shè)計(jì)圖片,我從雕刻進(jìn)入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫(huà)的形式。像往常一樣,我從Sphere創(chuàng)建它...
8. 如何自己開(kāi)發(fā)一款游戲(游戲開(kāi)發(fā)入門必看:五大獨(dú)立游戲開(kāi)發(fā)技巧)
?游戲開(kāi)發(fā)入門必看:五大獨(dú)立游戲開(kāi)發(fā)技巧無(wú)論您是剛剛起步開(kāi)發(fā)自己的第一款游戲,還是已經(jīng)制作了幾款游戲,本篇文章中的5大獨(dú)立游戲開(kāi)發(fā)技巧都可以幫助您更好地設(shè)計(jì)下一款游戲。無(wú)論你對(duì)游戲有著什么樣的概念,都
9. 開(kāi)發(fā)三昧游戲叫什么(三昧動(dòng)漫)
?三昧動(dòng)漫對(duì)于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會(huì)推出《巫師4》。因?yàn)椤段讕煛废盗性诓邉澋臅r(shí)候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
10. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅(jiān)固
想讓你的3D打印模型更堅(jiān)固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計(jì)技巧,讓你輕松掌握!
最新文章
同學(xué)您好!