2018年7月31日火曜日

MMOってやりたいよね。

やっぱもうレベル製MMORPGは無理だと思うんだよなー。

だからこそ完全スキル制MMOARPGだと思うわけよ。

しかも放置要素入れちゃう。
ゲームをプレイしてない際に、例えば朝、昼、夕に何をするか設定出来る様にしちゃう。で、そこで各種スキル上げの訓練、採取等の資源集め、遠征等の経験値稼ぎもやらせちゃう。


そんでスキルは、大きく3カテゴリ。
 キャラ作成時のみに得られる特性スキル。
 ほら異世界転生時のさ?w

 プレイ時に皆覚えれる通常スキル。
 大抵のは誰でも覚えれないとキャラメイクに不公平感が出過ぎるからね。

 条件を満たしてキャラに設定したクラスの時にのみ使えるクラススキル。
 例えば剣系のスキルと一定のステータススキルがあれば剣士に成れて、剣士用のスキルが覚えれる~みたいな。

これでかなりのキャラ差が出ると思うんだよね。シナジーもてんこ盛りにしてさ。装備にもスキル付きを登場させる。

さっこんの異世界転生物はスキルがどうのと多いので受けるんじゃない?


アイテムの取引は露天にして、市場に出せばいいってのはやらない。
つまり放置時に露店やらすか、プレイ時に露店に居なきゃならなくする。
で、クエストの重要アイテム以外は課金アイテムも全部売れる事にしちゃう。


装備品は通常のは消耗して、耐久度なくなったら壊れないけど性能落とすか使用不可にする。

飲み物と食い物要素を入れる。
 飲み物はバフと永続スタミナ回復効果
 食い物はバフと永続HP回復効果
まあ飲み食いしなくてもバフが付かないってのと自動回復ねーよってだけやな。でも飲み食いすれば十分効果あるよね、これで。

そんで消耗品を多くしてゲーム内マネーを減らしていき、価値を落とさないようにする。そしたら課金アイテム売りで稼ぐのが有効になるし。


あとはフォロワーやな。黒い砂漠で作業させれる連中居るやん?
あれをスカイリム的にもっと身近なものにして、一人だけーとかにする。
プレイ時はフォロワーが代わりに裏で放置時の作業してくれるみたいな。アイテム集めだの露店の店番だの、作業を代わりにやっといてくれるわけ。

で、場合によっては一緒に連れで回ったりさ。もちろんフォロワーも成長要素あり。フォロワーのキャラメイクもあった方がいいよね。もちろん装備も自分で色々と用意してさ。


これで基本は各地にいってフィールドの敵と戦うってやって、周回したい人向けのIDダンジョン、対人、町でのハウジング、クラフト要素、だどコンテンツをちょいたしでいいよね。基本はフィールドやねん。出来れば人が分散してほしくないので、中央の土地でみんな活動し各方面に探索して帰ってくる感じが良いよね。

ゲーム内の町は一個にしちゃえばいいんだよ、中央の都市だけ。
で、都市から離れれば離れるほど敵強くして資源やら良くする。

実装増えてさすがに遠くに行くにはプレイ時間的に大変となるだろうから、そうなったら中継地点を用意してあげて、移動手段としての自分用の乗り物や公共の乗り物を用意する。

んー、あれやな、フィールドはアインクラッドにして100層まで行くのが目的って感じにしちゃうのもありだよね。世界観をシステム的にしてしまうって事とね。世界観出そうとすると、ゲーム性的によくない点が出ちゃうからさ。




もうオワコンと言われてるけど、MMOを知ってる人としては、これはと思えるMMO出てほしいわけよ。

2018年7月24日火曜日

[ゲーム:セカンドライフ]リンクナンバーと名前に関しての。


list LinkMap_list=["Link_map"];
       
integer LinkMax_integer = llGetNumberOfPrims();
llOwnerSay("Prims : " + (string)LinkMax_integer );

integer Loop_int;
list Sub_list;

LinkMax_integer += 1;
for(Loop_integer=1;Loop_integer<LinkMax_integer ;Loop_integer=-(~Loop_integer) ){
    LinkMap_list = (LinkMap_list = []) + LinkMap_list + llGetLinkPrimitiveParams(Loop_integer,[PRIM_NAME]);
}

integer i;
string Sub_str;
for(Loop_integer=1;Loop_integer<LinkMax_integer ;Loop_integer=-(~Loop_integer) ){
    llOwnerSay(llList2String(LinkMap_list,Loop_integer) );
}


~~~~~~~~


リスト:LinkMap_listにリンク順にプリムの名前を入れる処理です。


最初のオーナーセイは総プリム数確認の為だけなので省略可。


一つ目のfor分でLinkMap_listに名前を格納しています。
0にはダミーの"Link_map"を入れてあるので、1から順にリンクナンバーと同じ位置に名前が入ります。


二つ目のfor分はどう格納されたのか確認用に喋らせたものです。
実装するなら必要ありません。


リンクされていないオブジェは想定していません。
    if(1<lGetNumberOfPrims(); ){}
とでもやれば良いかとは思います。



〇取り出し方
・特定のリンクナンバーのプリムの名前が知りたい。

    string PrimName_string = llList2String(LinkMap_list,integer linknumber);

という感じでリンクバンバー指定でstringの取り出し。


・特定の名前のプリムのリンクナンバーを知りたい。

    string PrimName_string = "hoge";
    integer LinkNumber_integer;

    LinkNumber_integer = llListFindList(LinkMap_list,[PrimName_string]);


これでhogeという名前のプリムのリンクナンバーが分かります。

あとはこれを変数に入れておけば、hogeに対する処理は変数指定で行けるわけです。


注意点としては、オブジェ内に同名プリムが存在する場合、若い方のプリムのリンクナンバーしか取れないという事。なので基本的にプリム名は被らない方がいいです。


~~~~~


〇で、これ何に使うの?

リンクメッセージで送信したり、link系命令で親から子を操作する場合に、プリムの名前は判るんだけどリンクの仕方が変わったりしてリンクナンバーが変わっちゃったよ。幾つなのかもっかい調べて指定しなきゃってのを無くすために使います。

そして処理の度に取得してたら重いだけなので、リスト化し変数に入れ込んでおく処理を最初とかにしちゃうわけです。



~~~~~
という事でなにかしら作ってる際に有効な処理ではないでしょうか。

ぶっちゃけさ、editでリンクナンバーの管理を行えるUI入れろよとは思うんだけどねw



2018年6月28日木曜日

[ゲーム:PUBG]イベントパスの難易度設定に思う。

イベントの難易度設定って、ほんと「判ってるかどうか」で面白さ変わるんだよね。

SLでHUNTとかで判ってねーなって隠し方してるイベントとか結構あったし。
今回のPUBGのイベントパスも正に判ってない。


ゲーム中初動の数分とかで残り人数が50にとかに普通になるんだけど、これってつまり全プレイヤーの半数は初動で死んじゃうレベルの腕。

イベントってのは全員が満足する事は無理なんで、大多数を満足させる難易度設定にすべきなんよ。そこで初動で死んじゃう半数のプレイヤー向けに難易度設定してないと、殆どのプレイヤーが満足が出来ない高難度って事になっちゃうわけ。

そして放置によるファーミング対策も考えてだろうけど、開始後5分以内に倒された場合、その記録はミッションには反映されない。今後緩和されて2.5分になるっぽいけど。

これで余計に多くのプレイヤーはイベントを進められんわけやな。


PUBGにおいては配信等でうまいプレイヤーとかが目立ってて、そっちで考えがちなんだけど、基本的にはプレイヤーは下手で、うまいのは一部しかないってのを判ってないとあかんわけ。


今後もイベントで難易度はあまり下げないだろうなと思うんだけど、これはスキンの価値を下げたくないからだろうけど、貰えるかわからないイベントに参加したい? それなら他所で確実にもらえるイベントに参加して楽しむよね。


こういう端々から運営のセンスの悪さが見えちゃって、これがフォートナイトとの差になってるんやろな。

2018年6月6日水曜日

[ゲーム:Hyper Light Drifter]美しいのぉ


Hyper Light DriflerはMSXを知ってる人ほど凄さや良さが解かるのかもしれんね。

というのもNEC勢だのwinへの流れ?の層からすると、あの時代のドット絵は16色、256と色数がほんと少なく、ドットも荒いんよ。それに対してMSX勢はturbRで19268色あったんよ。msx2とか2+の時でもそこそこの色数あったし。

それでドットが粗目の時代でもシャギー消しやタイルの技術も合わさってかなり綺麗なCGになったんよね。

それ以降とかやと各種ハードの円熟期に登場するゲームで映像のかなり良いのが出てきたりするんだけど、それに似た匂いもするんよなー。


ゲームはリアルさも求めてフォトリアルになってきたけど、それでもドット系やらトーン系が存在し、映像が評価されるのは結局綺麗さって=リアルさでは無いからやろな。ステンドグラスとかも綺麗やん?


さてボスも二体倒して後半戦っぽいけど、場合によっては二週目や、各地の探索もありかもですなー。


#HyperLightDrifter

2018年5月29日火曜日

ぜんぜんそれ「いいね」じゃないが?の話。

「いいね」なんだのとSNSに+1つける機能あるけど、あれってただの既読提示でしかなくなってる人もいるんだよね。

で、これの一番の問題は、押せるのが一個しかない事。
いいねと思わなくても知り合いのだから押してる奴いるっしょ。

でも、ここに「見ました」とか「読みました」ってボタンあったら? ちゃんとそれ押すよね。ただ「いいね」が欲しい人もおるんよ。

じゃあ、どうするか。steamでゲームに関してタグをユーザーが付けれるんだけど、それと同じように各投稿には、

 閲覧者のタグ付けを許可するかのオン/オフ
 閲覧者がタグへの+1を許可するかのオン/オフ
 
 投稿者が投稿へのタグの追加
 投稿者が投稿へのタグの削除

の機能をつける。これで「見ました」タグを作ればいいし、その投稿を気に入った人がどう気に入ったのか、そしてそれにどれだけの人が共感したかを表示出来る様になるわけ。
情報量が増えてしまう問題はあるけど、技術的に付けれないような物でもないから可能だと思うんだよね。

検索タグに関しては投稿内に#stringsの形で入れればいいし、今回の案のタグで同じタグの付いてる投稿を見れてもいいかな。

という事で最近多く見かける既読提示の+1が正直うざくなってるので、機能でよくならんかなーと思ってます。

2018年5月8日火曜日

[ゲーム:セカンドライフ]フロントタイヤの旋回時のうねりの解消について

SLの四輪等の車は旋回時にフロントタイヤの向きが変わるギミックが仕込んであるわけですが、その際にハンドルを逆に切るとタイヤがうねって取れそうな感じの挙動になる事があります。

タイヤを速度によってllTargetOmegaで回転させ、llSetRot(実際はllSetLinkPrimitiveParamsFastを使ってると思います)で旋回させている車が大半なわけですが、左右に軸が反転する事でTargetOmegaの回転角度がおかしくなるからだと思うのですが、大半のメーカーではこのままになっており対策はされていません。

対策しないのは、まずボディーに隠れてタイヤが運転手からほぼ見えないので気にならないからと、対策取るだけのスクリプターが居ないからだと思います。現状の車屋さんの多くはDTやらACRやらなにやらの商材を突っ込んで、あとは性能差を出すための数値調整くらいしかやらないので。



さて、そこでは対策です。
フロントタイヤの処理としては、通常状態でのまっすぐ、A入力によって左向き、D入力によって右向きの3状態になり、あとは車体の速度を拾ってTargeOmegaで回転させていると思います。


まず、タイヤの状態を保持する変数を用意します。

 integer TireAngle = 0;
 //左向きなら-1、右向きなら1、まっすぐなら0

といった具合です。


次に旋回処理ですが、

 if(A入力){
  車体を左旋回;
  タイヤを左向きに;
 }else if(D入力){
  車体を右旋回;
  タイヤを右向きに;
 }else{
  車体の旋回をしない;
  タイヤをまっすぐに;
 }

といった感じにしてあると思います。そこでこの処理を

 if(A入力){
  車体を左旋回;
  if(TireAngle==1){
   タイヤをまっすぐに;
   TireAngle==0;
  }else{
   タイヤを左向きに;
   TireAngle==-1;
  }
 }else if(D入力){
  車体を右旋回;
  if(TireAngle==-1){
   タイヤをまっすぐに;
   TireAngle==0;
  }else{
   タイヤを右向きに;
   TireAngle==1;
  }
 }else{
  車体の旋回をしない;
  タイヤをまっすぐに;
  TireAngle==0;
 }

といった感じに変えます。これで既にタイヤが逆になっている場合に、一回まっすぐにしてから逆に向きを変えるになります。つまり軸をまたいでの旋回を行わないようにします。

これによりタイヤの向きの変更がワンテンポ遅れる事にはなるのですが、何度も何度も逆にハンドを切るなんて事も少ないでしょうし、そういう場合にタイヤがバタバタしてもしょうがないしね。



うちの場合はタイヤが60~-60の範囲で旋回するようにしてるとか、メーカーによってはカウンターを当ててる演出で入力とタイヤの向きが逆になるギミックがあったりだのすると思いますが、それがやれるなら、これみてどう変えればいいかも分かると思います。



これで走行時の見た目が少しは良い感じになるんじゃないかなーと思います。


#secondlife #セカンドライフ

2018年3月21日水曜日

[ゲーム:Crimzon Clover WORLD IGNITION]ファーストコンタクト

気になっていたSTGのCrimzon Clover WORLD IGNITIONをプレイ。
知り合いからのプレゼントです。ありがとう!トレカあり。


このゲーム、STG好きなら気に入りそうなつくりだーと思っててストアの動画も面白そうで気になってたんだけど、最近はそこまでSTGやってないのでセールでも買わずにやりたくなった時に買おうってなってたました。そこなんと知り合いからプレゼントしてもらえましたよ。bundleで被ったキーらしい。


さてまずこのゲームをやるにおいてキーコンフィグしましょう。

まずshotは普通にメインショットね。押しやすいX、四つボタンの左が良いかな。
で、これはメニューのOKも兼ねています。

次にLOCK。これは押してるとレーダー、丸い緑の枠が広がって、その中に入った敵をロックオンし、話すとそこにミサイル攻撃します。なのでshot撃ちながら押しやすいRTとかにしたいとこだけど、このボタンはメニューのキャンセルも兼ねてます。なのでちょっとこれどこにするか厄介かも。
無難はAの四つボタンの下だけど。

Breakはいわゆるボムです。Y、四つボタンの上が良いかな。

Pause。これゲーム中にポーズかけてメニューかけたり、ムビースキップのスタートボタン扱いなのかな?使ってないけど。
これは素直にパッドのスタートボタンをいつも入れてるとこでいいかと。

で、ここまで書いてあれだけど、これパッド前提だと思う。さすがにキーボードでやるゲームじゃないよね。



これであとは画面サイズを好みにすれば快適にプレイです。


さてノービスで3機ともプレイした感じですが、まず、色と武装のイメージが合わん! 趣味の問題ですw
まあ、でも他のゲームも色と武装はこんな感じだけどね。

で、使った感想としてはTYPE-1はlockのホーミングが好みなんだけど、範囲バルカン系機体なので火力足らなさを感じるね。
TYPE-2はこれロックオンに火力割いてる感じ?結構稼ぎやすくてよかったよ。ダブルブレイクしやすい。
TYPE-3は結構好みかも。直線型shotがレイストームの二号機を思い起こすし。で、ロックオンはファンネル。これはちょっと威力足らないね。なのでメインはロック状態でshotが収束して火力上がる事かな。なんだかんだでこの機体の方が奥まで行けそう。

結局ノービスなのに2、3ステージで終わったんだけど、コンテニューすればクリアできると思う。当たり前w
ちなみに全部で5ステージ。


なかなか派手だしいいねー。
ブレイクもさ、ダブルブレイクでテンション上がるよね。
なので値段分しっかり楽しめるSTGだわ。買ってないけど。


気になる点としては、自機がちょっとでかく感じます。それと操作感としてすこし行き過ぎるというか入力に対して動く量がわずかに多いね。これ1280*720でやってるからかな。なので解像度は高い方が避け易いと思う。


他は不満点もほとんどなく、玄人向けの縦画面対応もあっていい出来してます。


あれ?このゲームさ、steamで○○ZEALっていくつかSTGあるんだけど、あれとはメーカーちゃうのかw 同じかと思ってたw


さって今日は軽くプレイって事にして、明日からはコンテニューしつつクリアとアーケードモードとか他のもプレイですわ。



という事でSTG好きで気になった人なら十分楽しめてお勧めできます。



#steam #ゲーム感想文