やまだの「死ぬまでにゲームをつくりたい!!」 -55ページ目

いまさらCMS (コンテンツ・マネジメント・システム)

Contents Management System:コンテンツ・マネジメント・システム

をいまさら再考してみる。以後、CMSとする。

 

CMSは、Wikipediaのコンテンツ管理システムを見るのが一番だが、

自分の理解としては、コンテンツを管理して、テンプレートによって表示切替をするようなイメージ。

コンテンツとは画像や記事、テンプレートは見せ方を決めるレイアウトとかCSSとか。

 

この度、なぜCMSを再考したかというと、

きっかけの1がWordPress、きっかけの2がQuizKnock。

そして、自分のコンテンツ管理とは。

 

きっかけ1.WordPress

職場で設置してみたが、意味を見いだせず使わなくなってしまった。

活動のまとめとして、紹介するトピックがないからかもしれない。

ちなみにpukiwikiは無茶苦茶使ってる。メモ帳。

使わない・使いたくない理由として、以下の気持ち。

  1. プラグインでレイアウトが決められるが、やりたいことができない
  2. アップデートを頻繁にさせられる印象で、更新後のエラー解決が大変そうで敬遠
  3. このぐらいなら自分でできそう

3ができるから、細かいところに手が届かない1がイライラするし、2のような無駄な作業に辟易する。なんだろう。

DBからHTML表示するのはすでにいろいろしている、仕組みができてれば正直「秒」でできる。

データをHTML表示して、グラフにしたり。

この時に一番苦労するのはデザイン。無機質なものはすぐできる。

おしゃれなサイトのカラーマップを参考にしたり、レイアウトを考えたリーは確かに大変。

逆に言うと、そういうレイアウトサンプルHTMLやCSSのほうがありがたいわけです。

で、WordPressってCMSなんですって。BLOG作成くらいに思ってた。

たしかに、写真一覧とかある。

 

きっかけ2.QuizKnock

YouTubeで見る動画はほぼQuizKnock。いろいろ好きです。

「編集長」「ライター」「記事」という言葉をよく聞く。

コンテンツとして、クイズの記事が大事って考えているんだと推測した。

素材としてのクイズという種=コンテンツがあれば、

動画にしたり、本にしたりとアウトプットスタイルを切り替えできるだろう。

コンテンツとして知的好奇心をくすぐる何かをたくさんためているので、

バリエーション豊かな動画や商品が出せると思った。

ほかの動画のテンプレートをつかったりとかすぐ応用できるだろうと思った。

コンテンツ軸がしっかりしているのが強みだろうと。関心しきり。

 

さいごに自分のコンテンツ管理として、

いまはなんかこう残骸というか、やってみた系のものが転がっている。

無料ホームページに乱立している統一感のないコンテンツ、

ツイッターのメモ、このBLOGの記事の書きっぱなし感。。。YouTubeも何個か。

アウトプットとしてはいいんだけど、

コンテンツとして抽出して再利用可能な形にして管理したいなあーと、

おお、それってCMSじゃん。って思った。

 

BLOGはともかく、ゲーム作るにコンテンツがそろっていれば早いのかなとか思ってきた。

いつもゲーム作るときに、絵とかを集める作業が発生する。

もちろん、良質なコンテンツがあることが大事だが。。あとはライセンスも併せて管理しないといけない。

なぞなぞとかコンテンツで持って入れば、回答入力して正解・残念なんてサイトはできそう。

統一したキャラ絵があれば、シューティングとかできるかもしれない。

そういうの意識して、コンテンツが増える仕掛けを真面目に考えていきたい。

展示するだけでもいいし、使いたいときに使えればいいし、何かひらめくかもしれない。

一度作成したものを管理することで、再利用できるように、を達成したいと思った。

 

 

PC環境更新:家の中でWEBサーバ

2019年にXAMPPをインストールして、

スマホからアクセスするが全然できてなかった。

今日やっとできました(TへT)

(お仕事だとバリバリWEBサービス用意して提供してるってのに。。。)

背景

サーバからデータを取得して、表示するようなゲームをそろそろ考えよう。

タブレット二つから、自分の画面だけ見えるようなもの。

まずはチャットみたいなものを作ろうかな。

そうすると、ポーリングじゃきつい、ブロッキングしてイベント駆動するようなプログラミングってどうかな。。。

 

最初は PERLの4引数 SELECTを紹介され、使い方が難しく、っていうか所望のものかどうかもわからない。

つぎには IO:Selectを紹介され、結局ブロッキングなら flock かなと。

でも、結局、更新中にロック状態を維持するのが難しい。

どう頑張ってもポーリングになりそう。

少なくともレンタルサーバに負担かけられないな。。。

 

じゃあ、サーバ立てるか。つうか、やりかけたXAMPPを何とかするか。

XAMPP

古いって言われるかもだけど、まあWindowsでApache動かそうと思ったらこれでいいかなあ。
httpd.conf で、サーバルートがわからなかったので苦戦した。
以下に設定していた。。。

DocumentRoot "D:\webSrv\htdocs"

あとは、CGIが動かなくて、PERLの設定パスを変更した。

#!/usr/local/bin/perl のままだった。2年前の俺。。。

#!D:\XAMPP\perl\bin\perl.exe にした。環境変数もいちお通した。

とりCGIが動いたことを確認。ついでにサービスに登録しておいた。

ログインせずともサービスできれば最高。

ルーターの設定・PCのIP固定化

苦戦した。苦戦したのは設定のせいじゃなかったようだが。。。
うちのルータは、IOデータ WNPR1167F / WNPR1750G / WNPR2600G系のルータ、
LAN設定から「DHCP」でIPアドレスの固定化を実施。ipconfigなどからMACアドレスさえわかれば。
詳細設定から「ポート開放」を設定した。
PCのIP固定化について、検索してIPV4のプロパティから行けた。
やれることはやったつもりだが、つながらない!!!

Windows ファイアウォール

検索すれば出てくる。
まずはファイアーウォールをOFFにとにかくしたが駄目だった。
パブリックもプライベートネットワークもとりあえずOFF
関係ないと思うけど、ファイアウォールの例外にアプリケーションを追加 しておいた。
それでもだめだ。なんでだ!?

結論

できた。よくわからないが、最初、フォルダの下がiPhoneでは見えなかった。
フォルダを指さずに先ほど動いたCGIのパスを手動で入れた。そうしたらなんと動いた。
 

なんだろう、最初にtest.htmlを用意して、そこに対するアクセスで試験していれば、
PCやサーバ設定だけに注力できた気がする。
いろんなちょっとしたことがずれて達成できなかったんだなと動いてから理解した。
やっぱり環境系は大変。というのと、丁寧に解決していけばうまくいくんだなとも。
 
これで、PCをサーバにタブレットから表示できるようになった。
これで誰かに迷惑かけることを気にせず、めっちゃポーリング実装でいい。
まあ、最終的には、C言語でWEBサーバも作れますので、
メモリ保持したりSENDタイミングずらしたりはお手の物です。

 
 

XENOを改造するなら

もし既出ならすみません


・6の事故対策

・捨て方の工夫

・既存の札かどうかわかる仕組み


まず、6の事故対策

1枚目の6は対面だけにする、というローカルルールがあるらしい。決着早すぎを避けるには良いと思う。

バレる事がそこそこ嫌な状況だし。でも、相手が2を手に入れたら負ける。単純に出す側が不利かもしれない。ので、相変わらず出しにくいカードに。


捨て方の工夫はありそう。

7を出した時は、麻雀のリーチみたいに横にする。

そうすれば賢者忘れしにくいのでは。効果使ったら元に戻す。

でも、覚えておかないといけない、という神経擦り減りの意味があるなら、この案はナシ。あくまで初心者向けとか忘れ防止を重視して。

まーこれは、自分の持ち札を机に横置きにするとかでセルフで忘れ防止をしても良いかもしれない。


1や5によって強制的に捨てさせられたときは、逆向きにすてるとか。あとで捨て札から理解できる。ただ、逆向きにすると、数字が見えないハズ。また、神経擦り減りの意味では自分で頑張って覚えておくべきなのかも。


最後に、残した札が既存か新規かわかる方が

駆け引き要素大きいのではないか。

札を引いた時に、入れ替えるかどうかを決めるようにするというのは。考えるのは5だが、ランダム捨てが大事ならサイコロでも良い。非公開さえ守れてればよいなら、既存か新規札かわかった上で選べても良い。

これにより、あの札長く入れ替わらないな、と考えることができる。それを嫌がって入れ替えるのか、10を疑うのか、いろいろ詮索できる情報になると思う。

大きくゲームの特性が変わりそう。


あとは、転生札に対してもカード使って良いとか

3で見たり、8で仕込んだり。辺りですが。

5でランダム入れ替えたり??1や9で公開処刑できたり??

まあ、不明なカードがあることが結構大事な気がするから、ゲームとしては盛り下がる気がする。


以上。ちょっとした事を思ったので書いてみた。

最後の既存かどうかの案はすでに誰か言ってないかなあ?


XENOというゲーム

本来は丁寧に説明すべきだが

【ゲーム紹介】『XENO(ゼノ)』手札がたった1枚の心理戦ゲーム中田敦彦さんがリメイクした心理戦カードゲーム『XENO(ゼノ)』のルール&レビューを徹底紹介します。XENOは、オリラジのあっちゃんが名作カードゲーム『ラブレター』をアレンジした作品です。通常版のほかに「豪華版」もあります。リンクboku-boardgame.net


10種のカードがあり、一枚持っている状態で、一枚引き、一枚出す。出すカードにより効果が異なる。

1. 何も起きない、2枚目は公開処刑
※ 公開処刑、名前は凄いけど、相手は一枚引き2枚にし、オープンして捨てる方/残す方を選ぶ
2. 相手のカードを言い当てたら勝ち☆
3.相手のカードを見る
4.相手のカードの効果を受けない
5.相手を2枚にして、みえない状態で選択して捨てる
6. 決戦をする☆★
7.次のターン、山から3枚引き、選べる
8.相手と交換する★
9.公開処刑、相手が10所持してれば勝ち☆
10.出せない。交換可能、9に殺される★

☆は、状況によりゲームの勝敗がつくカード。
★が、出しにくいカード。

動画見ました。DaiGo戦、ヒカル戦、伊沢戦、堀江戦、GACKT戦。ああいう感じだと面白いだろう。
脳死でやるとつまらないゲームかもしれない。
カードや所作にいちいちなにかある、と思うことと、所持カードを大事にする気持ちが、ゲームを楽しむコツだろう。

やったことない。多分、考えるのが一番楽しそう。
とりあえず2人の時で考える。

ゲーム的には以下かなあ。
・手札をだいじにしない。
・★のカードは出しにくい。
・カードバレは負けに近い。

まず、手札をだいじにしない。
というか、結構手札が入れ替わるので、カード保持が困難。
1や9の公開処刑、5の疫病→非公開処刑かも、8の交換。
3で見られると捨てたくなる。後述。
6は終わりだし、2も少しバレる。
4か7以外は安寧の時がない。
手札をだいじにすると思い通りいかないのが楽しいかもしれないが、考え方を変えると冷めるかもしれない。

★が出しにくいについて
手札は大事にしないが、カードコントロールできない状況がある。
6は使うと決着、相手の札次第。勝てるのわかってたら使うけど、大概そうじゃないから。6/10なら勝ち確、6/9なら相手が10かどうかで考える、状況によるが序盤なら6出し。6/8は、8出して弱いの持たせられたら、2で刺されたらと思うと8は出せない。8が大きいのもあり、6でやすいかな。あとは、6を出さないだろう。いや、怖くて出せない。
8を持ってる時。8/10なら出すしかない。8/6は先述。
8/9なら9を出す、8/5、8/1も8は出さないかな。
8を出すと良い時は、相手名札がわかってる時か?少なくとも8/2で8は出してはいけない。
10は捨てられないというのがなかなかキツそう。6引けば勝ちではあるが、1や2や5で失う事はあるし、9出されたら負ける。8では交換されるし。。

カードバレについて
3などでバレる。8でもバレる。2で少しバレる。7で状況よりバレる。
バレていれば、2で刺される、6で決着、最後8で交換される。
10持ってるのがわかってる場合、2で刺した方が良いか?
9以外は倒せないから、9引く算段があるか最後8で交換できるかなら残しても良いかもしれないが。刺しとけば良さそう。10のない世界、8が大体強い世界。

基本的には、

1.5.9あたりに捨てさせられて、8で交換でとられて、
3使われて捨てさせられる。
カードコントロールできる道は多くない。むしろ妨害が多い。
運良く4や7が来ると、計画は進みやすい。女性の絵、というのも設計なのか?荒れにくいカード。

1や2が強烈なのは設計としては好き。でも早いうちに捨てられがちかな。2を持っていて辛いのは6出される時だけなのだが。1や5で無駄にさせられるなら使ってしまえなのかもしれない。

公開処刑、名前は厳ついけど、結局カード保持が難しいからサクサク使って良いと思う。10持っていそうだなーが理想だけど、10持たれるのが嫌なら2や8を使えば良いと思う。

最後どういう形にまとまるか、をイメージして、勝つ方に乗れるように振る舞えると良いとか。そう思う。

6の事故は諦めもつくでしょうか。
相手が4を出したら6出しやすい、8も出しやすい。
自分なら手元が5/8とかでも、この状況なら8切りたいかな。序盤なら。

8は、GACKT戦がとても参考になるかなと。
相手が8持ってるなら、自分は弱いのを持つ。
6が怖いけど。

まあ、色々書きましたが、
結局、人狼より手軽に面白い気がします。
大人数が不要で会話である程度駆け引きが起きそう。
ホントは分析して冷めた見方をすれば、つまらなくなるかもと思いましたが、やってないのでなんとも。
街コロが悟ってつまらなくなったので、なんかこーゲームを理解していく時が一番楽しいと思ってます。
まとまらずにとりあえず書きました。書く側は、楽しい(^◇^;)

人狼より手軽で会話できる点で十分価値がある。




オセロ 1時間半300行→3時間400行

オセロ
再帰ができればすぐです(^^)

1.コントローラで内部情報をマスに丸める
2.マスの状態を定義
 ・なにもおいてない → 0
 ・赤 → 1
 ・緑 → 2
3.おいたときにひっくりかえせるかどうかの処理を再起で組む★
 再起関数名(自分(1か2)、ターゲットのxy、動く方向)
 ・第1引数:赤なら1、緑なら2
 ・第2,3引数:(3,3)とか、(-1、0)とか渡しても良い、
   再起の入力パラメータチェックではじく
 ・第4,5引数:右に見ていくなら、(1,0)、上に見るなら(0、-1)みたいな
 再起処理ざっくり
再起関数名(a1,a2,a3,a4,a5)
 ・入力が0-7か?
 ・自分なら return 1
 ・相手じゃないなら return 0
 ・rtn = 再起関数名(a1,a2+a4,a3+a5,a4,a5)
もし rtn=1ならひっくり返る。rtn++
上に返すので、return rtn
→ 受け取ったときに、rtn > 1 なら、何かひっくりかえせた!と判断する。
→ ひっくりかえせたら、そこに自分を置いて、相手に交代。




応用としておける場所を明示するバージョン
2+.マスの状態を定義
 ・おける場所 → 3
3+.ひっくりかえせるかどうかの処理を拡張
 先ほどの再起処理に対して、ひっくりかえさないモードを作る



※ 失敗したところは、3のマスをリセットして0にするのに、
㎜[i][j] == 0 とか。。。 代入を「==」で書いてるのに気が付かずに30分以上・・・

※ 動画の作成能力の向上が必要だな、、、どうしたらいいのだろう。
  アドレスバーを掲載したくないので、全画面(F11)状態で、
  いつもの「Windows+G」。精進しないと(’へ’)

※ 再起処理を語りたい(’へ’)みんな好きよねー