2023年10月9日月曜日

エンドレスランナー「ギルガメランナー」の開発日記#5

 


おはこんばんちわ!ギルガメです!

引き続き「ギルガメランナー」の開発を進めていきます!

今回はオリジナルキャラクターの私「ギルガメ」(3D制作初心者の私がBlenderを作ってみたもの)のモデルをプレイヤーに変更しました。
これで一気にオリジナルっぽくなりますね、私が走っているようで嬉しいです!

今回の変更は下記になります。

  • プレイヤーをギルガメに変更
  • UIをドット絵のボタンに変更(アセットストアで無料)
  • ポイント獲得のモデルを「コイン」に変更(アセットストアで無料)
  • モバイルでリリースするためにUIを全体的にモバイル用に変更

こちらが一通りの開発になります。モバイルでリリースするためにUIを全体的にモバイル用に変更したのでWEBGLでのUIが違和感があるかと思いますが、触っていただければと思います。

各UIの画面:







こんな感じです!

ぜひ触って見てください!

Version 0.5


実は面白そうなアイデアがあるのでそちらを追加して今回はリリースまで開発したいと思います!

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!




2023年9月26日火曜日

ヴァンパイアサバイバーズ風ゲーム「ギルガメサバイバー」の開発日記#1

ギルガメサバイバー

 おはこんばんちわ!ギルガメです!

最近好きなYoutuberがVampire Survivors(ヴァンパイアサバイバーズ)にハマっていてちょっとどういうものか作ってみたくなりました。


まだまだベースの部分ですが作ってみました。ヴァンパイアサバイバーズ自体は2Dですが3Dで作ってみました。時間ができたら2Dにしていこうかな。


やってみたことは下記になります。

  • プロジェクトの作成
  • プレイヤーの作成(プレイヤーの移動スクリプト)
  • 弾の発射地点
  • 弾のプレハブ
  • 敵の作成
  • 当たり判定の設定

コードを共有します。



プレイヤーのスクリプトではプレイヤーの移動をWASDや矢印キーで動けるようにして、マウスのカーソルに弾の発射方向を向けるようにします。マウスの左クリックで弾を発射します。

敵はプレイヤーのある範囲から生成するようにしています。敵にはプレイヤーに接触した時に与えるダメージとHPを設定して弾が当たっ時にHPが0になった時に破壊します。


下記でシンプルですが遊べます。


ギルガメサバイバーver0.1


次は弾の種類、ミサイルだったり増やしてみようかな。

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!



2023年9月21日木曜日

エンドレスランナー「ギルガメランナー」の開発日記#4

 


おはこんばんちわ!ギルガメです!

引き続き「ギルガメランナー」の開発を進めていきます!

今回は全体的にUIを追加していきました。

追加したUIは下記になります。
  • タイトルUI
  • PauseUI
  • ステージセレクトUI
  • ゲームオーバーUI

各UIはちょっと適当ですが下記のようにしました。


タイトルUI


ステージセレクトUI

Pause UI

ゲームオーバーUI

上記のUIを追加しました。一気にゲームらしさが出ます。嬉しい・・!!

UIの追加で難しいことは特にありませんでした。Sceneの移行を使いやすくするためにスクリプトで追加しています。シンプルなので難しくはありませんが、ステージごとにボタンを画像で表示するとまた雰囲気が変わりそうですが、また後ほどUIを変更していきたいです。

またゲーム要素の追加しています。
  • ステージ2の追加
  • 敵の追加
  • フィールドの追加
  • ポイントとタイムの保存と表示
上記の追加しました。

ステージ2の追加は、前回のステージで使い回しをできるように作っているので、フィールドのプレハブ、敵のプレハブなどを用意するだけで簡単にステージを作れます。今回はステージセレクトのUIを追加したのでステージも追加しました。雰囲気は夜のエンドレスランと夜のステージなのでゴーストを追加しました。

ポイントとタイムの保存と表示は簡単にPlayerPrefsを使って保存しています。
ステージセレクトUIの追加したのでそちらでステージ毎のタイムとポイントを確認できるようにしました。

ぜひ触って見てください!

Version 0.4


次はスコアなどを他のプレイヤーと競えるようにサーバーにスコアなどを保存してランキングパネルを追加してみようかな。

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!

2023年9月19日火曜日

Unity3DとUnreal Engine 5のどちらが良いか比較

Unity3DとUnreal Engine 5のどちらが良いか比較

• はじめに

• Unity3DとUnreal Engine 5とは

• 使いやすさ

• グラフィックス

• 機能と機能拡張

• パフォーマンス

• アセットストア

• 結論


はじめに

はじめまして!今日はUnity3DとUnreal Engine 5の比較についてお話ししましょう。両方のゲームエンジンは非常に人気がありますが、どちらが良いのでしょうか?興味がある方にとっては重要なテーマですよね。


Unity3DとUnreal Engine 5は、ゲーム開発において非常に強力なツールです。どちらも独自の機能や特徴を持っており、数多くの成功作品を生み出しています。しかし、それぞれに違いもありますので、一つ一つ見ていきましょう。


まずはUnity3Dの概要から始めましょう。Unity3Dは非常に使いやすいインターフェースを持っており、初心者でも比較的簡単にゲーム開発を始めることができます。また、コミュニティも非常に広く活発であり、様々な情報やサポートを得ることができます。


一方、Unreal Engine 5の概要です。Unreal Engine 5は非常に強力なグラフィックスや物理エンジンを持っており、リアルなゲーム体験を実現することができます。また、インベントリシステムやAI機能など、幅広い機能が用意されています。


どちらが使いやすいかという点では、Unity3Dが初心者にとっては優れているかもしれません。しかし、Unreal Engine 5のグラフィックスや物理エンジンの強力さを考えると、それ以上の努力をする価値があるかもしれません。


さて、使いやすさについてはこんな感じです。次はグラフィックスについて見ていきましょう。それではお楽しみに!


Unity3DとUnreal Engine 5とは


Unity3DとUnreal Engine 5、どちらがいいのか悩んでいる人も多いはずです。それぞれのゲームエンジンの特徴や性能を比較して、最適な選択肢を見つけてみましょう。


Unity3Dの概要

まずはじめに、Unity3Dは非常にポピュラーなゲームエンジンです。多くのデベロッパーがUnity3Dを使ってゲームを作っており、その人気の理由は何でしょうか?まずはその使いやすさです。Unity3Dは初心者でも比較的簡単に学べるため、プログラミングの経験がなくてもゲームを作ることができます。


また、Unity3Dには豊富なアセットストアがあります。ここでは、様々なアセットやリソースをダウンロードして使用することができます。これにより、素材作りに時間をかけずにゲーム制作に集中することができます。


Unreal Engine 5の概要

次にUnreal Engine 5です。Unreal Engine 5は、高品質なグラフィックスとパワフルな機能で知られています。映画のようなリアルなグラフィックスを再現することができるため、リアリティのあるゲームを作りたい場合には最適です。


また、Unreal Engine 5は豊富な機能と機能拡張があります。プロジェクトに必要なツールや機能が揃っているため、作業効率を高めることができます。さらに、Unreal Engine 5は大規模なプロジェクトにも対応しており、複数の開発者が同時に作業することができます。


どちらを選ぶべきか?

さて、Unity3DとUnreal Engine 5のどちらを選ぶべきか迷っている方には、以下のポイントを考慮することをおすすめします。


使いやすさ:Unity3Dは初心者に優しいですが、Unreal Engine 5はより高度な機能を提供しています。プログラミングの経験や技術力によって選ぶべきエンジンは異なるかもしれません。


グラフィックス:Unreal Engine 5はリアルなグラフィックスを実現できるため、映画のような演出をしたい場合にはおすすめです。一方、Unity3Dはカートゥーン風やシンプルなグラフィックスを好む人に向いています。


機能と機能拡張:Unreal Engine 5は機能が豊富であり、大規模なプロジェクトにも対応しています。一方、Unity3Dは初心者でも使いやすく、シンプルなプロジェクトに最適です。


パフォーマンス:Unity3Dは軽量なエンジンであり、様々なプラットフォームで動作することができます。Unreal Engine 5はグラフィックスに重点を置いているため、高スペックなPCやコンソールでの利用がおすすめです。


アセットストア:Unity3Dのアセットストアは非常に充実しており、必要な素材やリソースを手に入れやすいです。Unreal Engine 5のアセットストアも豊富ではありますが、Unity3Dほど幅広い品揃えはありません。


以上のポイントを考慮して、自分のプロジェクトや目標に合ったゲームエンジンを選ぶことが重要です。どちらを選んでも素晴らしいゲームを作ることができるので、自分の好みや目的に合ったエンジンを選んでみてください。


さて、このUnity3DとUnreal Engine 5の比較は、いかがでしたか?両方のエンジンにはそれぞれ利点と欠点がありますが、あなたのニーズに合った方を選ぶことが大切です。どちらのエンジンを選んでも、あなたのクリエイティビティで素晴らしいゲームを作ることができるはずです。 Happy coding and gaming!


使いやすさ

Unity3DとUnreal Engine 5のどちらが良いか比較


はじめに:

Unity3DとUnreal Engine 5のどちらを選ぶべきか、迷っている人も多いことでしょう。どちらを選ぶかは、あなたの個人的な好みやプロジェクトのニーズによって異なります。そこで、この比較記事では、両方のエンジンの使いやすさ、グラフィックス、機能と機能拡張、パフォーマンス、アセットストアなどの側面を検討してみましょう。


Unity3DとUnreal Engine 5とは:

まずはじめに、Unity3DとUnreal Engine 5の概要を知っておきましょう。Unity3Dは、使いやすくて初心者にもおすすめのゲームエンジンです。一方、Unreal Engine 5は、高度なグラフィックスとパフォーマンスを提供することで知られています。どちらも有名なエンジンであり、大規模なプロジェクトにも対応しています。


使いやすさ:

さて、最初の比較項目は「使いやすさ」です。Unity3Dはシンプルなインターフェースと使いやすさが売りです。初めてのプロジェクトには最適で、ドラッグ&ドロップの操作や直感的な編集機能があるため、プログラミングの経験がない人でも簡単に学ぶことができます。


一方、Unreal Engine 5は少し学習コストがかかるかもしれません。複雑なツールセットやプログラミング言語(BlueprintやC++)を使いますが、その分高度なカスタマイズやパフォーマンスが可能です。プログラマーやテクニカルな人にとっては魅力的かもしれませんが、初心者には少しハードルが高いかもしれません。


両エンジンの使いやすさでは、Unity3Dが初心者向けに優れていると言えるでしょう。誰でも簡単に使い始めることができるので、手軽にゲーム開発を始めたい人には最適です。一方、Unreal Engine 5はより高度な機能を求めるプロジェクトに向いていて、技術的なチャレンジを求める人にはピッタリです。


グラフィックス

グラフィックスはUnity3DとUnreal Engine 5の比較で重要なポイントです。まずはUnity3Dのグラフィックスから始めましょう。


Unity3Dのグラフィックスは非常に強力であり、美しいビジュアルを作り出すことができます。リアルな照明効果や質感表現、そして多様なエフェクトなど、開発者が求めるさまざまな要素を提供しています。また、Unity3Dはシェーダーラボを使用して独自のシェーダープログラミングも行えます。これにより、より高度なグラフィックス表現を実現することができます。


一方、Unreal Engine 5のグラフィックスも驚くべきものです。この新バージョンでは、Naniteと呼ばれる技術が導入され、ゲーム内のオブジェクトや環境の詳細な表現が可能になりました。また、光の反射や影、粒子エフェクトなど、写実的な表現も容易に実現できます。Unreal Engine 5は、映画やアニメのようなクオリティのグラフィックスを実現するために設計されています。


どちらのエンジンも優れたグラフィックスを提供していますが、その違いは開発者のニーズによります。Unity3Dは柔軟性があり、幅広いプラットフォームに対応しています。また、開発プロセスが迅速であり、リソース効率も優れています。Unreal Engine 5は、よりリアルなビジュアルを求める場合に特に優れていますが、コストやパフォーマンスの点で注意が必要です。


要するに、Unity3DとUnreal Engine 5のどちらが優れているかは、開発者のニーズと制約によります。どちらのエンジンでも素晴らしいグラフィックスが作れるし、どちらも利点があります。開発者は自分のプロジェクトのニーズに合わせて最適なエンジンを選択すべきです。


さぁ、次は機能と機能拡張の比較です。楽しみにしていてくださいね!


機能と機能拡張

Unity3Dの機能と機能拡張は非常に多岐にわたります。まず、Unity3Dはマルチプラットフォーム対応の開発に優れています。この機能により、あなたは同じコードを使用して、さまざまなデバイスやプラットフォーム向けにゲームやアプリを開発できます。


さらに、Unity3Dは強力なエディタを提供しています。エディタは、ビジュアルに直感的な方法でシーンを作成し、オブジェクトやエフェクトを配置することができます。また、スクリプトを使ってゲームのロジックを実装することもできます。エディタの柔軟性は、開発者が自分のビジョンを実現するために必要なツールを提供しています。


また、Unity3Dは豊富なアセットストアを持っています。ここでは、さまざまなアセットパッケージやプラグインを見つけることができます。これにより、開発者は再利用可能なコンテンツや機能を容易に追加できます。アセットストアは、開発者が時間と労力を節約し、効果的な開発を行うための重要な要素です。


一方、Unreal Engine 5の機能と機能拡張も非常に印象的です。これには、リアルなグラフィックスと物理シミュレーションが含まれます。Unreal Engine 5は、フォトリアルなビジュアルを作成するための高度なツールとエフェクトを提供します。また、物理シミュレーションにより、リアルな振る舞いや衝突を実現することができます。


さらに、Unreal Engine 5はビジュアルスクリプティングツールであるBlueprintを提供しています。Blueprintは、プログラミングの知識がない開発者でもゲームのロジックを構築できるようにするものです。これにより、プログラミングに自信のない人でもゲームを開発することができます。


また、Unreal Engine 5はハイエンドのパフォーマンスを提供します。強力な最適化機能により、大規模なプロジェクトでもスムーズに動作します。また、Unreal Engine 5はVRおよびARのサポートも提供しており、新たな領域への進出を支援します。


さて、どちらが優れているかはあなた次第です。Unity3Dは使いやすさと柔軟性を提供し、アセットストアの利便性もあります。一方、Unreal Engine 5はリアルなグラフィックスや物理シミュレーション、ハイエンドのパフォーマンスなどを提供します。


あなたが開発するプロジェクトの要件と優先事項に基づいて、最適な選択肢を選んでください。どちらを選んでも、素晴らしい結果が得られることでしょう。それでは、開発の成功をお祈りしています!


パフォーマンス

えーと、パフォーマンスですね。ユニティちゃん(Unity3D)とアンリアルちゃん(Unreal Engine 5)の力比べです!いいですね、ちょっと両者のパフォーマンスを比較してみましょう!


ユニティちゃんは持ち歩きもできるし、何食べたいかも選べる優れもの!マルチプラットフォーム対応で、どんなデバイスでも動かせるというところがすごいですよね。それにクロスプラットフォームでの開発も可能で、面倒な移植作業が不要ってのもありがたいです。パフォーマンスは結構良いですが、他のグラフィックエンジンと比べると若干物足りなさを感じるかもしれませんね。


それに対して、アンリアルちゃんは専用機特化型の美女!リアルなグラフィックスと高いパフォーマンスがウリです。まるで映画のような臨場感を演出してくれるんですよ。ただ、専用機に特化しているせいか、他のデバイスへの移植がやや面倒かもしれませんね。でもパフォーマンスはかなり優れているといえます。


まとめると、ユニティちゃんはマルチプラットフォーム対応で手軽ですが、グラフィックスにやや物足りなさを感じるかもしれません。一方、アンリアルちゃんは美しいグラフィックスと高いパフォーマンスを持っていますが、専用機特化なので他のデバイスには不向きかもしれません。それに、実際どっちがいいかは自分の好み次第ですから、どちらが良いかはあなた次第です!


では、この辺で切り上げたいと思います。次はアセットストアについてお伝えしますね! それでは、お楽しみに!


アセットストア

Unity3DのアセットストアとUnreal Engine 5のアセットストアを比較すると、個人的に言えば、どちらのエンジンもユニークな利点を提供しています。まず、Unity3Dのアセットストアでは、豊富なアセットライブラリを見つけることができます。ゲームオブジェクト、キャラクターモデル、環境アセットなど、あらゆるものが揃っています。しかも、多くのアセットはフリーか低価格で提供されているため、制作コストを抑えることができます。また、Unity3Dのアセットストアでは、アセットがユーザーレビューに基づいて評価されていますので、品質の高いものを選ぶことができます。


一方、Unreal Engine 5のアセットストアは、より高品質でリアルなアセットを提供しています。3Dモデル、テクスチャ、エフェクトなど、ゲームのビジュアル面を強化するための幅広いリソースが揃っています。Unreal Engine 5は、映画のようなグラフィックスを実現することができるので、これらのアセットはプロジェクトに本当に価値をもたらします。また、Unreal Engine 5のアセットストアでは、エディタ内でのプレビューやアセットの統合がシームレスにできるため、制作プロセスをスムーズに進めることができるでしょう。


どちらのアセットストアも特徴的で使いやすいですが、Unity3Dのアセットストアは利用可能なアセットの幅広さと低価格なアセットの多さにおいて優れています。一方、Unreal Engine 5のアセットストアは、高品質でリアルなアセットを求める場合には非常に便利です。どちらを選ぶかは、プロジェクトのニーズや個人の好みによるでしょう。


結論

Unity3DとUnreal Engine 5、どちらを選ぶか結論を出していこう。両方のプラットフォームは魅力的な特徴を持っているぞ。まず、Unity3Dは使いやすさがウリだ。初心者でも手軽に学び始められるし、コードの知識がなくても簡単なゲームアプリを作ることができる。

一方で、Unreal Engine 5は高度なグラフィックス表現が可能で、リアリティのある世界を作り上げるのに適している。特に、大規模なプロジェクトに向いていると言えるだろう。

また、機能と機能拡張に関しては、Unity3Dは多機能なエディターとアセットストアが魅力で、幅広いリソースを利用できる。一方、Unreal Engine 5は強力なビジュアルスクリプティングと革新的な機能拡張が特徴だ。

パフォーマンス面では、Unity3Dは軽量なゲームに適しているが、Unreal Engine 5はリッチなゲームに向いている。最後に、アセットストアについては、Unity3Dのほうが充実しており、幅広いアセットが手に入る。ここまで見てきたように、Unity3DとUnreal Engine 5はそれぞれ得意とする分野が異なるので、個々のニーズに合わせて選ぶべきだ。では、どちらを選ぶかは君次第だ!



2023年9月14日木曜日

エンドレスランナー「ギルガメランナー」の開発日記#3

 


おはこんばんちわ!ギルガメです!

引き続き「ギルガメランナー」の開発を進めていきます!


今回はかなり雰囲気が変わりました!
やったこと:
  • プレイヤーのモデルの追加
  • プレイヤーの走りとジャンプのアニメーションの追加
  • 敵のモデルの追加
  • 敵のidleのアニメーションの追加
  • フィールドのモデルと自動生成の修正
これだけを追加して雰囲気が一気に変わりました!エンドレスランナーっぽくなりました。
WebGLでExportして試してみたのですが、少しカクツキがあったのでカメラのUpdateをLateUpdateに修正してカクツキが気にならなくなったのでよかったです。

プレイヤー、敵とフィールドのモデルはアセットストアで安くなっていた時に買ったもので、個人的に気にっているので使ってみました。
使ったアセットはこちらになります。
  • 空:AllSky Free - 10 Sky / Skybox Set(無料)
  • プレイヤー:1000+ Character Pack(有料)
  • フィールド:3D Cartoon Box Map(無料)
  • 敵:Level 1 Monster Pack(無料)

コードは複雑になってきたので詳細は載せませんが、興味のある方はコメントいただけると共有いたします。




今回の追加で難しかったこと:
  • プレイヤーのジャンプの修正、今まではOnCollisionEnterで対応していたのですが、たまに地面についていなくても地面判定できてしまい、ジャンプが2回できてしまうバグがったので、こちらをRaycastHitとPhysics.SphereCastコードで地面判定するようにしました。これで二重ジャンプの問題がなくなりました。
  • フィールドの自動生成とプレイヤーが通り過ぎた後の破壊の処理、こちらはそこまで難しくなかったのですが、プレイヤーがある程度過ぎたらフィールドを生成するロジックがうまく機能できていなかった(フィールドの生成が早くて先の先の先まで永遠に生成していた)ので、ずっと生成していると重くなる原因になるので頑張りました。
  • ステージ毎でモンスターやフィールド、時間でスピードの調整など簡単に設定できるように対応しました。
今回のバージョンは下記になります。






次はUIでも追加してみます!

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!

2023年9月8日金曜日

エンドレスランナー「ギルガメランナー」の開発日記#2

 



おはこんばんちわ!ギルガメです!
引き続き「ギルガメランナー」の開発を進めていきます!


今回はもうちょっとエンドレスランナーの要素を追加していきたいので下記を対応してみました。
  • エンドレスランナー中にアイテムを拾ってポイントを稼ぐ(UIを表示)
  • エンドレスのゲームプレイのタイムを測る(UIを表示)
  • タイムによってスピードを加速して難易度を上げていく

対応したコードは下記になります。(ほとんどが追加になります)


対応したことを細かく説明していきます。

  • ポイントを稼ぐ機能は障害物を生成するスクリプトと同じ機能で生成していきます。ポイント用のプレハブを作成してタグをPointに設定します。プレイヤーが接触した時にタグを確認してポイントのオブジェクトを破壊してスコアを更新します。

  • エンドレスのゲームプレイのタイムを測る、こちらはシンプルにTime.timeを使って秒数をIntに変換して更新していきます。

  • UIの表示はTextMesh Proを使っていきます。こちらの方がはっきり表示されるので万能です。デフォルトでは日本語の表示がないのでGoogle Fontsから好きなフォントをダウンロードしてTextMesh Proで対応できるようにFontを生成します。ドットのフォントが好きなのでそちらで進めていきます。

  • タイムによってスピードを加速して難易度を上げていく、こちらはStageというクラスを作成してSerializableを追加して画面上で時間の経過で難易度を設定しやすくします。

NextStage:タイムがその値を超えると反映される
PlayerSpeed:プレイヤーのスピードを加速
ObstacleSpeed:障害物の生成のDelayの短縮

上記を追加してみました。下記でV0.2でデプロイしているのでぜひ触ってみてください




次はデザインでも変えていこうかな。

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!

2023年9月6日水曜日

エンドレスランナー「ギルガメランナー」の開発日記#1


 



おはこんばんちわ!ギルガメです!

引越しが落ち着いたので久々にゲームを開発していきたいと思います。

かなりのブランクがあるので簡単なエンドレスランナーのゲームを作っていきます。

できるだけコードも忘れないように記入していきたいので、もしこうした方がいいなどありましたら指摘していただけると幸いです!


今期は下記を目標に作っていきます。

簡単に遊べるエンドレスランナーの基礎の基礎を作っていきます。


まずやったこと:

  • Unityの更新 2022.3.8f1(かなり古かったので久々に更新)
  • プロジェクトの作成(モバイル用にリリース目標なので3Dモバイルで作成)
  • キャラクターの作成(PlayerController.cs)
  • 地面の作成(PlaneFollow.cs)
  • 障害物の作成(Obstacle.cs)
  • 障害物の自動生成(ObstacleSpawner.cs)
  • カメラの設定(CameraFollow.cs)
  • 障害物に直撃した場合はゲームをリセット(GameManager.cs)


次に各コードを載せていきます。まだシンプルなので細かい調整はないです。


ここからやってみたことを細かく説明していきます。
  • キャラクターの作成ではキャラクターが3方向のみ(左、中央、右)に移動できるように制御、またスムーズに動くようにLerpを使って移動できるようにしています。キャラクターが障害物に当たっ時の処理も一緒に含めています。
  • 地面の作成はキャラクターと一緒に移動するようにしています。エンドレスなので地面を固定のフィールドを作るのは大変なのでシンプルに地面もキャラクターと一緒に移動するようにしてエンドレスっぽく見せています。
  • 障害物の作成では障害物用のタグを作成してプレイヤーが避けてプレイヤーの後ろをある程度離れたら削除するように処理を入れています。
  • 障害物の自動生成はランダムのDelayタイムを設定して障害物を延々と生成するように作りました。本当にシンプルです笑
  • 障害物に直撃した場合はゲームをリセットはシンプルにゲーム全体の処理をここに入れていきます。今のところはプレイヤーが障害物に当たった場合にリセットする処理が含まれています。

上記だけで一応は遊べるぐらいのシンプルなエンドレスランナーっぽいゲームになります。ここから細かくオリジナリティを加えていければと思います。


日記のバージョン毎にWebGLで遊べるようにしていきたいのでぜひ触ってみてください!

Version 0.1




次はちょっと雰囲気でも変えていこうかな。。

最後まで読んでいただきありがとうございます!
これからもギルガメを応援していただけるよ嬉しいです!

2023年6月1日木曜日

React NativeとExpoの魅力とアプリの開発


React Nativeは、Facebookが作成したオープンソースのモバイルアプリケーションフレームワークであり、JavaScriptでAndroidとiOSアプリを作ることができます。Expoは、React Nativeのビルドや開発を支援するサービスであり、簡単に開発環境が構築できます[1][2][3].


Expoは、クロスプラットフォーム(iOS/Android/Web)でReact Nativeアプリを開発するための便利機能を集めたプラットフォームであり、素のReact Nativeプロジェクトと比較して若干の制約があるが、Expo SDKが提供する様々な機能を使えたり、開発環境の整備が簡単というメリットがあります[1].


Expoを使用すると、実機、iOS、Android両シミュレータをローカルで立ち上げてコードを編集保存したら即時反映させることができます。また、Expoアプリをインストールすることで、自分で作成したコードを実機で確認することもできます[3].


React NativeとExpoを使用してアプリを開発するには、以下の手順が必要です[1][2][3]:


1. Node.jsとnpmのインストール

2. Expo CLIのインストール

3. Expoアカウントの作成

4. 開発環境のインストール(Xcode、Android Studio、JDKなど)

5. Expoプロジェクトの作成


以上の手順を実行することで、React NativeとExpoを使用したアプリの開発環境を構築することができます。


React NativeとExpoを使用してアプリを開発することで、ネイティブアプリと同じようなユーザーエクスペリエンスを提供することができます。また、React Nativeは、Web開発で用いられるReactをもとに開発されているため、Webエンジニアでも学習コストが低いと言われています[4].


以上のように、React NativeとExpoを使用することで、簡単にクロスプラットフォームのアプリを開発することができます。


[1] https://zenn.dev/username/articles/2021-12-25-9b543d55e9ff81afff09

[2] https://rocksystem6611.hatenablog.com/entry/reactnative01

[3] https://zenn.dev/yuyaamano23/articles/dad35355a30036

[4] https://cloud.tencent.com/developer/article/1667243


React NativeとExpoを使ったアプリ開発


React Nativeは、JavaScriptのReactライブラリを利用してiOSやAndroid向けのアプリを開発することができるクロスプラットフォームのモバイルアプリケーションフレームワークです。React NativeにExpoをプラスすることで、初めてのモバイルアプリ開発にもおすすめできます。ExpoはReact Nativeを使ったアプリ開発をシンプルにしてくれるツールセットで、アプリ開発初心者にとってはデメリットよりもメリットの方が大きいとされています[1]。


React NativeとExpoを使って、以下のようなアプリを開発することができます。


- ソーシャルネットワークアプリ

- オンラインストアアプリ

- メディアアプリ

- ゲームアプリ

- ツールアプリ


React Nativeは、Reactの主な機能をReact Nativeでも同じように扱うことができます。使用言語は当然JavaScript(またはTypeScript)なので、Reactを使ったWebアプリ制作経験者であれば、学習コストは限りなく低く抑えられると思います[1].


Expoを使うことで、React Nativeアプリの開発がより簡単になります。Expoは、React Nativeアプリのビルドや開発を支援してくれるサービスで、オンラインまたはLinux、Mac、Windowsアプリとして使用することができます[2].


React NativeとExpoを使ったアプリ開発には、Node.jsの最新版が必要です。また、モバイルアプリをシミュレートするためのデバイス(スマホやタブレット等)を持っていることが前提条件となります[1].


以上のように、React NativeとExpoを使って、様々な種類のモバイルアプリを開発することができます。初めてのモバイルアプリ開発には、React NativeにExpoをプラスすることで、開発を始めるためのハードルをかなり下げることができるため、おすすめです[1]. 


参考文献

- [1] [React Native(+Expo)でモバイルアプリの開発環境を構築しよう! - Webで遊ぼ!](https://web-de-asobo.net/react-native-expo/)

- [3] [React Native Expoを利用したモバイルアプリの開発基礎 入門編 - アールエフェクト](https://reffect.co.jp/react-native/react-native-expo)

- [4] [ゼロから始める React Native + Expo 入門 - Zenn](https://zenn.dev/akira_kido/articles/9e4e8a2f6d7a9a)

- [2] [Expoでアプリを作る 【これからはじめるReact Native】 - bagelee(ベーグリー)](https://bagelee.com/programming/react-native/expo/)

2023年5月24日水曜日

Next.js 13 における最適なプラクティスとユーザーフレンドリーなライブラリの紹介


• イントロダクション 

• Next.js 13 における最適なプラクティス 

• ユーザーフレンドリーなライブラリの紹介 

• パフォーマンスチューニング 

• サンプルプロジェクトの紹介 

• 結論


イントロダクション


Next.jsは、Reactアプリケーション用のフレームワークで、サーバーサイドレンダリング、静的サイト生成、APIルート機能を提供します。Next.js 13は、Next.jsフレームワークの最新バージョンであり、Webアプリケーションをよりパフォーマンス向上させる様々な最適化機能を提供します。 

 このブログの目的は、Next.js 13の最適なプラクティスとユーザーフレンドリーなライブラリを紹介することです。読者は、サイトの最適化やパフォーマンス向上のための有用な情報を得ることができます。 React開発者にとって、Next.jsは非常に使いやすく、簡単なアプリケーションから大規模なプロジェクトまで柔軟に対応できます。Next.js 13の新しい機能には、ビルドタイムの最適化、ユーザーエクスペリエンスの改善、SEOの向上などがあります。


Next.js 13 における最適なプラクティス


イントロダクション Next.jsはReactベースのオープンソースWebアプリケーションフレームワークです。Next.js 13は、優れたユーザーエクスペリエンスを提供するためにいくつかの最適化が施されています。 このブログの目的は、Next.js 13の最適なプラクティスとユーザーフレンドリーなライブラリの紹介です。 

 Next.js 13 における最適なプラクティス Next.js 13では、静的アセットの最適化、キャッシュの最適化、サーバーサイドレンダリングの最適化が重要です。 静的アセットの最適化は、サイトの読み込み時間を短縮し、ユーザーエクスペリエンスを向上するために必要です。 Next.js 13では、Image Componentが導入され、画像の最適化が容易になりました。このComponentは、クライアントとサーバーの両方で最適な画像を自動的に選択し、表示します。 キャッシュの最適化は、サイトのパフォーマンスを向上させるために必要です。

Next.js 13では、ブラウザのキャッシュを有効にし、サイトのレスポンス時間を短縮することができます。 サーバーサイドレンダリングの最適化は、SEO最適化のために不可欠です。 Next.js 13では、ISR(Incremental Static Regeneration)が可能になり、ページの更新が柔軟になりました。これにより、検索エンジンでのサイトのランキングが改善されます。 ユーザーフレンドリーなライブラリの紹介 Next.js 13では、SWR、React Query、Framer Motionなどのユーザーフレンドリーなライブラリが導入されています。これらのライブラリは、高度なユーザーエクスペリエンスの実現に役立ちます。 SWRは、APIのフェッチングを容易にし、キャッシュと自動更新機能を提供します。React Queryは、クエリのキャッシュと並列フェッチをサポートしています。Framer Motionは、アニメーション効果を容易に追加することができ、サイトの魅力度を上げます。 パフォーマンスチューニング ビルド時間の最適化、ユーザー体験の最適化、SEOの最適化が重要です。 ビルド時間の最適化には、Vercel上でのビルド時間の短縮が役立ちます。ユーザー体験の最適化には、サイトの読み込み時間の短縮が重要です。データの最小化や、最適な画像の使用が有効です。 SEOの最適化には、重要な要素として、titleタグ、metaデータ、OG tagsがあります。これらのタグを使い、各頁ごとに適切な設定を行うことが必要です。 

 サンプルプロジェクトの紹介 Next.js 13では、シンプルなサンプルプロジェクトが用意されています。これを活用して、ローカル開発環境の構築、コンポーネントの実装方法、プロダクション環境へのデプロイ方法を学ぶことができます。 結論 Next.js 13は、高度なユーザーエクスペリエンスを提供するための最適なフレームワークです。このブログで紹介した最適なプラクティスやユーザーフレンドリーなライブラリを活用し、高性能のWebアプリケーションを開発してみてはいかがでしょうか。


ユーザーフレンドリーなライブラリの紹介


Next.js 13における最適なプラクティスとユーザーフレンドリーなライブラリの紹介の一環として、機能的で使いやすいライブラリの紹介を行います。

今回は SWR、React Query、Framer Motion に焦点を当ててみます。 

 SWRは、データのフェッチングとキャッシュ管理のための簡単な React Hooks ライブラリです。サーバーサイドレンダリング (SSR) に最適化されているため、非同期データのフェッチやキャッシュに問題が発生しないことが保証されます。なお、このライブラリにはTypeScriptサポートがあります。 

 React Query は、高速な UI レスポンスと優れたキャッシュ機能を提供するフルフィーチャーのライブラリです。このライブラリはデータの同期管理を行うための「クエリ」という概念に基づいています。また、このライブラリにはReact Nativeでも利用できるアダプターがあります。 

 Framer Motion は、シンプルな API と直感的なコンポーネントを使用して、アニメーションを簡単に作成できます。100を超えるプリセットをリリースしており、Reactとの互換性にも優れています。さらに、Framer MotionにはTypeScriptサポートがあります。 これらのライブラリは、Next.js 13で最適なパフォーマンスを発揮するように設計されており、手軽かつ効果的に使用することができます。ぜひ、プロジェクトに取り入れてみてください。


パフォーマンスチューニング


Next.js 13 における最適なプラクティスとユーザーフレンドリーなライブラリの紹介 イントロダクション Next.jsはReactフレームワークであり、Reactアプリケーションを構築するためのフルスタックソリューションです。

Next.js 13では、パフォーマンス、開発ツール、ユーザー体験に改良が入っています。このブログでは、Next.js 13の新機能と最適な開発プラクティス、ユーザーフレンドリーなライブラリ、サンプルプロジェクトの紹介を行います。  パフォーマンスチューニング ビルド時間の最適化、ユーザー体験の最適化、SEOの最適化に取り組みましょう。 ビルド時間の最適化 Next.js 13では、プリコンパイル処理があり、APIルートのコンパイル時間が短縮されます。また、プラグインやフレームワークを構成する際に、必要なライブラリのみをインストールするようにして、無駄なパッケージの読み込みを防止しましょう。 

 ユーザー体験の最適化 Next.js 13では、新しい画像コンポーネント(Image)を導入し、画像の自動最適化を行えるようになりました。 また、PrefetchやLazy Loadingを使って、ページリロードの必要性を下げ、スムーズなサイト体験を提供しましょう。 SEOの最適化 Next.js 13では、SEOのための機能を強化することができます。 サイトマップ自動生成ツールによって、情報を追加しなくても、新しいページが自動登録されます。 

さらに、Next.js 13は、ページ内のリンク先ページの内容も読み込み、SEOのポイントを解析します。 以上のエンハンスメントを活用することで、より高速でユーザーフレンドリーなサイトを構築できます。 ユーザーフレンドリーなライブラリの紹介 Next.js 13は、デフォルトでReactをベースに構築されていますが、よりユーザーフレンドリーなライブラリを使用することで、開発時間の短縮、開発効率の向上が見込めます。 以下に、いくつかのライブラリを紹介します。 SWR データのFetchやキャッシュの制御を簡素化してくれるライブラリです。リアルタイムでキャッシュの内容を更新することで、パフォーマンスを改善します。 React Query Reactアプリケーションでよく使用されるライブラリで、APIリクエストを管理するためのいくつかの問題を解決してくれます。キャッシング、再試行、オンライン/オフライン変換、並列リクエスト、アップロードなどの機能を提供しています。 Framer Motion アニメーション用のライブラリで、ユーザビリティの向上、より美しいアニメーションのインパクトを与えるために利用することができます。 

 まとめ Next.js 13では、新しい機能と最適な開発プラクティスが多く導入されました。上記の内容を理解し、利用することで、より優れたパフォーマンスのサイトを開発することができます。是非チャレンジしてみてください。


サンプルプロジェクトの紹介


サンプルプロジェクトの紹介: では、ここで実際のプロジェクトを紹介します。このプロジェクトはNext.js 13を使って作成されていて、ローカル開発環境からプロダクション環境へのデプロイまで一連のステップを模範的に実践しています。 ローカル開発環境の構築には、お気に入りのエディターとターミナルを使用して、プロジェクトをクローンしてnpm installを実行し、開発サーバーを起動するだけです!

開発サーバーはHMR(ホットモジュールリプレースメント)をサポートしており、開発を快適に行うことができます。 コンポーネントの実装方法は、Next.jsのパワフルな機能を最大限に活用しています。たとえば、自動的に生成されたページルーティングを使用して、必要なページコンポーネントを追加するだけでページを作成することができます。

また、APIルートを使用して独自のAPIエンドポイントを作成することもできます。さらに、ビルトインCSSサポートにより、CSSモジュールまたはCSS-in-JSを使用してスタイリングを完了することができます。 プロダクション環境へのデプロイには、Vercelによるデプロイメントを使用しています。

Vercelには、GitHubやBitbucketなどのバージョン管理システムと簡単に統合できる他、プラットフォームに特化した最適化が実装されています。たとえば、自動的に生成されたPWAマニフェストやnext/imageコンポーネントなどがあります。また、デプロイ時に自動的に生成されるファイルごとにCDNを使用して最適化された静的アセット最適化もあります。

 このプロジェクトの完全なコードは、GitHubリポジトリで公開されています。ぜひチェックしてみてください! 以上が、Next.js 13における最適なプラクティスとユーザーフレンドリーなライブラリの紹介のサンプルプロジェクトの実装方法です。


結論


Next.js 13は、Web開発をより簡単かつパワフルにします。 最適なプラクティスを使用することで、静的アセットやキャッシュの最適化、サーバーサイドレンダリングを行うことができます。 

さらに、SWR、React Query、Framer Motionなどのユーザーフレンドリーなライブラリがあります。 ビルド時間の最適化、ユーザー体験の最適化、SEOの最適化にも注力しました。 最後に、ローカル開発環境の構築、コンポーネントの実装方法、プロダクション環境へのデプロイ方法を紹介するサンプルプロジェクトがあります。 

全体的に、Next.js 13は、Web開発をより効率的かつスムーズにします。