投稿記事

フラスマ 2023/02/21 02:41

対戦カード(仮)開発記録 14: カード特殊効果 発動の仕組み等

カードの特殊効果発動の仕組み

を作りました。


ワイ渾身のスクリプト
カードの特殊効果を調べて優先度順に実行する

ゲーム進行上の段階1つにつき
複数の効果を割り当てることもできます

うまく書けるかどうか不安だったけど
実装を最近ずっと考えていたからか、
さほど躓かずに書けました

アダプティプスーツの特殊効果

今日はとりあえず、一番簡単そうな
「アダプティブスーツ」の効果から作ってみました。

効果:自分の未使用のマナ1つにつき 攻撃+5, 防御+6
動画では、マナをより多く残した方がより強く強化されています
余ったエネルギーを力に変える特殊なスーツみたいな感じです

実装予定の特殊効果


残り9種類くらいあるんですが、
一番厄介そうなのは「手札を奪う」系の効果ですね
両プレイヤーの場で同じ効果を発動させたときに、
カードの場が互いに入れ替わってややこしくなると思うので
注意してスクリプトを書いていきます

今後

カードを場に出した直後に発動する系の特殊効果を実装する

今回は以上です。お読みくださいましてありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

フラスマ 2023/02/20 02:28

対戦カード(仮)開発記録 13: エンチャントつけ外し

エンチャント

コストダウン、攻撃アップなどの
カードに付与するステータス増減の効果。

動画内では、
ポチポチとキーボードをたたく音と共に
手札のカードにエンチャントを付与してます
(あくまで動作確認用の処理。
完成したゲームではカードの効果によってエンチャントが付与される)

捨てた時にエンチャントは消えます。

現状の24種のカードの効果を実現するに足りるだけの仕組みを実装しました。

単純にステータスを増減させるだけですが、
他にカードを追加するとしたら、何か複雑な効果を持たせるかも
(ゲームが完成した後の話をもうする)
3回捨てた後パワーアップするとか

今後

カードの特殊効果を発動する仕組みの実装。
カードの特殊効果の発動タイミング・優先度・内容を設定する仕組み
優先度順に効果を発動する仕組み
などなど

今回は以上です。お読みくださいましてありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

フラスマ 2023/02/18 21:07

対戦カード(仮)開発記録 12: 山札のカードを捨てる

山札のカードを捨てる

カード一覧上部の矢印をクリックで、
そのコスト帯の山札からカードを捨てます

黄色い矢印をクリックで、捨てるのをキャンセルします

1ターンに3枚まで、
コストは1枚につき1

①カードの回転率を上げるのに使う運用
②次に引く手札の合計コストが少なくなってしまうのを防ぐ運用
などを想定

上手くプレイするには捨て方が重要な要素になるかも?

ゲーム開始時の接続を安定させた


ゲームの自動開始からスクリプトによる半自動開始に切り替えたところ、
ゲーム開始時に大抵切断が起こってしまう不具合が起こらなくなった。

今後

エンチャントの実装
(エンチャントの実体となる構造体、
エンチャントをつけた時・外した時の処理、など)

エンチャントはカードを捨てた時に大部分が外れる予定なのですが、
カードを捨てる処理がスクリプトの色々なところに散らばっているので
それらが同じ処理を呼ぶようにする所から

今回は以上です。お読みくださいましてありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

フラスマ 2023/02/16 21:05

対戦カード(仮)開発記録 11: バグにおびえる

一部始終はこのツイートのツリーをたどっていけば分かりますが、
この記事で流れを説明します
https://twitter.com/nakamoooooo/status/1625832598063976449

出来事の流れ

gamemakerのbetaのマルチプレイ接続バグが治ったので、
カードゲームの方も2つクライアントを立ち上げて接続してみました。

うまく動くこともあったのですが、
ゲーム開始直後に一方のクライアントが謎に停止する問題がありました。

例外を投げたと画面に出ている割には、
コンソール(ゲーム画面下側)に何も出力されていないので
原因が不明でした

プロジェクトのコピーを作って、
規模を縮めていきつつ問題の原因のスクリプトを特定しようともしましたが、
途中からOperaサイドのコンソール(開発者ツール、shift+ctrl+i)
を開くことを思いついたのでやってみたところ、
サインインが必要とのメッセージが出ていました

おそらくgx.gamesへのサインインの事なのですが
すでにサインインは済ませており、
サインインしても例外が発生したりしなかったりしました。

とりあえず、自分のスクリプト側に原因があるわけでは無いことが分かったし
これ以上はどうすることもできない所に来たので終了

今後

ゲームの内容づくりの再開
まずカードを捨てる機能から

今回は以上です。お読みくださいましてありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

フラスマ 2023/02/14 02:40

射的オンライン for GX.games を公開しました!

射的オンライン

射的オンライン for GX.games


マウスで簡単的当てシューティング
オンラインの誰かと対戦、
または友達と対戦が可能!
最大4人でバンバンしよう!

対戦相手の設定

https://twitter.com/nakamoooooo/status/1625105945813712896
https://twitter.com/nakamoooooo/status/1625108025504829440

公式Discordサーバー

公式Discordサーバー
一緒に遊ぶ相手の募集や、ゲームに関する雑談などに使ってください
一般的な常識を守りましょう

開発記録

このゲームはだいぶ前にほぼ完成して、
あとは接続が切れてしまうバグを対処するだけという状態が長く続いていたのですが、
GamemakerのBeta版が更新され(2023.200)、
ついにバグが修正されました。

バグが修正されるまでの間、
バグの抜け穴を通り抜けるためのマッチングスクリプトを作っていたのですが、
今回はそれを流用して、
人数が満員になっていない状態で、
手動で安全にゲームを開始できるような機能をつけました。
(手動開始自体は関数1つで行えるのですが、
他の人の接続の状態によってはゲームを開始できないことがあります。
例えば誰かがルームに入ってきた直後、接続を安定化させるまでの期間や
他の人の接続が切れてから再接続or完全に切断するまでの猶予の期間は
手動開始を行ってしまうとエラーが出てしまうので
ロールバックイベントから得た情報を元に、安全に開始できる時だけ開始可能にする仕組みです)

オンライン対戦ゲームとしては不便の無いレベルに達し、
公開しても恥ずかしくない出来になりました。

オンラインが好きなのでウンザリするような気分になってはいないですが、
そこそこ労力を注いだので
何かこのノウハウをgamemaker使いの人たちに共有できてらいいなと思いますね
もちろん遊んでもらえるというのも嬉しいですが

今回は以上です。お読みくださいましてありがとうございました。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

1 2 3 4 5 6 7

月別アーカイブ

限定特典から探す

記事を検索