ブログ

Minecraft のマップを生成するソフトウェアを書いた

投稿日:

はじめまして。kofuk です。このサークルに入ったのはたしか去年の11月くらいだったのでまだ新入部員です[要出典]。

もう数か月前になりますが,Minecraft のセーブデータをパーズして上空から見た画像を生成するソフトウェアを書いたので,その紹介をします。このサークルの活動とは直接は関係がないです。

こちらがそのソースコードのリポジトリです。
残念ながら,私一人で作っているので開発リソース的に GNU/Linux にしか対応していないです。以前は Windows にも対応していたのですが,Windows で使う人がいなかったので(そう,私の知りうる範囲では私しかユーザがいなかったのです)テストするのも面倒になってやめました。ただ *nix 的な API を使っているのは一部なので,Windows に移植するのはそんなに大変じゃないと思います(Windows に詳しい人がいたらプラットフォーム依存部分の移植をお願いしたい……)。

これは私が個人的に管理している Minecraft のワールドで,Web ページでマップを見られるようにするために使っています。あと指定した座標の一番上のブロックの ID を取る機能とかも実装していて,右クリックでブロック ID を確認できたりします。x, z 座標を与えられたらその座標の一番上のブロック ID を返すというのもこのソフトウェアの機能のひとつです。

以下は需要あまりない気がするけど技術的な話をつらつらと書いていきます。

最初は Python で書いていて(というのも Python だとよさげなライブラリがけっこうあったので)遅かったので,C++ で書き直したとかいう話があったりします。ただ C++ だと良くも悪くも書いた以上のことはあまりやってくれないので別の辛さはけっこうあったりします。余談ですが,先日もとの Python ライブラリの作者に GitHub でスターをいただきました。

まず Python だと遅かったという話をすると,Python だと GIL とかがあってマルチスレッドにしてもその分のパフォーマンスは発揮できないというのがあったりします。GIL というのは Global Interpreter Lock の略でデータ競合(並列処理で別の実行コンテキストが同じメモリ領域に書き込んでしまってバグるみたいな状態)を避けるために,同時に1つの Python のコードしか実行されないようになっているということです。Python には(Python じゃなくてもできるけど)スレッドじゃなくてプロセスでやるという方法もあったりしますが,それでも処理が遅くて不満だったりしたので,やっぱり C/C++ で書き直した方がいいだろう判断して移植しました。これには私が Python があまり気に入らないという背景もけっこう関係していたりします。インデントでブロックを表現するってのがコード足したりするときにけっこう厄介で。

ただ,GIL がないということは,競合条件でバグらないように自分で書いてあげないといけないので面倒くさいです。マルチスレッドって必要ないならなるべく書きたくない機能だと思います。(ちょっと危ないコードがあったりするんですが,適当なワークアラウンドで見ないふりをしたりしています,はい,だめです)。

最近の更新としては,前から気になっていた Unit テストを書き始めたことです。とりあえず導入して新しい機能のところから書いていけばいいだろうということで,実際にはあまり書いていないですが,書いたところでも既にバグが見つかりました。やっぱりテスト書くのは大切ですね。

直近の TODO としては,Minecraft の大型アップデートに対応するということだと思います。これがブロックの追加が多そうで面倒だなという感じで見ています。

ということで,今回はこれくらいですかね。最後までお読みいただき,ありがとうございました。

ブログ

僕の流行り

投稿日:

僕のハマっているもの

 

どうもみなさんお久しぶりです、初めましての方は初めまして、ごジンクスです!

最近、コロナで外出することが出来ず、暇を持て余していると思いますが、だからといって、あまり外出はしないようにしましょう。

といっても、やはりずっと家にいるのは、暇でしょう。

そこで今回、僕のハマっているゲームを紹介したいと思います。

 

そのゲームは

プリンセスコネクトRe:DIVE

です!

 

このゲームは、記憶を失ってしまった主人公である騎士くんが、様々な女の子と仲良くなり、魔物を倒すというゲームです。ダンジョンRPGで、レベルやスキルを上げていかないとなかなか敵を倒せないので、やりこみがいがあると思います!

 

ただ、このゲームの魅力はこれだけではありません!

その中でも今回は、3つご紹介させていただきます!

 

まず1つ目、キャラがかわいい!

 

やっぱり、これは外せないでしょう!キャラのデザインもよく、キャラにそれぞれの個性があるから、面白くて、かわいい!

ちなみに、今の中での僕の推しは、ユイとクロエですね~。

 

続いて2つ目の魅力は、ストーリーが良き!

 

メインストーリーはネタバレもあるので、詳しくは言えませんが、それぞれのギルドが争うことになるのだが、その裏で怪しい影が動いており世界を脅かそうとしていた、果たして騎士くんはこの世界を救うことができるのだろうか、みたいな感じです。

他にも、ギルドストーリー、キャラストーリーがあり、そこでは、それぞれのキャラの魅力が詰まっていて、僕のような萌え豚には大歓喜ですよ!!詳しくはプリコネRをインストールして遊んでみてください!

 

最後に3つ目の魅力は、アニメーションがあること!

 

ゲームにアニメーション入れるのは、ずるいですよ、こんなんはまってしまいますよ~。それぞれの必殺技モーションにアニメーションがあるため、それが可愛かったり、かっこよかったりするから、もう目が離せませんよ~。

しかも、ストーリーにもアニメーションが入っているため、アニメが好きな人にはたまらないコンテンツです。

 

さて、いかがだったでしょうか。このゲームを遊びたいという人は、ぜひプリコネRで検索検索~♪

 

おまけ

おすすめアニメ

 

異種族レビュアーズ

恋する小惑星

痛いのは嫌なので防御力に極振りしたいと思います。

 

Twitter

https://twitter.com/gozipro_39318

 

ブログ

新部長爆誕!!

投稿日:

新部長爆誕!!

お久しぶりです、ごジンクスです!!!

なんと、

先日から、

部長になりました!!!

いやぁ~、部長になれてうれしいですね~~!!

せっかく部長になれたので、いろんなことをみんなとやってみたいですね~!

unityでたくさんのゲームを作ったり、ほかの大学の方たちと一緒にゲーム作りをしたり、コミックマーケットにも出店できたらいいですね~!

そんなわけで、部長として、サークルを盛り上げていけたらいいなと思っています。

これからどうぞよろしくお願いします!!

ごジンクス

twitter

https://twitter.com/gozipro_39318

ブログ

C97に参加してきました

投稿日:

こんにちは、Boltzです。
12/31の冬コミ(C97)4日目にサークル代表として参加したのでレポートを書きます!

今回マルチメディア研究会がどんなものを頒布したのかを説明した後、
コミケの感想を書いていきます!

頒布物紹介

今回、当サークルのブースで頒布したものは以下の3点です。
・書籍版「Unityで作るリズムゲーム」
・2019年度サークルコンピCD「Noir」
・2Dシューティングゲーム「NOVAE」ダウンロードカード(委託)

書籍版「Unityで作るリズムゲーム」

読者の方が今日からリズムゲームが作れるようになる!を目指した本です。
当サークルのメンバーに加え、外部の方にも協力していただき、1冊を作りました。

現在こちらのサイトでも頒布中です。
https://ecml.booth.pm/

 

2019年度サークルコンピCD「Noir」

長大祭で頒布した、サークルのコンポーザーによるコンピCDです。
「ダーク」をテーマとした5曲が入っています。

2Dシューティングゲーム「NOVAE」

シューティングゲーム(委託品)です。
こちらの動画の53:15あたりからご紹介いただいております。

まとめ動画を作ってくださった「えーでるわいす」さん、本当にありがとうございます。
(余談ですが、私はアスタブリードがとても好きです)

参加しての感想

サークル参加なので朝7時半くらいからビッグサイトに向かい、設営をしました。
朝日が神々しく感じました。

ブース設営が初めてだったので、手間取ってしまいましたが
10時前には設営完了!拍手で来場者の方をお迎えしました(朝のAppleStoreかな?と思った)

 

まわりのサークル

今回、C97出展宣伝ツイートをしていた時のご縁などでいくつかのサークルさんと繋がれたので、
そのサークルさんや、周りの気になったサークルさんのところにお伺いすることができました!

 

反響

このTwitterのタグで何件か反響をいただいており、嬉しい限りです。
本や頒布物の感想ツイートは見つけ次第Twitterアカウントの方でご紹介させていただきます!

 

最後に & 次回

最後に、今回売り子で参加してくれた ゆゆ さん、寝起きさん、本当にありがとうございました!
出展にあたりご協力いただいた皆様には感謝してもしきれません。

また、次回以降ですが、後輩で「C / C++ でテキストエディタ作る本を書きたい」と言っている人がいたので、マルチメディア研究会の次回作にご期待ください!!!

ブログ

P5の怪盗団に憧れて学生団体を立ち上げてみた

投稿日:

こんにちは、Boltzです。
そろそろサークルに入って3年が経ち、私が代表の期間も終わるので
今回は今までのサークル運営の振り返り記事を書いてみようかなと思います。

お気持ちポエムなので、その辺ご容赦ください。

題して「P5の怪盗団に憧れて学生団体を立ち上げてみた」です。

ここでは、P5はアトラスによって制作されたペルソナ5のことを指します。

 

ペルソナ5との出会い

まず、私とP5の出会いに関して簡単に説明します。
P5が発売されたのは私が高校3年だった頃です。学校生活も終わりに差し掛かった9月頃だったと思います。
真・女神転生(SMT)シリーズが大好きだったこともあり、発売された瞬間迷わず購入しました。
物語、演出、UIなどに惹きこまれ、時間を忘れてプレイしたことを覚えています。

高校では形式化された勉強・部活の生活を送っていたので、
ゲームの中で、自分たちの力で道を作り、目標を達成していく主人公や怪盗団に強く憧れました。

プレイしていくうちに「自分も怪盗団のような組織に入りたい!!」と思っていきました。(いわゆる現実とフィクションの境目がわからない厨二病)

 

組織の設立

大学に入って数週間が経った頃、「1年生でも申請が通れば学生団体(サークル)を立ち上げられるらしい」との噂を聞きました。
高校3年の時に「自分も怪盗団のような組織に入りたい!!」という目標を持っていた私は、自分で何か組織を作ってみることにしました。

幸い学生団体設立の申請は通ったので、組織と部室だけができました。

 

ハコは作ったものの…

設立した最初のモチベーションが「怪盗団」だったので、組織としては特に何も目標がありませんでした。(現実にパレスはないし、私にスタンド能力は発現しなかったので)
私は何をやるというビジョンも持っていなかったため、団体としての活動はあまりなく、特に大きな事件に巻き込まれることもなく月日は過ぎて行きました。

 

目標を持ったら加速する

N崎大学は†修羅の国†なので、あるルールがあります。活動実績を残さなかった学生団体の部室は消えるというものです。
部室は消えて欲しくなかったので、何か活動実績を残す必要に迫られました。そこに長崎で開催される観光ビジネスプランコンテスト(賞金付き!)の話が舞い込んできました。
いい機会なので、このコンテストで優勝することを実績にしようと、出場を決心しました。

目的は活動実績の獲得など安直なものであっても、何か組織としての目標を持つと活動が楽しくなってきます。
コンテストで勝つためには何が必要かを逆算すると、こうです。
・プランを立てられるだけの学習(=人間力パラメータの向上)
・活動に関するアドバイザー探し(=コーポレーションの形成)

ペルソナのゲームフローを参考に活動を始めました。
前者に関しては図書館やインターネットでの学習を進めればなんとかなったりするのですが、問題は後者です。
地域で観光をやっているNPO団体にコンタクトをとる、長崎研究をやっている大学の先生に話を聞きにいくなど行い、制作しているビジネスプランに対してアドバイスをもらいました。このような活動をやっているうちに、これはリアルP5では!!?という感じが強くなってきました。
このころからサークル活動が楽しくなってきたような気がします。

 

ゲーム制作を始める

ちょっとP5の話とは外れますが…
ここまで(リアル時間は2017年12月)で現在団体が主軸にしているゲーム制作は本格的に行っていません。ゲームを作り始めたのは、2018年度になってからです。
ビジネスプランコンテンストで最終的に提案したのは「長崎を舞台にした(いわゆる)ポケモンGOで地域を活性化する」です。iOSなどで動作するポケモンGO部分をつくって、プランの発表に盛り込むと強いのでは!?という思いつきで、UnityやAdobeのソフトを使ってゲーム開発をはじめました。
(実際にプランの発表のときに実機プレイを見せたら学生部門では優勝にこぎつけたので、強かったです)

ビジネスプランコンテストが終わり、ビジネスプランを書くという目標が失われたので、私に残ったのはデザインとゲーム作りのスキルになっていました。
また、新年度に入るにあたってどうやって後輩を呼び込むかを考えたところ、「ゲーム制作」は新入生にとって何か惹かれるものがある気がしたので、これを主軸にすることにしました。
(活動内容を一新するにあたり、うちの大学にゲーム制作を主軸とする団体はないかと探しましたが、私の観測範囲ではなかったです。嘘だよな)

 

ジョーカーはなんでもやる

4月に何人か後輩は入ってきてくれましたが、デザインやゲーム制作の経験のない方がほとんどだったので、2018年度の活動に関しても自分が中心になるかという考え(傲慢という)でやっていきました。

2018年度には、新しく学内ゲーム展示会の開催や長崎大学ゲームジャムの主催を行いましたが、だいたいが「人を巻き込んでも企画部分に関しては自分1人の範疇で」のスタンスで進めました。この考え方は2019年10月まで変わっていません。

P5作中でもだいたいなんでもやる(コミュの構築・探索で使う道具の調達・資金と物資管理など)のはリーダーだったし、そんなもんかなという感覚でした。

 

ジョーカーはいつかジョーカーをやめる

ただし、自分1人の範疇で完結させるという考え方はやや危険だったと思います。
なぜなら学生団体のリーダーは在学期間に限りがあるため、どこかで後進にリーダーを譲らなければならないからです。それに気づいたのは今年の2019年10月でしたが…。

現実の団体行動は、ポケモンSWSHやドラクエのようなパーティ全員に経験値が行き渡るものというより、タスクをやったものが基本的に成長するファイアーエムブレム型のような気がします。自分だけがタスクを引き受けていては、後の代がやや厳しくなることが予想されます。

現実の組織とP5の怪盗団の違いとして、代替わりが発生することが挙げられます。
(作中では期間限定の怪盗活動でしたが)末長く怪盗をやる場合、怪盗団はジョーカーJr.を育てるとよさげです。
自分自身のマネジメントをやるのは当然として、他がうまく成長できるようなタスク管理ができると、自分の代でも後の代でも充実したサークル活動ができるのではないでしょうか。

私がこの事実に気付いてからは、後輩の方々に謎のタスクが降ったとか降らなかったとか。

 

まとめ

タイトルで釣っておきながら、実際はペルソナ5と近く遠い学生団体の活動でした。

ただ、団体を作るのは楽しいです。思ったことをなんでもできるし、人間関係も広がります。
ペルソナシリーズでは、基本的に各大アルカナの特性を備えた人間は1人ずつしか登場しませんが、現実ではそのような制限はなく、同じ大アルカナの特性を持つ人(=似た性格の人)が複数人現れるのも面白いところです。

閑話休題。 (-> P5Sたのしみ!!!)

4年限りの大学生活なので、自分好みの団体で好きなことを思い切りやるのも楽しいのではないでしょうか。
大学生全人類団体作れ!と思います。
既存の団体を乗っ取ってそれまでと違う活動をやっているような話もわりと聞きますので、それもアリか(アリなのか?)とは思います。

3年弱の長いようで短いサークル代表生活でしたが、皆さんのおかげでなんとかやってこれたので、感謝の気持ちで筆を置かせていただきます。

今後は下の代が活動を引き継ぐようです。多分ですが、2, 3年はサークルは潰れない…と思います。…。

今後ともよろしくお願いいたします。