CodeBattlerAce

プログラミング対戦ゲームCodeBattlerAceの制作開始!

読了時間: 約326
CodeBattlerAce - コードエディタ

最近、プログラミング熱が上がってきている私。
そこで、本格的なソフトウェアを開発してみたいと思うようになりました。

何を題材にしようかと考えた結果、プログラミング教育系が面白そうとなりました。
小さい子供でも楽しみながらプログラミングができるゲームをコンセプトに開発してみることに。

というわけで、新規プロジェクトの開始です!
その名も「CodeBattlerAce」。
AIのプログラミングをして、他のAIプログラムと対戦させるゲームとなります。

今回の記事では、CodeBattlerAceで私がどんなゲームを作ろうとしているのかについてプレゼンします。
そして、現時点までの進捗についても紹介します。

CodeBattlerAceとは?

CodeBattlerAceというのは、プログラミング対戦ゲームです。
プレイヤーは、ロボット(戦車)の動きを制御するプログラム(AI)を作成します。
このプログラム(AI)を使って、他のプログラム(AI)と対戦させて遊びます。

CodeBattlerAceにおけるプログラミング

近いイメージとしては、「Robocodeのプログラミングの過程をカルネージハートのようにした」と言えば分かるでしょうか?
ベースに使う命令群はRobocodeとほぼ同じなのですが、プログラミングの仕方をカルネージハートに似た方式にしています。
つまり、命令(コード)を格子状に配置してプログラミングします。

CodeBattlerAceでは、あらかじめ用意されている命令群を組み合わせてプログラムを組みます。
ここでは、1つの命令を「コード」と呼ぶことにします。
1つのコードは、例えば以下のように表現されます。

add a 5 b 1 0 0 0

このコードの意味は、「a+5の演算結果をbに代入する。ポインタを(+1,0)の位置にする。」となります。
「add a 5 b」の部分が処理内容、「1 0 0 0」がポインタの移動先です。

「a」と「b」が変数で、値を保持しておく箱のようなものです。
もしaの内容が10だとしたら、「10+5=15」がbに代入されます。
ポインタというのは、実行するコードの位置を参照するものです。
コードを実行した後、次の移動先にポインタを移します。

CodeBattlerAceのコードエディタのデモ画面

この説明だけ読んでも、なかなかイメージがしにくいですよね。
そこで、まず私はCodeBattlerAceで使用する、コードエディタのデモ画面を作成してみました。
それがこちらです。

CodeBattlerAce - コードエディタ

格子状に区切られている一区画がコードです。
これはデモ画面なので、予定している画面表示とはちょっと異なります。

このデモ画面では、全区画のコードが「ahead 200 1 0 0 0」になっています。
これは「200前進する。ポインタを(+1,0)の位置にする。」という内容になります。
緑の三角がTrueの時のポインタの移動先、赤の三角がFalseの時のポインタの移動先を表します。
この場合、本来なら赤い三角は非表示になるのですが、デモ画面ということでとりあえず表示しています。

プレイヤーは、実行したいコードを処理したい順番に並べていきます。
コードの配置が終わったらファイル保存します。
すると、プログラムが完成です。

CodeBattlerAceにおけるバトルのイメージ

CodeBattlerAceのバトル時、作成したプログラムを2つ読み込みます。
それぞれにロボット(戦車)を割り当てて、その制御を各プログラムが行います。

バトルのルールは簡単です。
相手のロボット(戦車)のHPを0にすれば、勝利。
逆に自分のロボット(戦車)のHPが0になれば、敗北。
勝敗に応じて、各プログラムのレーティングが変動します。

CodeBattlerAceにおけるランキングのイメージ

バトルを繰り返していると、各プログラムのレーティングが安定してきます。
このレーティングの値を元にして、ランキングを表示します。

ランキングの対象は、データフォルダに保存されているプログラムとします。
いずれは、他の方が作成したプログラムをインポートする機能をつけようと思っていますので…。
それらも全部ひっくるめたランキングになります。

保存しているプログラムの中で、自分のプログラムがどの程度の強さやランキングにいるのかを表示します。
このランキングの上位を目指して、強いプログラムを作るのが最終目標になると思います。

ですので、できるだけ多くの人にCodeBattlerAceを遊んでもらい、プログラムを公開してもらいのですよ。
そうすれば、より活発になって面白くなりますからね。
ぜひとも楽しんでもらいたいです!

まとめ

今回の記事では、CodeBattlerAceの制作開始のお知らせと、その大体のイメージについて説明してみました。
いかがでしょうか?
何となくどんなソフトウェアを作ろうとしているのかが把握できたでしょうか?

ちなみに、CodeBattlerAceはJavaで作成しています。
対象OSはパソコン(Windows/Mac)の予定です。

開発がスムーズに進めば今月中(8月)、遅くとも来月(9月)あたりまでには初期版をリリースしたいですね。
どんなプログラムを組みたいかをイメージしながら、リリースまでお待ち下さい。

なお、このブログでは不定期にCodeBattlerAceの進捗具合について報告していきます。
開発の進み具合の把握ができますので、ぜひ期待していただけると嬉しいです。
また、ご意見・ご要望は大歓迎ですので、お気軽にコメントをくださいね。

書いた人: 鈴木俊吾(すずしん)
フリーランスのライター・ブロガー・プログラマ。

大学卒業後、公務員を目指していたが失敗。
その後、仕事をしようとするも全て不採用に。
そのうち、心を病んで統合失調症を発症。
入退院を繰り返す。

「仕事をもらえないなら自分で作ればいい」「自分の好きな仕事だけをやろう!」と思うようになり、フリーランスに転身。
現在は、ブログの更新やアプリ開発を主な仕事にしている。

趣味は音楽鑑賞・読書・カラオケ・オセロ。
特に好きな歌手は水樹奈々で、ファンクラブにも所属している。
最近ハマっている曲は「恋想花火」。

フィードを登録していただくと、ブログの更新を把握しやすくなります。
あなたからの登録をお待ちしています!

Feedly
RSS

Twitter: @suzushin7

POSTED COMMENT

  1. あか男 より:

    お〜いよいよ本格的な制作になってきましたね。
    前のiPhoneアプリのような感じになるのかな?

    • すずしん より:

      あか男さん

      コメントありがとうございます。

      そうですね。
      イメージ的には、前回にリリースしたアプリと同じような感じです。
      入力方法などが若干違うくらいで、全体のゲーム内容は似てますね。
      パソコンで遊べるバージョンを作りたくなったので、今回作成することにしました。
      もしあか男さんもパソコンを入手したら、ぜひプレイしていただけると嬉しいです。

コメントを残す

%d人のブロガーが「いいね」をつけました。