| 近年、IT技術は我々の生活において欠かせないものとなっている。しかし、このようなコンピューターシステムを動作させるために必要な、「高度なプログラミング技術をもった」人材は大幅に不足していると言わざるを得ない。
それでは、なぜ高度なプログラミングスキルを持った人材が少ないのであろうか?このことは、次の質問に対する回答が難しいことに端的に表れている。
・ プログラミングが必要となった。勉強をしたいのだが、一体何をしたらよいか――
提案者は、このような質問をたびたび受け、そのたびに適切な答えを見つけることができず、返答に窮してきた。提案者は、ACM/ICPC(ACM国際大学対抗プログラミングコンテスト)へと出場させるため、サークル活動としてプログラミングに興味はあるが全くの初心者である大学生にC++言語を教えるという活動を行ってきた。そこで強く感じたことは、次の三点である。
1. プログラミングを体系立てて教える教材の欠如
2. プログラミングに関するコミュニティの欠如
3. 学習に必要なモチベーションの持続が困難
これらの三点を同時に解決するため、当提案ではプログラミングを学べるMMORPG(Massively Multiplayer Online Role Playing Game)を開発する。
具体的開発項目は、以下の通りである。
1. ゲームサーバの開発
ゲームを進行する役割を持つ。ユーザ間のデータの同期、NPC(利用者以外の登場キャラクター)の人工知能、アイテムシステム、チャットメッセージの処理機能など、ゲームの進行上必要な動作を行う。
2. ジャッジサーバの開発
プログラミングの問題に対する利用者の回答の正誤判定を行う。そのプログラミングの問題が実際にプログラムを作成する問題の場合、ACM/ICPCと同様の方法で正誤判定を行う。
3. データベースサーバの開発
ゲーム内の全てのデータを保存する。利用者のキャラクターの情報、保持しているアイテムやお金に関する情報、プログラミングの問題とそれに対する審判用入出力など、ゲームに必要な全てのデータが保存されている。
4. クライアントプログラムの開発
ゲームを遊ぶための、ゲーム画面の描画、チャットクライアント、プログラミング問題に対する回答の送信などを行う。利用者がゲームを遊ぶ際、全ての操作をこのクライアントプログラムを用いて行う。
当提案で開発するMMORPGは、プログラミングを学び始めた初級者を、ACM/ICPC(ACM国際大学対抗プログラミングコンテスト)のような大会において出題される問題を解くことができるレベルにまで引き上げることを目標とする。
|