1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

APEXlangでVibe Coding:ADBとJevをつないだゲームを作ってみた

1
Last updated at Posted at 2026-09-21

はじめに

今回は、APEXlangで作ったアプリから、今話題の Jev を呼べるか試したくて、
既存の2048ゲームをCodexに頼んでAPEX版にしてみました。

できあがったのはこちら

Jevが2048を自動でプレイするアプリです。

Jevは、文章を生成する代わりに、選択肢からの判断と確率を返すTypeSafe AIのモデルです。

2048は、同じ数字のタイルを合体させて大きな数字を作っていくパズルゲームで、Jevには毎回「上下左右のどちらに動かすか」を判断してもらいます。

実際に動いている様子はこちらです。

左側にゲームの盤面、右側にレイテンシやコストなどの情報を並べています。
盤面の下には、選んだ方向と、方向ごとの判断確率も表示しています。

01-game-result.png

ゲーム終了時の1回の実行結果です。389手進み、最大タイルは512、スコアは5,604でした。

元にした以下のアプリではJevとLLMを並走させていましたが、今回はJev側だけをAPEX版にしています。

APEXlangと今回の環境

APEXlangの説明や開発環境は、前回の記事を参照してください。

今回もローカルのCodexから、既存のAutonomous AI Database(以下、ADB)上にアプリを作っています。
アプリ定義はAPEXlangで管理し、Codexに実装を指示して、SQLclで検証後にADB上のAPEXへimportしました。

ADBからJevを呼ぶ方法は、asahideさんのこちらの記事をおおいに参考にさせていただきました(感謝)

Codexに相談したこと

今回は、作成済みのゲームのソースコードを渡し、APEXでどこまでできるか相談するところから始めました。
やり取りから抜き出すと、こんな感じです。

「このアプリ、私が作ったんだけど、APEXlangでも実装できる?」

「APEXからJev呼び起こせる? asahideさんの記事を参考に確認して」

「左右の独立ループは不要でOK。Jevだけ動かせたらOKとして、リアルタイムで、レイテンシとコストを見えるような仕様には出来る?」

アプリの構成と保存の流れ

全体の構成はこちらです。OCI側のコンポーネントはADBだけで完結してます。

02-runtime-architecture.png

ブラウザとの通信をORDSが仲介し、ADB内のAPEXが画面とログインを受け持ちます。
ゲームの処理とJevの呼出しは、PL/SQLが担当します。

保存先のテーブルももちろんADB内です。
ゲームの状態、各手の履歴、モデルや単価の設定などを保存しています。

ADBからJevを呼ぶ

ADBのPL/SQLから、DBMS_CLOUD.SEND_REQUEST でJevのAPIを呼び出しています。
APIキーはDBの資格証明に保存し、呼出し先を bearer://api.typesafe.ai/v1/systemone と指定します。
この形式では、資格証明に保存したキーがBearerトークンとして送られます。
認証方式をURIで指定する仕組みは、Oracleのドキュメントにも記載されています。

Jevの判断でゲームを進める

1手ごとのデータの流れは、次のようになります。

03-decision-data-flow.png

  • ADB側のコードが盤面やスコア、動かせる方向を整理してJevへ送る
  • Jevが返した方向ごとの確率をもとに、有効な方向を選び、タイルの移動や合体、スコア計算を行って保存する

ゲームのルールと計算はADB側、次の一手の評価はJev、という分担です。

自動プレイはADB内のバックグラウンド処理で進み、ブラウザは最新の状態を定期的に取得します。
画面には盤面だけでなく、各手のAPI呼出し時間やトークン数、概算コストも反映されます。

さいごに

ADBとJev繋げられたので、今後いろんなユースケースが考えられそうでワクワクします!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?