ゲームデータについて(9)ジェネリックの利用

これまで紹介したサンプルプログラムは固定データ・可変データを1種類ずつしか持っていませんが、大抵のゲームでは多数用意することになると思います。 今のままでは各クラス間で重複するコードが多く、データの種類が追加される度にこれらを全て書く必要が…

ゲームデータについて(8)テキストデータの差し替え処理のつづき

前記事のサンプルコードについて簡単に解説し、使用例も紹介します。 差し替えタイプとタグの定義 // 差し替えタイプ. private enum REPLACE_TYPE { NUMBER = 0, // 数値. STRING, // 文字列. MONSTER, // モンスター名. NUM }; // 差し替えタグ. private st…

ゲームデータについて(7)テキストデータの差し替え処理

本記事ではこちらの記事で軽く触れた、テキストデータの一部をゲームの状況に応じて特定の文字列に差し替える処理の実装について説明します。 文字列の差し替え処理の実装 テキストデータにタグを埋め込んで、タグの種類に応じた文字列を差し替える処理を実…

ゲームデータについて(6)テキストデータのつづき

前記事からの続きです。 ラベルのコンバータを作成 textData.xlsmのB列に記載されたラベル定義をソースコードとして出力するコンバータを作成します。 他のコンバータと同様にUnity Editor上に作りたいところですが、出力されるファイルはプロジェクトの一部…

ゲームデータについて(5)テキストデータ

本記事ではテキストデータについて説明します。 システムメッセージデータとモンスターの名前データを作成するケースを例にとります。 テキストデータの外部ファイル化 テキストデータも固定データと同様に外部ファイル化します。 Assets/EditorにTextDataと…

ゲームデータについて(4)可変データ

本記事では可変データの初期化・セーブロード処理について説明をします。 可変データクラスの実装 味方キャラクターのデータを作るケースを例とします。 Assets/GameData/にVariableDataというディレクトリを作成し、Assets/GameData/VariableData/にCharact…

ゲームデータについて(3)固定データのつづき

前記事の続きです。 本記事では作りかけのコンバータの修正とゲームデータ管理クラスの作成をしてきます。 コンバータの修正 前記事で作成したAssets/Editor/FixedDataConverter.csを開いて以下のように修正します。 using UnityEngine; using UnityEngine.A…

ゲームデータについて(2)固定データ

本記事(と次記事)ではゲームデータの一種である固定データについて、編集・コンバート・ロードする方法をUnity(C#)のサンプルコードを交えて簡単に説明します。 固定データの外部ファイル化 固定データを外部ファイル化し、必要な時(例えばタイトル画面から…

ゲームデータについて(1)概要

ゲームが参照するデータの実装について 例えばあなたがRPGを作りたいとして、手始めに敵モンスターのデータを実装したいとします。 最もシンプルな実装方法として思い浮かぶのは、以下のようにソースに直接定義してしまう方法でしょうか。 public struct Mon…

Webアプリ習作#14

デバッガの構築 XdebugとVS Codeを利用してブレークポイントでの停止やステップ実行をできるようにする Xdebugのインストール phpinfoを出力する プロジェクトディレクトリで以下コマンドを実行 php -i もしくは適当な画面に以下を記述してその画面にアクセ…

Webアプリ習作#13

TwitterのアクセストークンをDBに保存 前記事の問題はTwitterのアクセストークンをDBに保存することで対応することに social_userテーブルに格納する social_usersテーブルの拡張 php artisan make:migration add_token_columns_to_social_users --table soc…

Webアプリ習作#12

ツイート一覧画面からのログイン index.blade.phpにTwitterログインへのリンク(twitter.login)を追加する ルーティング routes/web.phpを修正 Route::prefix('auth')->group(function () { Route::get('twitter', 'TwitterAuthController@login')->name('twi…

Webアプリ習作#11

ツイート一覧画面の作成 DBに格納されているツイートを一覧で表示できるようにする ルーティングの追加 routes/web.phpを編集 // ここからを削除. //Route::get('/', function () { // return view('test'); //}); // ここまでを削除. Route::get('/', 'Twee…

Webアプリ習作#10

Tweetをデータとして管理する アプリを介したツイートをアプリ側でも見れるようにしたいのでツイートの情報をDBのデータとして管理する仕組みを作成 tweetsテーブルの作成 プロジェクトディレクトリにて以下を実行 php artisan make:migration create_tweets…

Webアプリ習作#9

ツイート機能の仮実装について Laravelの枠組みで動かす前にまずは簡易的な仮実装で動作を確認する abraham/twitteroauthのインストール TwitterのAPIを操作できるライブラリ プロジェクトディレクトリにて以下を実行 composer require abraham/twitteroauth…

オンラインサロンに参加してみた

知見を広めるためにはもっと人とつながる機会を増やさないとと思っていましたが、新型コロナが一向に収束しない状況で勉強会などに参加することに二の足を踏んでいた中でオンラインサロンに思い当たり、試してみることにしました。 みんサロでプログラマ・エ…

キャラクターの命令実行処理について(2)

複数のステート間の移行 前記事ではユニットに与えられた命令を処理するために、複数のステートを適宜切り替える必要があることを説明しました。 この一連のステート間の移行をどう管理すべきでしょうか? キュー(FIFO)で管理する 命令を入力したときに必要…

キャラクターの命令実行処理について(1)

キャラクターに与えられた命令を実行させるには ゲーム内のキャラクターに何らかの行動をさせるために必要な処理はゲームジャンルによって大きく異なります。 アクションゲームであればプレイヤーの入力に応じた動作を即時反映させるだけなのでシンプルです…

Webアプリ習作#8

前記事に引き続き主にこちらを参考にしました。 Laravel Socialiteを使ってTwitterアカウントでログイン機能 - Crieit モデルのディレクトリ構成の変更 Laravelのプロジェクト作成時にUserモデルのファイル(User.php)がapp直下に自動生成されるが、app/Model…

Webアプリ習作#7

前々記事に引き続き主にこちらを参考にしました。 Laravel Socialiteを使ってTwitterアカウントでログイン機能 - Crieit DBの方針 ユーザー情報はLaravelにデフォルトで用意されているusersテーブル(マイグレーション済み)の他にsocial_usersテーブルを新規…

Webアプリ習作#6

アプリ機能の大枠を決定 Twitter APIのElevated Access申請にあたってアプリの機能を簡単に説明する必要がある 習作目的のシンプルなものという方針から以下のように決定 自分のTwitterアカウントにログインして固定のメッセージをツイートする アプリによっ…

Webアプリ習作#5

前記事に引き続き主にこちらを参考にしました。 Laravel Socialiteを使ってTwitterアカウントでログイン機能 - Crieit ログイン処理の実装 プロジェクトディレクトリで以下を実行 php artisan make:controller TwitterAuthController \app\Http\Controllers\…

#includeについて(2)

#includeディレクティブはヘッダファイル以外にも利用することができます。 そのケースを2つほど紹介します。 .cppファイルを#includeする プロジェクト規模が大きくなり.cppファイルの数が膨大になると、リンクに非常に時間がかかったりメモリ不足を起こし…

#includeについて(1)

今回はC/C++の話です。 経験の浅いプログラマがたまにやってしまうのがヘッダファイル上でヘッダファイルを無配慮に#includeしてしまうことです。 これは恐らく#includeディレクティブへの理解が「コンパイルを通すためのおまじない」くらいで止まってしまっ…

Webアプリ習作#4

この記事を書くにあたって主にこちらを参考にしました。 Laravel Socialiteを使ってTwitterアカウントでログイン機能 - Crieit Laravel Socialiteをインストール コマンドプロンプトでプロジェクトディレクトリにて以下を実行 composer require laravel/soci…

Webアプリ習作#3

Twitter Developerのサインアップ Twitterアカウントを用意する Twitterにログインした状態でTwitter Developerにアクセス 右上のSign Upを選択 "Just a few questions to get you Essential access"という画面へ移行する What's your name?:名前を入力 Wha…

Webアプリ習作#2

PostgreSQLのセットアップ https://www.enterprisedb.com/downloads/postgres-postgresql-downloads から最新(14.2)のWindows x86-64向けをダウンロードして実行 インストールの最後に"Launch Stack Builder at exit?"と問われるでチェックを外す PHPのPostg…

Webアプリ習作#1

Larvelのバージョンの決定 https://laravelversions.com/ja こちらによると現行のLTSバージョンは6なので6とする (2月にリリースされた9が最新のLTSになる予定だったが、変更になった模様) XAMPPのインストール https://www.apachefriends.org/jp/index.html…

Webアプリ習作#0

webアプリを作ってみたいと思ったので、その作業を通して学んだこと、行き詰ったことをメモとして残していきます。 現時点で方針として決まっているのは以下のみです。 Laravelを利用する Twitterに連携させる とにかくシンプルな内容にする

サブルーチン化について(3)

プログラムがコンパイルされると関数は機械語の命令コードに変換されます。 それらは実行時にメモリ上の命令コード領域とよばれる領域に格納され、関数を実行する際は命令コードを読み取るためにそこを移動(ジャンプ)していくことになります。 命令コードは…