API)で作ったゲームプログラムがあり、これを最近Javaでリメイクしたいと考えております。数年前(Java1.6時代)の知識のため、GUI周りに関してはAWT,Swingに関する知識しかなく最近のJavaFXについては初心者という状況です。軽くネット検索した所、FXはボタンやテキストエリアなどのコンポーネントのデザインを意識して開発するアプリには向いていそうでしたがゲームのようなリアルタイムに全画面の再描画処理が必要になる、非イベントドリブンなアプリ開発に向いているのか?と疑問を持ちました。FXでもできないことはないとは思うのですが、FXで向いているのか?というところが疑問でそのあたりのご意見をいただけると幸いです。5年前libgdxってのがあります。libgdxってのがあります。現化的だと思いますがいかがでしょう初耳でした。そんなライブラリあるんですね。たしかにゲームを実装するならこれを使ったほうが便利だと思います。これはこれとして、求めていた解の一つですが、結局JavaFXが向いているかどうかが謎なままです。「JavaFXを使うべきところの見分け方」という観点の意見をいただけるとベストかな、と思います。要するに「何かを作りたい」と思ったときに「この場合はJavaFXで開発したら便利だよね」というJavaFXを選択するか否か、の思考材料を得られたら、より大きな視野でプログラム開発の選択肢を持てると思うのです。これはこれとして、求めていた解の一つですが、結局JavaFXが向いているかどうかが謎なままです。API、AWT、Swingがゲームに向かない程度には向かないと思います。API、AWT、Swing共々GUI向けのフレームワークなのでOpenGLやDirectXを使うものに比べたらできる事が限定されます。OpenGLを利用するライブラリで作れる物とは速度や表現で差が出ると言うことです。これもゲーム用のライブラリです。>要するに「何かを作りたい」と思ったときに「この場合はJavaFXで開発したら便利だよね」という>JavaFXを選択するか否か、の思考材料を得られたら、>より大きな視野でプログラム開発の選択肢を持てると思うのです。それは自分で情報を収集された方が良いかと思います。大きな視野を持つ方法はご自身が情報を広くどれだけ持てるかだと思います。私など特定の個人の情報だけで判断されるのは広い視野とは言えないです。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。APIもSwing(AWT含む)も、基本的なイメージの矩形転送はあるし、ピクセルレベルでのアクセスも可能なので、ふつうに作る分には何の問題もないと思います。APIではクライアント領域のみを使う、Swing(AWT)ではJPanel(Panel)のみを使う、といった形においてです。わたしはAWTでプロトタイプを作ることが少なくないです。過去にケータイ向けに作ったゲームのいくつかは、いまでもデスクトップで動きます。そのケータイ向けに作ったゲームのいくつかは別のプラットフォーム向けにC言語で作ったものが元にあります。それら元になったもののプロトタイプも、いまもデスクトップで動きます。FXでは自発的に画面更新を発生させることが難しかったようです。FXアプリに組み込むことが可能になって、非同期な再描画処理も可能になっているのではないかと思います【未確認】。FXでも同じになると思います。VBやC#でアプリを作るときに、デザイナは便利ですが、アーケードゲームふうのゲームを作るときにはほぼ使いません。FXを使う便利さというのは、そういうのと同様ではないでしょうかね。8でも問題無いと思います。リッチ・クラアイアントGUIのためのライブラリなのでゲームに特化した機能は無いと言うことですね。加算半透明とかのゲーム表現を望まなければ大丈夫かなと思います。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。5年前もうずっと以前からイメージの半透明合成やら行列変換はサポートされています。サポートされた当初は激遅でしたが、いまはばっちりDirect3DやOpenGLで実装されているのでとても軽いです。Java2Dというくらいで2次元座標しか扱えませんが、いわゆるスプライトベースなゲームには十分な表現が可能です。JavaFXがどうなのか、というのは、コンポーネント指向がゲーム制作に及ぼすメリットに限定される話だと思います。JavaFXは公式にエンタープライズ・ビジネス分野向けと謳っているので、サードパーティ製コンポーネントの充実が期待されているのではないでしょうかね。ゲーム制作には関係ない話です。5年前ISLe()さんに確認です。私の認識では、Java2Dで加算半透明は出来ないのですが間違っていますでしょうか?この流れだと出来るという話になっているように見えますが。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。半透明』とか検索してもらったほうが早いと思います。検索しても私の把握している情報通りに加算合成はAPIレベルで存在しないと出てきますが、そういう事でよろしいですか?ISLe()さんに聞く前にも検索してみたのですが見つけらませんでした。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。検索しても私の把握している情報通りに加算合成はAPIレベルで存在しないと出てきますが、そういう事でよろしいですか?ISLe()さんに聞く前にも検索してみたのですが見つけらませんでした。Java6上記の、AlphaComposite.SRC_OVERの項で示されている式を見る限り、加算してるんですけど。Cd違ってましたらご容赦。5年前へにっくすさんありがとうございます。私が大ボケかましていない限りは、通常のアルファチャンネ合成だと思われます。方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。話が逸れているようなので、私が回答しますね。FXでもできないことはないとは思うのですが、FXで向いているのか?というところが疑問でそのあたりのご意見をいただけると幸いです。FXはゲーム作成用に作られたライブラリではないです。それはAWTもSwingも同様です。march3さんもご自身でおっしゃっているとおり、できないことはないです。表現の実現によっては工夫が必要なところが出てくる可能性があります。向いているかどうか、という質問はmarch3さんがリメイクしようとしているゲームで使用している1つ1つの表現が実現可能かどうか、著しい処理落ちが発生した場合または表現できない場合にその打開策を見つけることができるかどうかにかかっているかと思います。制約を受けることなく移植できるかもしれませんし、小さな問題につまづくかもしれませんし、それは使用する表現毎に起きる問題だと思います。それは仕方ありません。ゲーム作成用のライブラリではありませんから。数年前(Java1.6時代)の知識のため、GUI周りに関してはAWT,Swingに関する知識しかなく最近のJavaFXについては初心者という状況です。AWT(またはSwing)で作成してみてください。向いているかどうかは、その後FXを利用して同レベルものを作成するときに分かります。何に向いていて、何に向いていないか、比較対象があるので、そのとき誰よりもmarch3さんが理解できるはずです。制約がかかるかどうかは、作成するゲームで使用される表現に依存します。(そもそも向いている向いていないという判断レベルが人によって違うと思います。向いていないか判断基準に違いがあると言えます。)何も試作されていない段階で、C言語を使用して作成したものとFXを利用して作成する場合の互換性をアバウトに聞いても同じものではないので、回答者の方々も「違いがある」としか答えれないと思います。現状では目に見えないものに対するふわふわとしたものを対象とした質問なのである表現を同じようにFXを利用した環境で実現するためにはどうすれば良いか?という疑問にぶち当たるところまで落とし込んでからピンポイントで質問された方が良いかもしれませんね。まとめるとまずはJavaを使用した好きな環境で作ってみてください。FXはゲーム作成用ライブラリではないので、向き不向きは試さないと分かりません。向いていないと世間で言われたからといって、別の方法で解決できる場合もあるかもしれませんし解決さえできればそこはそんなに重要とならないかもしれません。作り比べて確かめてみるしかないですね。プレイステーションにしても、ラインバッファ方式のスプライトの代わりにあのドット絵をポリゴンに張ったテクスチャを平面に並べることでスプライト処理を表現してクロノトリガーやFF6を移植したわけですしサターンは逆にスプライトを使用してポリゴンを表現していたわけで、大抵のことは工夫次第でできるんじゃないでしょうかね。要は同じ表現をどう見せるかだと思いますけどね。いったところでしょうか。世間の人の声が「向いてない」から作らないのであれば、移植なんてできませんしね。私の認識では、Java2Dで加算半透明は出来ないのですが間違っていますでしょうか?この流れだと出来るという話になっているように見えますが。わたしは加算合成と半透明合成は別個のものと認識しています。その上で、半透明合成はずっと前からサポートされていると書きました。検索しても私の把握している情報通りに加算合成はAPIレベルで存在しないと出てきますが、そういう事でよろしいですか?ISLe()さんに聞く前にも検索してみたのですが見つけらませんでした。確かに加算合成はAPIとして用意されていませんね。