tama tama tama tama 変愚蛮怒 Hengband tama tama tama tama

変愚蛮怒のコントリビュータになろう

2022/12/04 Deskull
戻る

最初に ~現在の変愚蛮怒~

※本文は少々乱文気味です。後日追記します。

本記事はRoguelike Advent Calendar 2022の三日目の記事を兼ねつつ、変愚公式より記事とさせていただきます。
内容としてタイトル通り、ローグライクのプレイでなく、開発を行う側、特にある程度C/C++とGitHubサービスの利用もご存じの人前提となります。ご了承ください。

ここ約2年、惰性で公式Webを放っておいて、変愚蛮怒のAlpha版更新や個人的には2021年エイプリルフールのネタにもさせてもらったアレなバリアントの製作を重ねておりました。Deskullでございます。
予てより開発の進捗確認からの定期リリース広報などは私の仕事でありましたが、2021年2月からOSDNからGitHubへの公式の移管を進めている間にも本ページ自体は 長らく放置して、つい最近までOSDNのロゴまでそのままでした。 怠慢そのものであります。最近になって慌ててvue.jsなど導入して今時のWebに機能面強化しようと思っています。ゆるして。

変愚本体の進捗はというとどうでしょう。とうに3.0.0の正式版か、せめてBeta版にでも進めばいいものをどうしてAlphaで留まっているのは何故かなといえば、 これは相変わらず、*bandバリアントの定めです。Angband2.7の頃より煮詰めたる「秘伝のソース」をどうにかしようと特に頑張っているために中々進みません。
新しいネタを導入したい、しかしその導入するには過去の絶望な保守性のコードを克服しないと先に進めない、という点については大体現状のスタッフ 全員が暗黙にも公然にも了解するところとなっておりまして、Discordの「#変愚蛮怒開発」チャンネルでは日々、これは20~30年越しの今となってはC++では こうだろう、いや、そもそも20~30年前のCの水準でも普通はここで構造体、共用体使うもんだったよな、グローバル変数渡しもマジックナンバーも糞だよ糞!みたいな話がまだ浮かんでおります。
一方でどこかでキリ良く、コード上の既存の改変より新要素の追加を重点に置いたBetaへの移行もさっさとすべきではないかとの意見、考えもありまして、 この辺りは私Deskullの裁量でいい加減に〆切を定めたいところであります。

可視化とはいいものだ

その辺りについてはまたDiscordなどで引き続き相談しながら、定めたいところなのではありますが本題はこれです。
contributor to hengband/hengband
本日2022年12月4日時点の変愚GitHubページより見えるコントリビュータの一覧が以下の通り、各人何コミット、何行コードを追加修正やってきたかが一目瞭然となるわけで。
コミット数順に並べると一位はHourier氏、リファクタリングの実働部分大半が彼の功績です。
二位backwardsEric氏にはGithubに移行して以来、疾風のように現れて、当時からクッソいい加減だった和訳の指摘、Linux系ビルドで発生した問題などを随所細かに指摘いただいた結果のこの順位です。
三位habu氏はおなじみ混沌の覇者やっていただいている変愚初期からの開発勢。Github上の自動テストなどの継続的インテグレーションの構築、ソースの改善をどうすべきか、C++17/20といった最新の規格をどう扱うべきか等、技術的なリーダーシップを今も取ってもらっています。
私Deskullの立場どこ……ここ……?その他、過去であっても、2、3度程度のソース寄稿であってもGithubはきっちり記録を残してくれています。これらの人々に感謝しつつ、素晴らしい提案をしよう。

お前もコントリビュータにならないか?

コントリビュータになるまでのとっかかり方

申し訳ない、時間がないので丁寧な手順については今回は略します。
まずやっていただくことは、Githubでオープンソース運用をする際のセオリー通りです。自身のGithubアカウントを取り、変愚蛮怒のマスターリポジトリからフォークをしましょう。
自身のクライアントで開発するためにgitの導入は不可欠です。WindowsならばVisualStudio、LinuxならばGCCビルド環境を準備し、gitでcloneをかけてクライアントにリポジトリを作成すればまず開発環境はOKです。

具体的に何に貢献してもらうには、大きく分けて三つあるでしょう。

  • 何か新規にゲーム上のアイデアを思いついて、その具体的な改変をプルリクエストする。
    • これについては事前にDiscussionや独自にIssueで提案してもらう必要があります(そうでないと、現在の指針に合わない場合は却下される可能性大です)
  • 発見した明白なバグ、不自然な挙動を指摘するためIssueに報告を上げた上で、その修正案をプルリクエストする。
    • これについては、以前からバグ報告を求めている上にその修正まで行うのですから、開発陣としてはほぼ手放しで喜んで受け入れるケースが大です。ぜひよろしくお願いします。
  • 既存の課題となっているIssueから、自分が解決出来そうなものを見つけて、その修正、改善内容をプルリクエストする。
    • これも常に喉から手が出るほど欲しい人出ですので、概ね歓迎されます。特に自信がないけどとにかく何か直してみたい、という場合は、Issueの中でもgood first issueのついたものが特に取り掛かりよく始めてもらえると思います。
いずれにせよ、これらを行ってもらう際には、後述するテストに旨く通過してもらうためにもコーディング規約や開発指針に従ってもらう必要があります。 先にWikiの各種記事をご覧になってください。

以上を済ませてマスターリポジトリにプルリクエストを行えば、GitHub内で自動テスト、及び開発スタッフ内でのレビューが行われます。



レビューが通ってマージが行われれば、晴れてコントリビュータの一員です。ありがとうございます!

戻る