InfinitySpace3D - Java/JavaFXで太陽系シミュレーターを作成してみました。

InfinitySpace3D – A solar system simulator created using Java/JavaFX.


https://youtu.be/8T3BkNzq2oE

Javaで太陽系シミュレーターを作成してみました。

モジュール版(Module version)


JavaとJavaFXの環境が必要です。
A Java and JavaFX environment is required.

https://kinchannn.jp/wp-content/uploads/InfinitySpace3D/InfinitySpace3D.zip

Exe版(Exe version)

JavaとJavaFXの環境が必要ありません。
zipファイルを解凍後、InfinitySpace3D.exeを実行してください。
No Java and JavaFX environment is required.
After extracting the zip file, run InfinitySpace3D.exe.

https://kinchannn.jp/wp-content/uploads/InfinitySpace3D/InfinitySpace3D_Exe.zip


太陽、惑星をはじめ、準惑星、小惑星帯、彗星、カイパーベルト天体、ミルキーウェイを配置。
かなりAIに助けてもらいましたが、それでも20~30時間くらいはかかったんじゃないかな。
思ったより大変でした。
Javaでもここまでできるんだな。って、自分なりにも思いました。
(プログラムはGemini、効果音はMusicFXを利用しました)


I placed the sun, planets, dwarf planets, asteroid belt, comets, Kuiper belt objects, and the Milky Way.
I got a lot of help from the AI, but it still probably took about 20-30 hours.
It was harder than I thought.
I was impressed that Java can do this much.
(I used Gemini for the program, MusicFX for the sound effects)

MusicFX
https://labs.google/fx/tools/music-fx


zipファイルを解凍して、sta.batをご自身の環境に合わせて変更して、
jc.bat → j.bat で動きます。
ぜひとも君自身が試してみてください。
(^^)♪


Unzip the zip file, modify sta.bat to suit your environment, and run it by changing jc.bat to j.bat.
Please give it a try for yourself.
(^^)

InfinitySpace3D

シェアしていただけるとうれしいです。

Javaのバーチャルスレッドを利用してみた(3)感想とゲーム利用の有効性について考察

はじめに

前回の「Javaをexe化してみる(2)- jpackageの活用 と 自動化バッチの紹介 -」に続いて、
ちょっとだけディープな「中身」のお話を。

最新のJava(21以降)を使うと、プログラムがどんなふうに動いてくれるのか。
進化し続けている、Javaを紹介しちゃいますね。

気づかせてくれるのは、Gemini3ちゃんなんだけどね。

1. JavaのスレッドはOSのスレッドで動く!

これまでスレッドって「なんとなくの処理の集まり」くらいに思っていたけれど、
実は今のJavaは、PCの中にある**「CPUコア(計算機)」に直結**して動いていることを知りました。

漠然と「スレッド」というものを理解していましたが、ちゃんと紐づいている。
知りませんでした。

「1つの処理(スレッド)は、常に1つのコアが担当する」 これが基本的なルールなんだそうです。

2.もっと有効的に使おう!バーチャルスレッド!

上記のように1:1で対応するというのが基本の考えで、
Javaであろうと、1スレッド1CPUの考えは変わらないそうです。

たとえば、今回のように数千の天体があって、個別にスレッドを割り当てている場合ならば、
数千スレッドがCPUに割り当てられるとか。

その考え方を変えて、キャリアスレッドというものが、一度引き受けて、論理的なスレッドにしているらしいです。
CPUに対して数千スレッドを作るわけではなく、その数千スレッドはJavaで振り分けをして、
CPUに対する負荷を下げよう。という試みみたいです。

3. 暇なコアを作らない!賢い仕事分散をするよ!

今のCPUはコアがたくさんありますが、中には「重い処理」でハマっちゃうコアも出てきます。
そこでJavaの最新機能が本領発揮!

基本は順番待ち

基本的には自分の担当するコアでお行儀よく並びます。

暇なコアが助けに来る

「あっちのコア、ハマってるな。暇だから手伝ってやるよ!」

暇になったコアが、忙しいコアの行列の**「後ろ」から**ガバっと!勝手に仕事を奪い取って、代わりに処理を始めちゃうんです。
これ、「ワークスティーリング(仕事泥棒)」って名前がついているらしいです。
名前はちょっと・・・ですが、おかげで全コアが働いてくれて、効率的に仕事をしてくれるようになるそうです。

アップデートが必要なきん

なかなかJavaのアップデートについていけないわたし、きん。

よりよくなっている屋台骨?土台?そこにもスポットライトを当てて、今後も紹介していけたらと思っています。

もしかしたら・・・

シューティングゲーム編で、1スレッドでかなり重い処理を割り当てているので、見直してみようかな・・・

と思っている次第です。

やる気になったら、やってみますね~。

(蛇足)「効率」をとるか「順番」をとるか

「後ろから奪ったら、順番が入れ替わっちゃうんじゃない?」 鋭い人ならそう思うはず。はい、その通りなんです!
でも、今のJavaはこう割り切っています。
「銀行の振込みたいに順番が命の処理は、今まで通り丁寧にやろう。」
「でも、シミュレーターの計算みたいに大量の処理は、少しくらい順番が前後しても、全コアを使って速く終わらせるほうがいいよね!」
だそうです。(Gemini3ちゃん談)

さいごに

どちらかというと、フロントエンド側で語られることは少ないJava。
でも、使い方次第で、使えるんだよ。って再認識させられる。

わたし自身が一番の推しがJavaってことがあるけれど、
(30年くらいやってるからね・・・)
(最近はフロントエンド側はJavaScriptベースだけどねー。わたしは)
まーまったりと紹介できたら~♪と思っています。

今回の記事まとめ

Javaで太陽系天体シミュレーター&JavaをExe化してみました。(Java21以降対応)
Javaをexe化してみる(2)- jpackageの活用 と 自動化バッチの紹介 -
Javaのバーチャルスレッドを利用してみた(3)感想とゲーム利用の有効性について考察

Youtubeに載せました♪
https://youtu.be/NPsgNbhEtds

シェアしていただけるとうれしいです。

JavaFXシューティングゲーム編 - EXE起動できるようにしてみました!!!!!

虎の巻のページにEXE起動に取り組んだ企画を追加しました!

https://kinchannn.jp/java-programing-toranomaiki/

Javaの環境ない人も動くはずです。
下にモジュールを公開するので試してみてください!

けっこう大変でした~。
JavaFXやJINPUTまで入れ込んでみました。
(JavaをExeにしているページはあるかもしれないけど、ここまではない?かしら?)

モジュールあります!

試してみてくださいね(^^)♪
SKK4_FX_EXE.zip

Youtube公開動画
https://youtu.be/pTQt_pPXgqc

Javaコンパイルしたモジュールをexe化してみる(1)Javaがexe化するに至った経緯を振り返る。
Javaコンパイルしたモジュールをexe化してみる(2)EXE化への「5段構え」の工程
Javaをexe化してみる(3)環境構築とJMODSを追加する
Javaをexe化してみる(4)バッチファイルで自動化しパッケージングする

シェアしていただけるとうれしいです。

共通編の見直しも実施しました(Java25&JavaFX25対応)Javaでゲームを作ろう

https://kinchannn.jp/javagame_common/

お正月休みの終わりが近くなってきた・・・汗。
もう休もう・・・(笑)

Java25&JavaFX25の対応が終わりました。
(他にはないことを祈る・・・汗)
各ゲームをJavaの最新LTSバージョンで動かしてみるのと、
共通編の修正と、大変でした。

今にして思えば、共通編は外出しにしておいて(本編からは切り離しておいて)
よかったと思っています。
全部の本を修正すると思ったら、発狂しそうです・・・汗汗汗。

とりあえずは、やった感があるので、よかったー。
もう少し早めにできるとよかったけど、なかなかねー。。。

Java25対応版ソースはこちら♪

Javaでゲームを作ろう

https://kinchannn.jp/javagame/

The Java 使いこなす

https://kinchannn.jp/thejava/

動作確認に、いろいろとゲームを少しだけやりました~。
本人が苦笑してしまう出来だなー。今思い出しても。

Javaでゲームを作ろう3- JavaFXシューティングゲーム編 -ダイジェスト版
https://youtu.be/pTQt_pPXgqc

Aki2氏とのすったもんだもいろいろと思い出せて面白いものです(笑)。

シェアしていただけるとうれしいです。

Java25&JavaFX25対応をおこないました。全てのモジュール、対応完了!

おはようございます。きんです。

Java25&JavaFX25対応をおこないました。

現在の最新バージョン、LTSである25.0.1にて動作確認を行いました。
Java、JavaFX、ともに同じバージョンになります。

一部、sta.batとj.batの入れ替えを行っています。
ソースもわずかですが、修正を行いました。
(一部、コンパイルエラーになった部分のみ対応)
HPに置いてあるzipファイルについては、更新を行っています。

ココナラでの活動もあり、最新化しておく必要性もあったので、対応した。
というのが、正直なところでありますが、
現状のままだと、動かないところもあったので、最新化できてよかったと思っています。

ちなみにまだココナラでの活動(サポート)はまだとなりますが、
よければご利用くださいね~♪

↓↓↓ココナラのわたしの出品ページ↓↓↓
https://coconala.com/services/3999646?ref=top_histories&ref_kind=home&ref_no=1

新しい年がはじまって二日目。
今年もがんばるよー。がんばりましょう♪

本業の方は、また来年度から忙しくなるかも?
さてー、どうなるかなー・・・(--。。。

わたしのサイトもよろしく!
https://kinchannn.jp

The Java 使いこなす についても、約半日遅れで修正が完了しています。
(2026/01/02 19:39)

シェアしていただけるとうれしいです。

ココナラためしてみます!もしよければ、ご利用お願いいたします(_ _* 待ってまーす!

おはようございます。きんです。

昨日、ココナラに登録してみました!

もし、『時間をとって教えてほしい!』とかありましたら、リクエストください。
料金は別途発生することになってしまいますが、その分、お時間を予約というかたちで確保することができ、
聞きたいこと、困っていること、他にもいろいろお話ができることと思います。

(補足)
書籍をご購入いただいた方は、本の後ろの方に、問い合わせ先を載せています。
もちろん、そちらでお問い合わせいただいてもOKです!
返信に時間がかかるかもしれませんが、無料ですよん♪(^^)

直近はまだ本業があったりで、スケジュールをあまり開けていませんが、
(予約受付枠という時間を設定して開けていきます。わたしの場合は。ですが)
ココナラができる時間は、適宜設定していきたいと思っています。

プロフィール
https://coconala.com/users/5800154

出品サービス
https://coconala.com/services/3999646

ビデオチャット形式にしています。
zoomでやるらしいのですが、まだ、著者、やったことがなくて、
(仕事(本業)はもっぱらTeamsですね~)
手間取るかもしれなくて、
ココナラもはじめてですし、ちょっとおためし価格にしているところもあるかも?

年末年始の予定が見えてきたら、予約時間枠を設定していくので、
よければつかって~みてください♪

#Java #初心者 #学ぶ

シェアしていただけるとうれしいです。

HelloJavaGameを修正しました。

おはようございます。きんです。
おひさしぶりです。

生きてはいますが、本業が忙しいですね。
Javaではなく、JavaScript、TypeScriptをやっています。
フロントエンド、クライアントサイド側ですね。

バックエンドはJavaですね。
なんとかがんばっていきますーーー。

夏本番になってきますね。
暑くなってきますが、お元気でお過ごしください(^^)

あっ!お題の話をホントに忘れていました(笑)
(ホントに忘れるところだった・・・汗)

HelloJavaGameを修正しました。

問い合わせを受けまして、見直したところ、
JavaファイルがShift_JISのままになってて、
コンパイルがかからない状態でした。

申し訳ありませんでした(_ _*

Java~がんばってください~(^O^)ノ

Javaでゲームを作ろう○- 共通編 -
https://kinchannn.jp/javagame_common/

シェアしていただけるとうれしいです。

※※※ 紙版-100円しました! ※※※ Javaでゲームを作ろう1 第3版を発売しました! 

Javaでゲームを作ろう1 第3版を発売しました!

そして・・・

紙版をすることができました!

紙版

https://amzn.to/3VvXBx6

Kindleはこちら♪

https://amzn.to/3EIFpK3

ワンコインの道は厳しいですが、できる範囲で努力してみました。
引き続き、よろしくお願いいたします(_ _*

Javaでゲームを作ろう1 - シューティングゲーム編 -

シェアしていただけるとうれしいです。

Javaでゲームを作ろう0 - ゲーム基本編 - 第3版を発売しました!(値下げ断行!)

こんにちは。きんです!

Javaでゲームを作ろう0 - ゲーム基本編 - 第3版を発売しました!

いろいろと新しくする理由があって、細かいところを修正しています。
大きな流れは、第1版から変わりはありません。

あと、もうひとつ・・・。

販売価格を下げることができました!

\(⌒▽⌒)/ワーイ!
今は世の中、値上げの嵐ですよね・・・。正直、つらい・・・。

工夫することによって、値段を下げることができました。
(ワンコインの夢はついえたかも・・・でも、努力しました!)
(Kindle版は300円と、ワンコインです!紙にすると、そうはいかないみたいですね・・・)
これ以上は無理っぽいですが、できる範囲でがんばってみました!

他の本も値段を下げれないか、検討をしていきます。(1とか3とか、TheJavaも)
本業の方が忙しいので、少し時間がかかりますが、進めていきたいと思います。

↓本(紙)

https://amzn.to/3fRyIgh

↓Kindle

https://amzn.to/3UJ5RJW

紹介サイト(わたしのHP)
https://kinchannn.jp/javagame_kihon/

それではーがんばっていくぞおーーー!!

シェアしていただけるとうれしいです。

UTF-8の対応が完了しました & Java20での動作確認も完了しました!

きんです!

夜な夜なですが、

UTF-8の対応が完了しました。

・プログラムソースのUTF-8化
・sta.batの見直し
・jc.batの新設 または 見直し
を行っています。

環境変数の設定はsta.batを、コンパイルはjc.batを、実行はj.batを利用してください。
sta.batは、みなさんの環境に合わせる必要があります。
ちょっと分かりにくいところですが、うまくいかない場合は問い合わせくださいね(^^)

Java20での動作確認も完了しました!

sta.batをJava20用に修正しています。
sta.batは、みなさんの環境に合わせる必要があります。
(JavaのバージョンとJavaFXのバージョン。JavaFXはJavaFXを利用する場合のみ)
ちょっと分かりにくいところですが、うまくいかない場合は問い合わせくださいね(^^)

問い合わせ先は本に載ってます~~~。
よろしくお願いいたします(__*

シェアしていただけるとうれしいです。