スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



一般アプリを作るにあたって

携帯ゲームをやるときっていつなんだろうと考える。
多くは通学・通勤などの移動時なんじゃないかな。

そう考えると少ない時間でできるミニゲームが一番なんじゃないと思う。
ライトユーザもできることも理由の一つ。

ただ自分としてはミニゲームよりは長くできるゲームがいい。
でikoというゲームを作ってみたが,どうもしっくりしてない。

というのもゲームの種類があいまいで、どうやって遊んでいいか分からない始末。
自分で思うに面白さが足りないなと思った。

もし次に作るとしたら遊び方が定義されている,RPGやシューティングなどがいいと思う。
(多分シュミレーションRPGを作ると思うが...)

問題は時間かな。
スポンサーサイト



[iko]の遊び方1

今日Webに公開されました。
ikoと書いてアイコと読んでください。

紹介ページ

ちなみにSoftbank携帯用のS!アプリ(携帯ゲーム)です。
100kアプリなので,殆どの携帯でできると思います。
100kの容量にしないといけないので遊び方等がアプリ内におさめられなかったのでblog内で紹介していきたいと思います。


このゲームの勝利条件は,先に街の人口を500人にした人が勝ちです。

人口を増やすには「食べ物をとってきて街に持ち帰る」というシンプルさです。
持ち帰るアイテムによって街の成長も変わってきます。
いろんな種類のアイテムを持ち帰ることが,バランスよく成長するコツです。

街が成長すると主人公も新しい技能を身につけます。
例えば,骨を沢山持ち帰ると骨の武器を手に入れる,といった感じです。

人口の増やし方は食料の確保だけではありません。
この世界には自分の街以外に3つあり,それらの街を自分の配下にすることができます。

配下にするには街にアイテムをみつぐことです。
ある程度のアイテムをみつぐと街を自分の配下にすることができます。

初めてのゲームなだけにバランス等がまだまだかもしれませんが,是非一度遊んでみてください。

Battle_IronAge.png tech_map.png

※画面は開発中のものです



アプリ申請完了

アプリ☆ゲットに申請中だった携帯アプリが審査に合格しました。
明日あたりにはWebに公開されるんじゃないかな。

http://appget.com/vf/pc/

自分の携帯がSH-51なだけに今の携帯にとってはゲーム画面が小さすぎるかもしれない。
新しい携帯がほしいけど,携帯ってなんであんなに高いんだろう。

次買うとしたら816SHかな。
きっとスペックはかなり上なんだろうな。
SH-51はアンテナ付いてるしね。古ッ!!



携帯ゲームの開発の難しさ

今自分はJ-Phone時代のJ-SH51を使っている。
この携帯はJavaが搭載されて2世代目にあたるもので100kまでのアプリサイズを扱えるようになっている。
当時としては最新のテクノロジーだったんだけど,いまや...。

なんといっても画面サイズが違う。
いまやQVGAなんて当たり前。
しかしJ-SH51はその1/4にも満たない。

これが携帯ゲーム開発のネック。
画面サイズが端末によって違うこと。
またそれあったフォントサイズなので,開発者が意図した画面にならず。

どうにかならないものですかね。



画面切り替え

2010/12/03 追記
この内容は間違いですので参考にしないでください!!
ゲームでは必ず画面を切り替えることがある。
例えばマップ画面から戦闘画面へ切り替えるなど...。

MIDPでは画面の描画処理はCanvasクラスによって行われる。
このクラスの派生させたクラスのpaint()メソッドに描画内容を実装することで思いの画面を描画できる。

画面を切り替えるときはどうすればいいのかといえば,paint()メソッド内で複数の画面を描画できるように実装すればいいのだが, ゲームが複雑になるにつれてコード量も多くなってくる。
こうなってくるとクラスに分けて描画したいと思うようになるはず。

で,自分は複数のCanvasクラスを用意して,画面ごとにCanvasクラスを切り替えて使用することによって画面切り替えを実現した。

このとき切り替えた画面はTread.join()で描画中の画面が閉じるまで描画処理を待機するようにした。

ただ,この方法だと切り替わるタイミングで画面が白くなってしまう問題が発生する。

まだ修正はしていないが,複数のCanvasを持たず一つのCanvasで実装できるようにすればいいのだろうと考えている。


MyMIDlet.java

public final class MyMIDlet extends MIDlet
{
	private CanvasA m_CanvasA = null;

	// コンストラクタ
	public MyMIDlet()
	{
		// インスタンスを生成
		m_CanvasA = new MapCanvas(this);

		// 画面を表示
		Display.getDisplay(this).setCurrent(m_CanvasA);

		// メインスレッド開始
		Thread thread = new Thread(m_CanvasA);
		thread.start();
	}
}

CanvasA.java

final class CanvasA extends Canvas implements Runnable
{
	private MyMIDlet m_Midlet = null;

	public CanvasA(MyMIDlet oMIDlet)
	{
		m_Midlet = oMIDlet;
	}

	public void run()
	{
		// 画面Bを生成
		CanvasB oCanvasB = new CanvasB();

		// スレッドの生成
		Thread oThread = new Thread(oCanvasB);

		// スレッドを開始
		oThread.start();

		// 画面Bへ
		Display.getDisplay(m_Midlet).setCurrent(oCanvasB);

		// 終了するまで待機
		oThread.join();

		// 画面Aへ
		Display.getDisplay(m_Midlet).setCurrent(this);

		// スレッドの解放
		oThread  = null;
		oCanvasB = null;
		System.gc();
	}
}


Iko-Map



アプリ☆ゲットに申請しました

時間がないなかゲームを作りました。
それも携帯アプリ

自分はSoftbankなのでSoftbankに仕様に沿ったMIDPでのプログラミング。
ゲームを作ったのは初めてだったので,何がなんだか。

でもなんとか形らしい形になったのかと思ってます。

どんなゲームになったかはおいおい説明していきます。



アクセス
あなたは
キーワード
カテゴリー
最近の記事
リンク
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

WEB検索
Google

RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。