feature image

2024年7月1日 | 作品紹介

【NeoShowcase】traPには内製の作品公開プラットフォームがあります

はじめに | 『デジタル創作』同好会traPとは

私たち『デジタル創作同好会traP』は、Webアプリやゲームの制作を中心に活動する、デジタル創作・プログラミングの総合サークルです。

traPについて
東京工業大学デジタル創作同好会traPは、東京工業大学・大岡山キャンパスを拠点に活動する創作・プログラミングの総合サークルです。アプリ・ゲームの制作を中心に、音楽(DTM)、グラフィック(イラスト、3DCG、ドット絵、動画)などの創作活動に加え、Webインフラや競技プログラミング・サイバーセキュリティ(CTF)、機械学習(Kaggle)などに関する活動も行っています。 こうした創作活動のほかにも、大学サークル間の交流イベントの主催や、中高生向けプログラミング教室などといった社会貢献活動も行っています。 traPの班 * アルゴリズム(競プロ)班 * グラフィック班 * ゲーム班 * サウンド班 * CTF班 * SysAd班 * Kaggle班 traPには大きく分けてこの7つの班が設けられており、自分の興味に合わせて所属することができます。ここでは各班の活動を簡単に紹介します。より詳しく知りたい方は、各班の紹介ページもご覧ください。 アルゴリズム(競プロ)班 アルゴリズム班では、競技プログラミングに関する活動を行います。 競技プログラミングとは、与えら

音楽制作、グラフィック、ゲームプログラミング、Web制作などそれぞれの分野に長けた人が「プロジェクト」として集まり、いろいろな作品を日々創造しています。

以下は部員が創作した作品の例です。全て「Showcase」改め「NeoShowcase」を使って公開されています。

Flythm
新歓ブログリレー外から失礼します、Polyです。traPのプロジェクトとして2年ほど制作していたゲーム「Flythm」が、ついにこの度リリースとなりましたので、ブログに投稿させていただきます。 Play Now ! [https://flythm.trap.games/] Flythmとは?Flythmは、PCブラウザでできるキーボードとマウスを使って遊ぶ新感覚の音ゲーです。以下のURLにアクセスするだけで遊べます。URL: flythm.trap.games [https://flythm.trap.games/] 操作方法操作にはキーボードとマウスを使います。左手をキーボードに置き、薬指をSキー、中指をDキー、人差し指をFキー、親指をスペースキーに置きます。そして、右手でマウスを操作します。以下は操作のチュートリアル動画となります。 注意点ですが、使用するキーが他のゲームではあまり使われない組み合わせであるSDFとなっています。ホームポジションというキーボードの基本的な手の置き方がこの置き方となっているので、この割り当てを採用しました。また、マウス操作ではクリッ
2021 春ハッカソン 07班 「プラズシ」
北海道生まれ北海道育ちの主人公、エビ。彼はその大きく育った身を美味しくいただいてもらうことを夢見て、遠路はるばる東京の大人気寿司チェーン店『ぷら寿司』にたどり着いた。その身をぜひとも生で食べて欲しかったエビだが、彼が投入されたのはなんと揚げ物鍋。”天ぷらにはなりたくない、俺は裸一貫で寿司になるんだ!”迫りくる油の海、立ちふさがる天ぷら、彼は寿司になれるのか――。頂上のすし飯を目指し、今、一匹のエビが跳躍する。>> https://purazushi.trap.games から今すぐプレイ プラズシTAKI PLAZAの頂上を目指せ [https://purazushi.trap.games]-------------------------------------------------------------------------------- 本記事は6/14~20にかけて行われた部内ハッカソンの報告記事です。 チームメンバー * [19B] @d_etteiu8383 [/author/d_etteiu8383/] (TA, グラフィック) * [21B] @
2023 春ハッカソン 15班 「traQ gazer」
2023年春に開催されたハッカソンで「traQ gazer」を開発しました。traPでは部内SNSとして、内製の「traQ」が利用されています。このtraQは500人を超える部員に利用されており、日々多くの投稿がされます。traQ gazerは、そんなtraQを円滑に利用するためのツール
2024年 春ハッカソン 24班「発火村」とかマジで無駄な時間使って何やってんの?あんなオタクの集まりに行くのは人生の無駄遣いだろ。少しはまともな趣味でも見つけたらどうなの?笑。
メンバー フロントエンド: @cp20 (23B), @zoi_dayo (24B), @Alietty (24B) バックエンド: @ikura-hamu (22B), @tidus (24B) 作ったもの 今回のハッカソンのテーマ「さい」「えん」「す」の「えん」から、絶対に炎上する新世代SNS「発火村」(はっかむら)を作りました! 結果は最優秀賞でした!🎉🎉🎉🎉🎉🎉 サービス自体は部内限定公開なのですが、リポジトリは一般公開されています。 https://github.com/traP-jp/hakka-mura GitHub - traP-jp/hakka-mura: 絶対に炎上する新世代SNS「発火村」絶対に炎上する新世代SNS「発火村」. Contribute to traP-jp/hakka-mura development by creating an

また、部員の作品一覧は次のページから見ることができます。

作品紹介 - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

作品の公開場所

さて、これはハッカソンやプロジェクトで制作された作品を公開する場所のおはなしです。

素晴らしい作品であれば、より多くの人に見てもらいたいし遊んでもらいたいので、アクセスしやすい場所で公開したいですよね。

世の中には、VercelやAWSのような便利で高機能な「PaaS」や「IaaS」が存在しており、これらのサービスでWebアプリやゲームをインターネット上で公開することができます。
しかし、これらを使うにはサーバーの知識が必要だったり、高機能なあまり設定やドキュメントが難解だったり...

創作を行うすべてのメンバーがこれらのサービスを扱えるとは限りません。
そこで、作品を公開するハードルを下げ、より創作活動を活発に行えるようにする基盤である「NeoShowcase」がtraPには存在します。

作品公開プラットフォーム「NeoShowcase」

内製のサービスである「NeoShowcase」では、traPのクリエイターの創作作品の公開を支援します!
シンプルなWebサイトやWebサービスならば、とっても簡単に公開できます!

部員は無料で使える

「NeoShowcase」はtraPの部費(現在半年2000円!)によって運営されているサーバー上で動いています。使用にあたって追加料金は必要ありません!
適切にスケールができるため、部員がいくら増えても混雑を気にせず、無料で使うことができます!

設定(ほぼ)ゼロで公開

シンプルなWebサイトやサービスは、(ほぼ)設定ゼロで公開できます!

Gitリポジトリにソースコードをアップロードしたら、ダッシュボードの説明に従ってボタンを押すだけで設定が終わります!

Gitリポジトリの登録
設定の登録 ボタンを押したりドロップダウンから選ぶだけ

最後に、自分の作品を公開したい好きなドメイン名(例: flythm.trap.games)を選んだら設定終了です。

好きなドメイン名を選ぶ → 完了!

このように、複雑な設定は行わずに作品の公開が行えます。

部内Gitホスティングサービスと連携

traPには、traP IDと連携して簡単・無制限に使えるGitホスティングサービス「Gitea」があります。
こちらのGiteaで開発を行えば、リポジトリ情報の登録や、メンバーの権限管理など難しい設定を行う必要はありません。

公開したいドメイン名や範囲を選ぶだけといった、本質的な公開設定に集中できます。

Pushだけでデプロイ

「NeoShowcase」はリポジトリのブランチを追跡して、新しいコミットがあればその最新のコミットでビルド・デプロイを行います。

クリエイターが行う操作は、普段の「git push」だけであり、更新のたびに難しい操作を行う必要はありません!

こんなにも高機能

シンプルな枠組み・デザインながら、熟練者のユーザーは、より高度な使い方もできます。

複雑なビルド方法に対応するため、Dockerfileからそのままビルド・デプロイが可能です。
MariaDBやMongoDBといったデータベースの使用もネイティブでサポートしています。

Dockerfileからのビルドも対応

また、作品にアクセスするURLパスの細かな制御や、traP IDと連携した認証もワンクリックで設定できます。

複数URLの設定や部員認証の設定もワンクリック

さらに細かい高度な設定は、部内Wikiのページから見ることができます。
traQなどの他の内製サービスと同じ場所でドキュメントを管理しているため、比較的容易に見つけられます。

その他細かい説明は部内Wikiに

技術的挑戦

「NeoShowcase」では、サービスを使う側の使いやすさだけでなく、サービスを提供する側の体験も重視しています。

継続的なメンテナンス

大学のサークルではメンバーの入れ替わりが最短4年で発生するため、最初の開発者が卒業した後も継続的にサービスを提供できるように工夫を行っています。

技術選定ではサークル内標準であるGo言語や、フロントエンドビルドツールViteなどを選択し、サークルの講習会や他プロジェクトの経験を活かせるようになっています。
また、サークル内標準とは限らない、Solid.jsやKubernetesといった技術も問題解決のために適切に導入しています。
適切な開発・運用ドキュメント、勉強用の資料などを内部Wiki等に残すことで、サークル内標準技術だけを知っているメンバーでも開発に挑戦できるようになっています。

開発ドキュメント
運用ドキュメント

特に「とっつきにくい」と言われるKubernetesに関しても、サークルメンバー向けに勉強用資料を一から書き、引き継ぎ体制を整えています。

GitHub - motoki317/mini-k8s-hands-on: 仕組みと意味から理解する Kubernetes ミニハンズオン (JP)
仕組みと意味から理解する Kubernetes ミニハンズオン (JP). Contribute to motoki317/mini-k8s-hands-on development by creating an account on GitHub.

前代Showcaseの問題を解決

「NeoShowcase」(新しい「Showcase」の意)は、Showcaseをリプレースするプロジェクトでした。

traP創設間もなくから存在していたShowcaseは、「部内PaaS基盤」として、部員が作った作品の公開を支えてきました。
しかし、一人の制作者がやや突貫工事気味で作ったシステムは、メンテナンスされず様々な問題を抱えていたり、機能が洗練されていない状態のまま放置されていました。

Showcaseが抱えていた問題の例:

「NeoShowcase」では完全に一からShowcaseのリプレースを行い、サービス自体や管理画面を一から再デザインしました!

このように元の目的や思想は受け継ぎつつ、一から再設計することで使いやすさやメンテナンス性を確保しました。

開発フロー

NeoShowcaseでは、ユーザーである部員のフィードバックを検討し、可能な限り早く「価値」を届けるため、モダンな開発フローを整備しています。

部員のフィードバックは、部内メッセージングサービスであるtraQの1チャンネルに集められます。
このフィードバックはGitHub上のissueにまず整理されます。

開発者が要件を整理し、Pull Requestといった形で修正の提案を行うと、管理画面の変更に関しては全自動でプレビュー環境が立ち上がります。
このプレビュー環境を用いて、誰でもブラウザ上から素早く変更やバグの有無をチェックできます。
技術的には、ArgoCDのApplicationSetを用いて環境の生成を行っています。
(最近では、traQの開発にも同じプレビュー技術を取り入れています。)

PRが開かれるとプレビュー環境が全自動で立つ様子(その通知)

変更をmainブランチに取り入れた後は、ChatOpsのbotから、1コマンドでビルド・リリース・デプロイまで行うことができます。
traQ上で開発チームメンバーがコマンドを打ち込むと、5分から10分でリリースから本番環境へのデプロイまで、全自動で行われます。

ChatOpsにより全自動リリース・デプロイ

これらの工夫により、圧倒的な速度でフィードバックから改善までのループを回しています。

デザイン

管理画面のデザインは、「SysAd班 デザイン部」によってデザインされています。

デザイン部 - 東京工業大学デジタル創作同好会traP
『デジタル創作同好会traP』は、東京工業大学で活動するデジタル創作・プログラミング系サークルです。ゲーム制作を中心に、アプリ、音楽(DTM)、グラフィック(イラスト、3Dモデル、ドット絵、動画)などのクリエイティブ活動の他、競技プログラミング(競プロ)やCTFも行っています。

他内製プロダクトと同じデザインシステムで設計されており、ユーザーである部員の使いやすさを第一に意識しています。

特にPaaSである「NeoShowcase」では様々な情報や設定が存在するため、「情報を分かりやすく提示」したり、「行うべき操作へ適切に誘導する」ために様々な工夫を施しています。

管理画面のコンポーネントの設計

まとめ

traPでは日々部員によりWebサービスやゲーム等が創作され続けています。
これらの簡単な公開を支援するために、前代Showcaseの良いところを引き継ぎつつ誕生したのが「NeoShowcase」です。

部員は誰でも無料で作品をインターネット上に公開できます。
また、シンプルな枠組みながら高度な使い方もサポートし、様々なWebサービスやゲームを公開できます。

これからも、より使いやすい「作品公開プラットフォーム」としてのあり方を考え、機能改善や引き継ぎを進めていきます!💪

toki icon
この記事を書いた人
toki

Java, Go, JS/TSなどをいじっています

d_etteiu8383 icon
この記事を書いた人
d_etteiu8383

グラフィック班とゲーム班とSysAd班所属 いろいろ活動しています

tararira icon
この記事を書いた人
tararira

SysAd班とGraphic班で活動しています。デザインが好き

pikachu icon
この記事を書いた人
pikachu

VRChatに住んでいる、重度のケモナーです。よろしくね!

pirosiki icon
この記事を書いた人
pirosiki

23B。SysAd班でがんばってます

kyosu icon
この記事を書いた人
kyosu

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年11月21日
School Breakin' Tag -新感覚おにごっこ-
s9 icon s9
2023年12月11日
DIGI-CON HACKATHON 2023『Mikage』
toshi00 icon toshi00
2022年4月7日
traPグラフィック班の活動紹介
annin icon annin
2021年3月19日
traPグラフィック班の活動紹介
NABE icon NABE
2024年6月21日
ハッカソン参加記 4班"Slide Center"
Alt--er icon Alt--er
2023年7月15日
2023 春ハッカソン 06班 stamProlog
H1rono_K icon H1rono_K
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記