【月一】競技プログラミングに触れる回

こんにちは、kurokuです。先月から始めたこの【月一】企画、第二回にして期限ぎりぎりとなってしまいました。先が思いやられますね。とりあえず年度内はこのペースを保っていきたいです。

題材提供

前回ホワイトボードで募集した題材の中に「DxLibで3D」というのがありました。これは厄介だ。なんといってもDxLibは2Dですら結構大変なコードの記述が必要です。例えば当たり判定なんかも、実装自体は軽めですが上下左右に適用したり、足場のふちに当たった際の判定など書かなければならないことが多くなってしまいます。

まぁDxLibのサンプルゲーム見ればなんとなくわかるやろ、と思って以下のページを見てみました。

https://dxlib.xsrv.jp/program/dxprogram_3D.html

その中でもゲームを作るのに重要そうなのは1とか19かなーってコードを眺めていました。

???

いや、それぞれどういう動作なのかはなんとなくわかりそうですが、デバッグ用のオブジェクトを置くのにも大変そう、変数の存在範囲が広すぎてパラメタがどんどん増えそう。といった感じがしてきてア。

そこで今回のタイトルは何だったでしょう?「競技プログラミング」?3Dゲームは?

はい、3Dゲームについての記事は書けませんでしたぁぁぁぁぁ

3Dゲーム作るならUnity使おう!マウス操作だけでオブジェクトが生成できる!(すごい!)Unityちゃんかわいい!

というわけで3Dゲームを作ってみたいって人はUnityをお勧めします。というかUnityなら何でもできます。(Unityがこの世界を作ったといっても過言

https://unity.com/ja

Unityは何といってもAsset storeが充実しています。Assetというのはいわば、物とか材質とかです。月末報告会でのまんじゅう君のUnityちゃんやYutaさんの車がそうです(多分)。これらには基本的なプログラムがあらかじめ作成されており、ゲームの動きさえ書いてしまえばOKという感じです!

ただ、Unityで使われている言語はC#で、バリバリにオブジェクト指向の考えを取り入れています。なのでC言語から入った人だとコードの違いに混乱してしまうかもしれません。幸い、ブログ記事などが多く書かれているので、C#が書けなくても調べさえすれば大丈夫なことが多いです。

本題

やっと前回の言い訳説明が終わったので、競プロの話をば。

競プロとはなんぞやというのは以前ガナリヤさんが書いた記事があるのでそちらを参考に。

http://akitatnp.wp.xdomain.jp/2019/03/23/tnp%e7%ab%b6%e3%83%97%e3%83%ad%e6%94%af%e9%83%a8%e3%81%ae%e6%b4%bb%e5%8b%95%e7%b5%90%e6%9e%9c%e3%81%a8%e4%bb%8a%e5%be%8c%e6%98%a5%e3%81%ae%e3%83%9d%e3%82%a8%e3%83%a0%e6%9e%a0/

(これリンクを短縮形で貼るのどうやってやるんだろうか

こうゆうのもあるよっていう紹介・体験を来週の水曜か金曜にやろうと思ってます。(2019/11/30現在)

冬コミのゲームできて(僕はまだ作ってませんが)当分はすることないやって人や少しでも興味があるって人は挑戦してもらいたいです。

内容としてはごくごく簡単めな問題を実際に解いてもらうって感じにしようと思います。配点としては100-100-100-200-200-300くらい?基本的に標準入力(scanf)、標準出力(printf)、if、for、配列ぐらいがわかっていれば解けるような問題を用意します。(1時間くらいを想定)

100点問題なんかはほんとに入力して、四則演算して、出力みたいなものですし、300点は少し頭を使うような問題と思ってもらえればいいと思います。

日本だとAtCoderが大きいコンテストサイトですかね。(来週の問題もAtCoderの問題を出題します)

https://atcoder.jp/?lang=ja

(ほぼ)毎週土曜21時からコンテストが開催されてます。よかったら参加してみましょう。

まとめ

競技プログラミングは名前からしていかついと思われがち(いや、しらんけど)ですが、やってみると楽しいです。競プロにはまっている人を見るとそんなに時間をとれないと思うかもしれませんが、たまに参加してみるでも全然いいと思います。

毎年夏~秋には大学対抗のICPCという世界規模の大会も開催されます。僕は学部生の内に一回は予選を突破して、横浜大会に出てみたいです。もし、一緒に出てくれる人がいたら全力でサポートするので、来週の回はそれの足掛かりにしてもらえればと思います。

そんな感じでまた来月~

kurokuでした!

ゲームジャム(文化の日編)

はじめに

 こんにちは。まんじゅうです。秋大祭お疲れ様でした。秋大祭という一大イベントも終わったことで、ついにTNPにも代替わりの時期が訪れ、新会長になりました。改めて、これから一年よろしくお願いします。

 本題に入りますが、11月2日(土)にゲームジャムを行いました。今回は企画したのが前日だったため、あまり集まらないだろうと思いましたが、参加者は4人とそこそこ集まりました。今回は文化の日前日ということで、「食欲の秋」、「運動の秋」、「芸術の秋」にちなんだお題として、「目玉焼き」、「障害物競走」、「一筆書き」の3つを(単語ガチャで)設定しました。

 参加者から成果物の紹介とコメントを貰っているので、 そちらも見ていただけたらなと思います。

制作物一覧

1年次 ハイブリッジ

開発環境 DXライブラリ

 このゲームは、自機である白い丸を操作して赤い丸に見つからないようにゴールを目指すゲームです。今回は自機と敵、フィールドと敵の視界まで実装できました。今後は敵の行動とスタート、ゴールを実装して、ゲームとして遊べるように頑張りたいです。

2年次 まんじゅう

開発環境 Unity

 「障害物競走」というお題があったので、3Dのシンプルな障害物競走を作ってみました。Unity初日でどこまでできるかやってみようと思って始めましたが、ほぼコーディング無しでゲーム部分が作れたのでとても驚きました。今後はシーン遷移を実装してタイトル画面とクリア画面を作って遊べる形のゲームにできるよう頑張ります。

3年次 いっちー

開発環境 DXライブラリ

 お題のひとつ「目玉焼き」を飛ばすゲームです。マウスをドラッグすることで、目玉焼きの飛ばす方向と力を決定します。目玉焼きをお皿の上に乗せることができればゲームクリアとなりますが、床の上に落ちるともう一度となります。

 ゲームジャム終了後に思い付いた上に、開発期間として1週間ほどかかったので、限られた時間でゲームを作るゲームジャムの趣旨とは違うものになってしまいました。

 ゲームジャム当日は、目玉焼きを作るゲームを作ろうと思ったのですが、良い案が浮かばず、ただ卵を割るプログラムができました。

4年次 HIM

開発環境 Webアプリケーション

『お絵かきソフト』

お題: 一筆書き
という訳で、作りました。
一筆ではないですが(挫折しましたorz)、お絵かきできます。

Javascriptとcanvasで作りました。

マウスで描きます。色とペンの太さを選べます。

一筆書がどーしても動かなくて断念したのが悔しかったです。次こそは…

最後に

 やっぱりゲームジャムは良いですね(テンプレ)。やる気も出ますし、何か新しいことにチャレンジする機会にもなるので。冬休みとかにまた開催したいですね。

 それと、今回試験的に1日だけの超短期間ゲームジャムを開催しましたが、皆ある程度形になっていて良かったです。これの影響でジャムの参加ハードルが下がればいいなと思います。

 それでは今回はこのあたりで。最後まで読んでいただいてありがとうございました。また次回のゲームジャム記事(多分)で会いましょう。

Top