91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用MoonBit和Raylib構(gòu)建原生移動端游戲

OSC開源社區(qū) ? 來源:OSC開源社區(qū) ? 2026-03-14 11:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、引言

當你想做一個簡單的手機游戲,比如 Flappy Bird、2048、貪吃蛇——你的第一反應(yīng)可能是打開 Unity 或者 Godot。但你有沒有想過:對于一個只需要畫幾個矩形和圓的游戲,你真的需要一個完整的游戲引擎嗎?

引擎內(nèi)部數(shù)十萬行的 C++ 代碼帶來的不只是便利,或許還有冗余。如果我們換一種思路:不用引擎,不依賴運行時,直接用一門現(xiàn)代語言編寫游戲邏輯,編譯為原生機器碼,再搭配一個極簡的圖形庫,結(jié)果會怎樣?

這正是本文要探討的命題:使用 MoonBit(一門編譯到原生代碼的現(xiàn)代語言)和 Raylib(一個僅提供最基本圖形能力的 C 庫),從零構(gòu)建一個可以在 Android 手機上運行的 Flappy Bird。

在這個過程中,你會看到:一個完整的移動游戲,可以只有幾百行代碼、幾 MB 的 APK,以及零引擎依賴。

二、移動游戲開發(fā)的技術(shù)選型演進

2015年前后,手機游戲開發(fā)主要依賴三大技術(shù)路線:

引擎時代(Unity/Godot):提供一站式開發(fā)環(huán)境,大幅降低門檻,但存在包體臃腫、底層黑箱、版本更新風險等問題。Godot 雖開源,思路仍類似。

跨平臺框架(React Native/Flutter):承諾一套代碼多端運行,適合 UI 應(yīng)用。但在游戲中暴露出額外抽象層、GC 停頓、非為高頻渲染優(yōu)化等性能瓶頸。

原生 NDK(C/C++):性能最優(yōu),無中間開銷,但開發(fā)體驗差,手動內(nèi)存管理易引發(fā)段錯誤等 bug,對業(yè)余項目成本過高。

有沒有一種方案,既能獲得原生性能,又能享受現(xiàn)代語言的開發(fā)體驗?

這正是 MoonBit 和 Raylib 的組合所提供的。

MoonBit 是一門為性能而設(shè)計的現(xiàn)代編程語言。它擁有強類型系統(tǒng)、模式匹配、類型推導(dǎo),編寫體驗接近 Rust 或 OCaml,但編譯目標是 C——這意味著它可以直接對接 Android NDK 的工具鏈,最終生成和手寫 C 一樣高效的原生代碼。

Raylib 則是游戲圖形庫的極簡主義代表。它不是引擎,不幫你管理場景,不提供編輯器——它只做四件事:開窗口、畫圖形、讀輸入、放聲音。用戶面對的核心 API 集中在一個頭文件 raylib.h 中,沒有復(fù)雜的依賴關(guān)系,沒有狀態(tài)機,沒有回調(diào)地獄。

把它們組合在一起,你得到的是:

cccd7ada-1dfa-11f1-90a1-92fbcf53809c.png

這不是說 MoonBit + Raylib 適合所有場景——如果你在做一款需要物理引擎、粒子系統(tǒng)、骨骼動畫的大型游戲,Unity 仍然是更合理的選擇。但如果你的目標是一款邏輯清晰的 2D 游戲,這套"極簡主義"方案可能是最干凈的路徑。

讓我們來看看它是怎么工作的。

三、理解構(gòu)建鏈路:從源碼到 APK

在動手寫代碼之前,有一個問題值得想清楚:你寫的 MoonBit 代碼,是如何變成手機上可以運行的 APK 的?

理解構(gòu)建鏈路不是為了背誦流程——而是為了在出問題時,知道該往哪里看。

1、構(gòu)建鏈路

整個過程可以用一條鏈來描述:

cd25d392-1dfa-11f1-90a1-92fbcf53809c.png

讓我們逐步拆解。

第一步:MoonBit → C。MoonBit 編譯器將你的 `.mbt` 源文件編譯為標準 C 代碼。MoonBit 的強類型系統(tǒng)在編譯期就排除了大量常見錯誤,生成的 C 代碼是高效的、確定性的。你可以把它理解為:MoonBit 幫你寫了人類不太愿意手寫的那種高質(zhì)量 C 代碼。

第二步:C → .so。Android NDK 中的交叉編譯器(通常是 clang)接手,將 C 代碼連同 Raylib 的源碼一起編譯為目標架構(gòu)的共享庫(`.so` 文件)。這一步和你用 NDK 編譯任何 C/C++ 項目一樣。

第三步:打包成 APK。Gradle 構(gòu)建系統(tǒng)將 .so 文件打包進 APK。同時,那個極輕量的 Kotlin 入口點(僅僅是加載庫和隱藏系統(tǒng) UI)會經(jīng)過標準的 Android 編譯流程:Kotlin 編譯器將其編譯為 JVM 字節(jié)碼,再由 D8 工具轉(zhuǎn)換為 Android 運行時使用的 classes.dex。最終的 APK 結(jié)構(gòu)非常簡單:

APK
├── classes.dex     ← 極小的 Kotlin 膠水代碼
├── lib/
│  ├── arm64-v8a/
│  │  └── libflappybird.so ← 你的游戲 + Raylib
│  └── armeabi-v7a/
│    └── libflappybird.so
└── AndroidManifest.xml

如果用一個類比:傳統(tǒng)引擎方案就像你寫了一封信,然后把它裝進一個帶有自動翻譯器、排版引擎和朗讀功能的智能信封里寄出去。而 MoonBit + Raylib 的方案就像你直接把信折好,塞進一個普通信封——信的內(nèi)容沒有變,但信封輕了十倍。

2、腳手架:一鍵搭建項目

理解了鏈路之后,實際操作反而很簡單。MoonBit 生態(tài)提供了一個腳手架工具,可以一鍵生成上述所有構(gòu)建配置:

mooninstalltonyfettes/create-moonbit-raylib-android-app
create-moonbit-raylib-android-app MyFlappyBird


生成的項目結(jié)構(gòu)看起來像這樣:
MyFlappyBird/
├── gradlew             # Gradle 構(gòu)建包裝器
├── app/
│  ├── build.gradle.kts      # Android 構(gòu)建配置 (NDK, ABI 目標)
│  ├── src/main/
│  │  ├── AndroidManifest.xml   # 應(yīng)用清單 (NativeActivity)
│  │  ├── java/.../MainActivity.kt# 輕量 Kotlin 入口點
│  │  ├── moonbit/        # 你的游戲代碼存放處
│  │  │  ├── main.mbt      # 游戲代碼
│  │  │  ├── moon.mod.json   # MoonBit 模塊配置
│  │  │  └── moon.pkg      # 包聲明
│  │  └── cpp/
│  │    └── CMakeLists.txt   # 構(gòu)建管道膠水代碼
│  └── ...
└── gradle/
這里關(guān)鍵的只有一個目錄:app/src/main/moonbit/——你的所有游戲邏輯都寫在這里。其余的 Gradle 配置、CMake 文件、Kotlin 入口點,腳手架已經(jīng)幫你處理好了。 模塊配置(moon.mod.json)聲明了對 Raylib 綁定的依賴:
{
"name":"username/myflappybird",
"version":"0.1.0",
"deps": {
 "tonyfettes/raylib":"0.2.2"
 },
"preferred-target":"native"
}

構(gòu)建和部署也是一行命令:
cdMyFlappyBird
./gradlew assembleDebug --no-daemon

第一次構(gòu)建需要幾分鐘(它會從源碼編譯 Raylib),之后的增量構(gòu)建會快得多。你也可以在 Android Studio 中打開項目,點擊 Run 按鈕一鍵編譯部署。

cd7a1376-1dfa-11f1-90a1-92fbcf53809c.png

在運行時,輕量的 MainActivity 加載 .so 庫,NDK 膠水代碼啟動原生端,Raylib 初始化 OpenGL ES 上下文,然后調(diào)用 main()——也就是你用 MoonBit 寫的那個 fn main。

基礎(chǔ)設(shè)施講完了。現(xiàn)在讓我們進入真正有趣的部分:游戲邏輯。

四、構(gòu)建 Flappy Bird

1、游戲循環(huán)

從《超級馬里奧》到《原神》,所有實時游戲在最底層都共享同一個結(jié)構(gòu)——初始化(Init)、循環(huán)執(zhí)行更新(Update)與繪制(Draw)、最后清理(Cleanup):

cdd69bc8-1dfa-11f1-90a1-92fbcf53809c.png

這就是游戲循環(huán)(Game Loop)。它揭示了實時游戲的本質(zhì):游戲不是一系列事件的響應(yīng),而是一幀又一幀的持續(xù)模擬。和 Web 應(yīng)用的事件驅(qū)動模型不同,游戲代碼每秒執(zhí)行 60 次,無論用戶是否操作——用戶輸入不是觸發(fā)器,而是被每一幀"采樣"的信號。

一個良好的游戲架構(gòu)應(yīng)該將狀態(tài)更新(update)和畫面繪制(draw)嚴格分離:update 只修改數(shù)據(jù),draw 只讀取數(shù)據(jù),不存在交叉副作用。讓我們用這個原則來構(gòu)建 Flappy Bird。

2、定義游戲世界

首先,用結(jié)構(gòu)體描述游戲中的所有對象:

///|
privstructBird{
muty:Float
mutvelocity:Float
}

///|
privstructPipe{
mutx:Float
mutgap_y:Float
mutscored:Bool
}

///|
privstructGame{
sw: Float
sh: Float
bird_x: Float
bird: Bird
bird_radius: Float
gravity: Float
jump_force: Float
pipes: Array[Pipe]
pipe_width: Float
gap_size: Float
pipe_speed: Float
pipe_spacing: Float
 mutscore: Int
 mutgame_over: Bool
}

Bird 只保存每幀變化的值(位置和速度),而不變的屬性(水平位置、半徑)由 Game 持有——可變狀態(tài)越少,bug 越少。每個 Pipe 記錄水平位置 x、空隙中心點 gap_y(開口的垂直中點)和計分標志 `scored`。 另一個值得關(guān)注的細節(jié):所有大小都從屏幕尺寸(sw、sh)派生——鳥的半徑是 sh / 25.0,重力加速度是 sh * 1.5。這意味著游戲在任何分辨率的設(shè)備上都能保持相同的視覺比例和手感,不需要額外的適配邏輯。

3、游戲邏輯

update 函數(shù)處理所有狀態(tài)變化——物理模擬、水管移動、碰撞檢測和計分:

///|
fnupdate(game : Game, dt : Float)-> Unit{
ifgame.game_over {
 if@raylib.is_gesture_detected(@raylib.GestureTap) {
   reset(game)
  }
 return
 }

if@raylib.is_gesture_detected(@raylib.GestureTap) {
  game.bird.velocity = game.jump_force
 }

 game.bird.velocity += game.gravity * dt
 game.bird.y += game.bird.velocity * dt

// 限制在屏幕邊緣內(nèi)
ifgame.bird.y < game.bird_radius {
? ? game.bird.y = game.bird_radius
? ? game.bird.velocity =?0.0
? }
if?game.bird.y > game.sh - game.bird_radius {
  game.bird.y = game.sh - game.bird_radius
  game.bird.velocity =0.0
 }

forpipe in game.pipes {
  pipe.x -= game.pipe_speed * dt
 // 水管滾出左邊緣后回收到右側(cè)
 ifpipe.x < -game.pipe_width {
? ? ? pipe.x += Float::from_int(game.pipes.length()) * game.pipe_spacing
? ? ? pipe.gap_y = random_gap_y(game)
? ? ? pipe.scored =?false
? ? }

? ??// AABB 碰撞檢測
? ??if?game.bird_x + game.bird_radius > pipe.x &&
   game.bird_x - game.bird_radius < pipe.x + game.pipe_width {
? ? ??if?game.bird.y - game.bird_radius < pipe.gap_y - game.gap_size /?2.0?||
? ? ? ? game.bird.y + game.bird_radius > pipe.gap_y + game.gap_size /2.0{
    game.game_over =true
   }
  }

 // 飛過水管時計分
 ifnot(pipe.scored)&& pipe.x + game.pipe_width < game.bird_x?{
? ? ? game.score +=?1
? ? ? pipe.scored =?true
? ? }
? }
}



這段代碼有幾個值得注意的設(shè)計決策:

幀率無關(guān)性:所有涉及"隨時間變化"的量都乘以 `dt`(自上一幀經(jīng)過的秒數(shù))。`game.bird.velocity += game.gravity * dt` 意味著"每秒增加 `gravity` 這么多速度"——無論設(shè)備是 60fps 還是 30fps,物理效果一致。

對象回收:整個游戲只有 4 個水管對象。當一根水管滾出左邊緣,直接把 `x` 坐標加上偏移量"傳送"到最右邊,重新隨機空隙位置。不需要對象池框架——一個 `if` 和一次坐標重置就夠了。

AABB 碰撞檢測:將圓形小鳥近似為外接矩形,檢測它與水管矩形是否重疊——先查水平方向重疊,再查小鳥是否在空隙之外。不是像素級精確,但對休閑游戲完全足夠。

游戲結(jié)束檢查:`update` 頂部的 `game_over` 檢查攔截一切后續(xù)邏輯,讓游戲"凍結(jié)"在撞擊瞬間,只允許點擊重啟。

draw 函數(shù)只負責將當前狀態(tài)繪制到屏幕:

///|
fn draw(game : Game) -> Unit {
@raylib.begin_drawing()
@raylib.clear_background(@raylib.skyblue)
forpipeingame.pipes {
 letpx = pipe.x.to_int()
 letpw = game.pipe_width.to_int()
 letgap_top = (pipe.gap_y - game.gap_size /2.0).to_int()
 letgap_bottom = (pipe.gap_y + game.gap_size /2.0).to_int()
 @raylib.draw_rectangle(px,0, pw, gap_top,@raylib.darkgreen)
 @raylib.draw_rectangle(
   px,
   gap_bottom,
   pw,
  @raylib.get_screen_height() - gap_bottom,
  @raylib.darkgreen,
  )
 }
@raylib.draw_circle_v(
 @raylib.Vector2::new(game.bird_x, game.bird.y),
  game.bird_radius,
 @raylib.yellow,
 )
@raylib.end_drawing()
}
先畫水管再畫小鳥,確保小鳥總在最上層。所有繪圖調(diào)用必須在begin_drawing()和end_drawing()之間。

輔助函數(shù)和初始化邏輯:
///|
fnrandom_gap_y(game : Game)-> Float{
 Float::from_int(
 @raylib.get_random_value(
   (game.gap_size /2.0+50.0).to_int(),
   (game.sh - game.gap_size /2.0-50.0).to_int(),
  ),
 )
}

///|
fnreset(game : Game)-> Unit{
 game.bird.y = game.sh /2.0
 game.bird.velocity =0.0
 game.score =0
 game.game_over =false
fori in0..
最后,main將一切連接起來:
///|
fn main {
 @raylib.init_window(0,0,"Flappy Bird")
 @raylib.set_target_fps(60)
 @raylib.set_exit_key(0)
letsw= Float::from_int(@raylib.get_screen_width())
letsh= Float::from_int(@raylib.get_screen_height())

letgame : Game = {
 sw,
 sh,
  bird_x:sw*0.2,
  bird: {y:0.0, velocity:0.0},
  bird_radius:sh/25.0,
  gravity:sh*1.5,
  jump_force:sh* -0.65,
  pipes:Array::make(4, fn() { {x:0.0, gap_y:0.0, scored: false } }),
  pipe_width:sw/8.0,
  gap_size:sh/4.0,
  pipe_speed:sw*0.4,
  pipe_spacing:sw/2.5,
  score:0,
  game_over: false,
 }
 reset(game)

whilenot(@raylib.window_should_close()) {
 letdt = @raylib.get_frame_time()
 update(game, dt)
  draw(game)
 }
 @raylib.close_window()
}
init_window(0, 0, ...)表示使用屏幕全尺寸——在 Android 上就是全屏。游戲循環(huán)本身只有三行:獲取 dt、更新、繪制。is_gesture_detected(GestureTap)同時響應(yīng)觸屏和鼠標點擊,可以在桌面開發(fā)測試后無縫部署到手機。

構(gòu)建并部署:
cdMyFlappyBird
./gradlew assembleDebug --no-daemon
adb install -r app/build/outputs/apk/debug/app-debug.apk

重力、水管、碰撞檢測、計分、游戲結(jié)束和重啟——全在一個文件、約 200 行代碼里。沒有引擎,沒有運行時,沒有框架。

五、總結(jié)與展望

讓我們回顧一下整個技術(shù)脈絡(luò)。

我們從一個簡單的問題出發(fā):一個休閑小游戲,真的需要一個完整的游戲引擎嗎? 然后沿著"從重到輕"的路徑,審視了移動游戲開發(fā)的幾種技術(shù)選型——從引擎(Unity/Godot)到跨平臺框架,再到原生 NDK,最終到達 MoonBit + Raylib 這個極簡組合。

在構(gòu)建鏈路層面,我們看到 MoonBit 編譯到 C、C 通過 NDK 編譯到 .so、.so 打包進 APK 的清晰路徑——每一步都是確定性的,沒有黑箱。

在游戲架構(gòu)層面,我們理解了游戲循環(huán)這個"所有游戲的共同骨架",以及為什么 update/draw 分離、幀率無關(guān)的物理模擬是重要的設(shè)計原則。

在具體實現(xiàn)層面,我們用約 200 行代碼構(gòu)建了一個完整的 Flappy Bird,其中涉及了對象回收(窮人版對象池)和 AABB 碰撞檢測等實用技巧。

這套方案不是萬能的。如果你需要 3D 渲染管線、物理引擎、骨骼動畫、熱更新——使用 Unity 或 Godot 仍然是更務(wù)實的選擇。但如果你的目標是一款輕量的 2D 游戲,追求的是小包體、高性能、完全可控的代碼,那么"做減法"的思路值得一試。

這里有一些可以繼續(xù)探索的方向:

tonyfettes/raylib —— MoonBit 的 Raylib 綁定庫,涵蓋圖形、紋理、音頻、3D 模型、著色器等完整功能

selene —— 一個用 MoonBit 編寫的實驗性游戲引擎,支持 WebGPU 和 Raylib 后端,專為網(wǎng)頁和原生游戲設(shè)計

MoonBit 文檔 —— 語言詳細文檔

另外值得注意一點的是,本文中所有示例代碼均由 AI 生成,甚至包括 Raylib 綁定庫本身。我們利用 AI Agent 的 Subagent 并行化地在桌面、Web 和 Android 平臺上產(chǎn)出了超過 150 款游戲。更多詳情可參見 tonyfettes/raylib 下的 examples/ 目錄。

從 Unity 的"給你一切"到 MoonBit + Raylib 的"只給你需要的",這不僅是技術(shù)選型的變化,更是一種開發(fā)哲學(xué)的轉(zhuǎn)變——最好的代碼不是寫出來的,而是不需要寫的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    4030

    瀏覽量

    134082
  • 游戲
    +關(guān)注

    關(guān)注

    2

    文章

    791

    瀏覽量

    27488
  • 移動端
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    4751

原文標題:用 200 行 MoonBit 構(gòu)建原生移動端游戲

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    原生js實現(xiàn)移動Touch輪播圖的方法步驟是什么

    原生js實現(xiàn)移動Touch輪播圖的方法步驟
    發(fā)表于 06-08 14:43

    如何使用PVRTexTool提升移動圖形的效果

    本文作者Ben Anuworakarn 是PowerVR 開發(fā)技術(shù)團隊的技術(shù)作者,具有計算科學(xué)工程知識背景。文中,他針對移動游戲畫面的優(yōu)化,介紹了圖像紋理處理、Mipmapping以及滲色等相關(guān)技術(shù)。同時,通過充分利用PVRT
    發(fā)表于 01-28 07:02

    HarmonyOS/OpenHarmony原生應(yīng)用開發(fā)-華為Serverless云端服務(wù)支持說明(一)

    云端服務(wù)的實現(xiàn)是HarmonyOS/OpenHarmony原生應(yīng)用開發(fā)的一個重要的環(huán)節(jié),如果用戶是鴻蒙原生應(yīng)用,但是服務(wù)即云端還是基于傳統(tǒng)的各種WEB網(wǎng)絡(luò)框架、數(shù)據(jù)庫與云服務(wù)器,那
    發(fā)表于 10-08 10:22

    5G云游生態(tài)計劃-云原生游戲開發(fā)生態(tài)構(gòu)建大會順利舉行

    9月24日,由中國信息通信研究院和5G云游戲產(chǎn)業(yè)聯(lián)盟聯(lián)合主辦的5G云游生態(tài)計劃-云原生游戲開發(fā)生態(tài)構(gòu)建大會上海站順利舉行。本次大會旨在擴展5G云游戲
    的頭像 發(fā)表于 09-28 17:47 ?2763次閱讀

    如何使用PVRTexTool提升移動圖形效果

    本文作者Ben Anuworakarn 是PowerVR 開發(fā)技術(shù)團隊的技術(shù)作者,具有計算科學(xué)工程知識背景。文中,他針對移動游戲畫面的優(yōu)化,介紹了圖像紋理處理、Mipmapping以及滲色等相關(guān)技術(shù)。同時,通過充分利用PVRT
    發(fā)表于 01-21 09:22 ?5次下載
    如何使用PVRTexTool提升<b class='flag-5'>移動</b><b class='flag-5'>端</b>圖形效果

    MediaTek天璣9000支持移動游戲超分技術(shù)

    PC 游戲飛速演進,硬件線程調(diào)度器(Thread Director)、深度學(xué)習超級采樣(DLSS)等創(chuàng)新技術(shù)層出不窮,各處理器單元通過先進的調(diào)度機制協(xié)同計算,大幅提升游玩家的體驗。隨著各類大型 3D 游戲走紅,手機
    的頭像 發(fā)表于 03-17 09:17 ?2031次閱讀

    移動游戲體驗的發(fā)展趨勢

    這一期的科技「聯(lián)」談,我想聊聊關(guān)于移動游戲體驗的發(fā)展趨勢,以及天璣的創(chuàng)新如何逐步進階,去不斷成就未來移動市場的“超級玩家”—— 讓他們既能火力全開,又能冷靜輸出。
    的頭像 發(fā)表于 04-27 10:24 ?2506次閱讀

    Mavenir致力于利用云原生軟件構(gòu)建面向未來的網(wǎng)絡(luò)

    Mavenir是一家網(wǎng)絡(luò)軟件提供商,致力于利用可以在任何云上運行并可改變世界連接方式的云原生軟件來構(gòu)建面向未來的網(wǎng)絡(luò)。該公司今天證實,已被選中為Telefónica Hispam (Hispanoamérica)遍布墨西哥、哥倫比亞和智利的固定網(wǎng)絡(luò)和
    的頭像 發(fā)表于 06-08 13:36 ?4052次閱讀

    raylib簡單易用的視頻游戲編程庫

    ./oschina_soft/raylib.zip
    發(fā)表于 06-17 15:22 ?7次下載
    <b class='flag-5'>raylib</b>簡單易用的視頻<b class='flag-5'>游戲</b>編程庫

    AICAN 服務(wù)器平臺大幅加快云端移動游戲的傳輸速度

    AICAN 平臺將帶來原生兼容性和高性能,大幅加快云端移動游戲的傳輸速度。
    的頭像 發(fā)表于 08-30 09:18 ?1565次閱讀

    Cocos 攜手 Google 打造Web游戲開發(fā)新體驗

    ,Cocos CEO 林順受邀發(fā)表主題演講《使用 Cocos Creator 打造優(yōu)秀的原生Web游戲體驗》,并與來自Google Play、米哈游、江娛互動的行業(yè)專家,圍繞“多端觸達、構(gòu)建多樣化
    的頭像 發(fā)表于 09-16 10:17 ?1490次閱讀
    Cocos 攜手 Google 打造Web<b class='flag-5'>端</b><b class='flag-5'>游戲</b>開發(fā)新體驗

    Katalon:移動測試

    移動應(yīng)用程序(app)測試是驗證手持設(shè)備的應(yīng)用程序是否滿足某些移動測試要求的過程?!?b class='flag-5'>移動app”是指三種類型的軟件:原生應(yīng)用、
    的頭像 發(fā)表于 04-21 10:12 ?1927次閱讀

    MediaTek與Unity中國攜手合作,打造次世代移動游戲體驗新標桿

    2023年7月26日 – MediaTek與Unity在華合資公司Unity中國共同宣布,MediaTek天璣9200和天璣9200+正式成為原生支持Unity引擎的旗艦移動芯片。通過軟硬件融合構(gòu)建
    發(fā)表于 07-26 14:28 ?717次閱讀
    MediaTek與Unity中國攜手合作,打造次世代<b class='flag-5'>移動</b><b class='flag-5'>游戲</b>體驗新標桿

    MediaTek 與 Unity 中國攜手合作,打造次世代移動游戲體驗新標桿

    MediaTek 與 Unity 在華合資公司 Unity 中國共同宣布,MediaTek 天璣 9200 和天璣 9200+ 正式成為原生支持 Unity 引擎的旗艦移動芯片。通過軟硬件融合構(gòu)建
    的頭像 發(fā)表于 07-26 19:15 ?972次閱讀
    MediaTek 與 Unity 中國攜手合作,打造次世代<b class='flag-5'>移動</b><b class='flag-5'>游戲</b>體驗新標桿

    開源編程語言MoonBit 2024年度技術(shù)盤點

    2024年對 MoonBit 來說是一個非凡的里程碑年。在 AI 浪潮澎湃的一年里,用戶數(shù)量呈現(xiàn)指數(shù)級增長,新功能陸續(xù)發(fā)布,會議演講創(chuàng)下新紀錄,社區(qū)也形成生態(tài)規(guī)模。隨著年終將至,回顧這一
    的頭像 發(fā)表于 01-16 09:18 ?2609次閱讀
    開源編程語言<b class='flag-5'>MoonBit</b> 2024年度技術(shù)盤點