この記事の要点
- まずは自分ができることを増やすことから
- Javaを用いてのゲーム開発は難易度が高いが十分に可能
- 自身の手を動かして、アウトプットを重ねていこう
Javaはプログラミング言語の一種であり、IT企業での新入社員の研修などで導入される機会が多いです。
ゲームの製作やアプリ作成など様々なものを作ることが可能ですが、「Javaの勉強を継続しているけど、自身でつくりたいものが分からない」「Javaで何がつくれるのかがイメージできない」といった悩みを持っている方も多いのではないでしょうか。
本記事では、Java初心者でも作れるものをまとめて紹介していきます。
必要となる知識や作成の流れについても解説しますので、ぜひ参考にしてみてください。
目次
Java初心者の課題は作りたいものがわからないこと
Java初心者の課題としてよく挙げられるのが、自分の作りたいものがわからないことです。
「何を作るのか」目的が定まらないことが原因で勉強が進まないケースが非常に多いのが現状だと言えるでしょう。
「自分の作りたいものがわからない」という課題を解決するために必要なことは、下記の3点です。
- 自分ができることを増やす
- 実際にあるサービスを真似て作成してみる
- 自身でオリジナルサービスを作成してみる
それぞれ詳しく解説します。
自分ができることを増やす
まずは、自分ができることを徐々に増やしていく必要があります。
プログラミング言語の学習を進めていく際には、完璧に暗記をしたり、何も参考にせずに自身で実装したり、頭の中で完璧に覚える必要性はありません。
「過去にやったことがある」「インターネットの情報を参考にすれば作れる」という状態であれば十分に作成可能なので、学習サイトで基礎を学ぶことから始めていきましょう。
プログラミング初心者の間で人気がある学習サイトとして有名なのは、「ドットインストール」「Progate」などです。
ドットインストール:
https://dotinstall.com/
テックアカデミー:
TechAcademy [テックアカデミー]
Progate:
https://prog-8.com/
実際にあるサービスを真似て作成する
基礎を身に付けたら、実際にあるサービスのソースコードを真似して書いてみることが重要です。
ソースコードを真似して書くことを「写計」と呼びます。
ソースコードを真似して書きながら「コードの意味」「コードがどのように繋がっているのか」等を考えることで、プログラミングの習得スピードがアップします。
注意点として、写計を行う際にはサイト全体ではなく検索画面や予約画面、お問い合わせフォームなど部分ごとに絞って行いましょう。
また実際のサイトだけではなく、参考書の見本コードを参照しながらコードを打つやり方もおすすめです。
自身でオリジナルサービスを作成してみる
続いて自身でオリジナルサービスを作成してみましょう。
自身で試行錯誤しながらアウトプットする過程で、知識や作成方法が身に付きます。
インプットよりもアウトプットの方が頭に残りやすく、知識が定着しやすいです。
アウトプットすることで自信にも繋がりますし、プログラミングの楽しさにも気付くことができるでしょう。
まずはWebアプリ作成がおすすめ
オリジナルサービスを作成する際には、Webアプリの作成から始めるのがおすすめです。
ここでは初心者が作成したWebアプリの例を4つご紹介します。
いずれもオンライン学習サービスTech Academy(テックアカデミー)で行われたコンテストで優秀賞、もしくは最優秀賞を獲得したサービスとなっています。
どのようなオリジナルサービスを作成するか迷っている方は、ぜひ参考にしてみてください。
英単語パズル Nekotan
一つ目に紹介するのは、「英単語パズル Nekotan」です。
https://apps.apple.com/jp/app/id1459524745
テックアカデミーのUnityコース卒業性が作成したアプリであり、猫がたくさん登場するパズルゲームです。
英単語をパズル形式で学ぶことができます。
可愛らしいデザインと滑らかな操作性で非常に完成度が高いアプリとして評価されました。
ハイトウエイト
続いて紹介するのが、「ハイトウエイト」です。
ハイトウエイトは自分の身長と体重を入力、検索して、その情報を基にして入力内容と近い有名人を見つけるWebサービスです。
親しみやすいポップなデザインが魅力であり、SNSでのシェアも行えます。
繰り返し試したくなるデザイン性と拡散性の高さが売りのアプリです。
研究室マッチングシステム
次に紹介するのは、「研究室マッチングシステム」です。
研究室マッチングサービスは、PHP/Laravelコース卒業性が作成したWebサービスです。
研究室と学生をマッチングさせることを目的としており、シンプルなデザインが特徴です。
たとえば、煩わしい情報入力を省略するためにCSVでの一括入力や学生の提出ページでドラッグ&ドロップで直感的なUIにするなど、完成度が高いアプリケーションとして評価されました。
Recipe Box
最後に紹介するのが、「Recipe Box」です。
Recipe Boxは、手軽に記録が可能なレシピサイトです。
デザインのテイストが統一されているため、ユーザーにとって非常に親しみやすくなっているのが特徴です。
また、ユーザーの新規登録やログイン機能なども実装されています。
ミニゲームを作ってみよう
ここからは、Javaを用いたミニゲーム作成に必要となる知識や流れについて解説します。
Javaでのゲーム開発は難易度が高い
前提として、Javaでのゲーム開発は非常に難易度が高いです。
Javaは基本的にWebアプリケーションやloTデバイスの制御、バッチ処理など裏側での処理をメインに行います。
したがって、ゲームに必要なキャラクターのデザイン設定やフレームレートの描画などの処理も別で構築する手間が発生します。
たとえば、C#を用いる「Unity」やC++を用いる「Unreal Engine」などであれば、ゲームのキャラクターや背景などが多く用意されているため、手軽に本格的な3Dでのゲーム開発が可能となります。
Javaで開発されたゲームの例
Javaで開発されたゲームとして有名なのが「Minecraft」です。
https://www.minecraft.net/ja-jp
Nintendo SwitchやPlayStationで展開されていますが、基である「Minecraft Java版」はJavaで開発されています。
Javaでゲーム開発を行うために必要となる知識
Javaでゲーム開発を行うために必要となる知識は、下記の3つが挙げられます。
Javaの基本構文やオブジェクト指向の概念
ゲーム開発を行うためには、利用する言語の基本構文とオブジェクト指向の概念から学んでいきましょう。
たとえば、シューティングゲームを作成する際には自機・敵機、弾といった情報をオブジェクトとして管理する必要があります。
ゲーム開発環境の構築方法
ゲームを開発する際には、Webアプリケーションとは異なる開発環境構築が必要です。
ゲーム開発を行う場合、ゲームを動作させるパソコンやスマートフォン等のデバイスを準備しなければいけません。
一方、Webアプリケーションの場合はサーバーを用意する必要があります。
ライブラリについての知識
ゲーム開発を行う上でライブラリに関する知識もあれば、開発作業を円滑に進めることができます。
ゲーム開発には「物理計算」が必須です。
物理計算を楽に進めるための便利なライブラリも多く存在するので、どのようなライブラリがあるのか、どのように使用すれば良いのかを事前に学ぶことが重要です。
Javaでゲームを作る際の流れを解説
Javaでゲームを作成する際の基本的な流れについて解説します。
1 ゲームの仕様を決める
はじめに、ゲームの仕様を決める必要があります。
ゲームの画面イメージと流れ(状態遷移、ゴール条件など)を考えましょう。
2 ゲームの流れ・画面イメージの作成
続いてゲームの流れを考えていきます。
ゲームを進めていく流れを設計しつつ、画面イメージの作成も併せて行っていきましょう。
3 クラスの構成を考える
続いてクラスの構成を考えます。
Javaはオブジェクト指向のプログラミング言語であるため、ゲームの内容に合わせて適切なクラスを設定・実装が必須です。
4 完成したら不具合がないか確認する
実装完了後ゲームとしてプレイすることが可能か、自身で試していきましょう。
正常に動作するか、クリックしたボタンがスムーズに反応するか、設定した条件通りに動作するか等を確認しましょう。
問題なくプレイできれば完成です。
Raspberry Pi(ラズパイ)でJavaを使ってみよう
実際にRaspberry Piを使って、Java(バージョン8)のインストールから行っていきましょう。
Javaのインストール手順について解説します。
環境
ボード
Raspberry Pi 4 Model B
OS
Raspberry Pi OS (32-bit) Lite
Minimal image based on Debian Buster
Version: August 2020
Release date: 2020-08-20
Kernel version: 5.4
インストール方法
以下のコマンドを実行してください。
pi@raspberrypi:~ $ sudo apt-get update pi@raspberrypi:~ $ sudo apt-get install openjdk-8-jdk pi@raspberrypi:~ $
インストールが完了したら、以下のコマンドを実行してバージョンなどを確認してください。
pi@raspberrypi:~ $ java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1+rpi1-b01) OpenJDK Client VM (build 25.212-b01, mixed mode) pi@raspberrypi:~ $
まとめ
Javaを用いてのゲーム開発は、Unity等の言語と比較すると難しいですが十分に可能です。
まずは学習サイトや書籍などで基本を学びつつ、実際にあるサービスを真似て作成したり、オリジナルサービスを作成したり、学んだことをアウトプットすることが大切です。
Javaは習得が難しいため、長期間で取り組む必要がありますが、安定的に案件を得られることができるスキルとも言えます。
自身の手を動かしてアウトプットを重ねながら、Javaの取得に励んでみてください。