Just Shapes&Beatsの開発とそのすべての始まり

あなた自身について少し

こんにちは、私は16歳で、Just Shapes&Beats(JSAB)をプレイするのが大好きです。ある晴れた日、私はJSABのようなゲームについて学びました。私はゲームプレイの部分に非常に夢中になり、開発者は単純な幾何学的形状から30以上のレベルを作成しました-それは素晴らしいです!でも、そんな風にプレイしたくなかったので、自分で何かを作りたかったのです。また、JSABにはレベルエディタがありますが、2年以上プレアルファテストが行​​われており、レベルを作成したいので、独自のJSABを作成することにしました。それでは、最初に取り掛かりましょう。





始まりが始まった

ずっと自分のゲームを作りたかったのですが、自分の考えがなかったので、JSABのクローンを作ることにしましたが、そこに自分のゲームを追加しました。もちろん、私はエンジンUnityを選びました。なぜなら、私は長い間それに興味があり、小さいながらも少なくともある程度の作業経験があったからです。私自身、どこにいてもプレイしたかったので、モバイルデバイス用のJSABを作ることにしました。当初、私のゲームの配色はオリジナルとは異なり、すべてがモノクロでした。





こんな感じでした。コントロールも異なり、プレーヤーはマウスまたは画面に触れることで制御され、ダッシュする方法はありませんでした。





技術部

ゲームの技術的な部分に取り掛かり、オブジェクトを作成することから始めましょう。





オブジェクトの作成

すべてのオブジェクトはInstantiateを介して作成されましたが、後で判明したように、最適化に大きな影響を与えます。この状況を想像してみてください





public GameObject Obj;

private void Start(){
  for(int i = 0; i < 100; i++){   
		GameObject.Instantite(Obj);
  }
}
      
      



, , . .





, . , . JSON , , .





{
  attacks: [
    {
      "attackType": "DotCircle",
      "time": "1,0828",
      "dotCount": "20"
    },
    {
      "attackType": "Beam",
      "time": "3,06713",
      "width": "50"
    }
  ]
}
      
      



JSON Update .





. , , -. . , . Unity





Animation anim = GetComponent<Animation>();
AnimationCurve curve;

// create a new AnimationClip
AnimationClip clip = new AnimationClip();
clip.legacy = true;

// create a curve to move the GameObject and assign to the clip
Keyframe[] keys;
keys = new Keyframe[3];
keys[0] = new Keyframe(0.0f, 0.0f);
keys[1] = new Keyframe(1.0f, 1.5f);
keys[2] = new Keyframe(2.0f, 0.0f); 
curve = new AnimationCurve(keys);
clip.SetCurve("", typeof(Transform), "localPosition.x", curve);

// update the clip to a change the red color
curve = AnimationCurve.Linear(0.0f, 1.0f, 2.0f, 0.0f);
clip.SetCurve("", typeof(Material), "_Color.r", curve);

// now animate the GameObject
anim.AddClip(clip, clip.name);
anim.Play(clip.name);
      
      



X .





, , . .





, , . , , . C# . , . , , . π 180, , Unity . (AngleInDegree) .





public float AngleInDegree = 90f;

private void Start(){
  float cos = Mathf.Cos(AngleInDegree * Mathf.Deg2Rad);
  float sin = Mathf.Sin(AngleInDegree * Mathf.Deg2Rad);
}
      
      



" "

- . , JSON . (, , ). , . Playable ( , ..) AudioSource' () .





:





, , Chronos ( ).





私はすでにタイムラインの機能を最大限に活用しており、必要なキーボードキーを必要な攻撃に結び付けて、レベルを作成しました。また、これを読んでくださった方々にも感謝申し上げます。少なくとも少しおもしろかったと思います!間もなく第2部があります。ここでは、ほぼ3か月の開発で何に到達したかについて、そして現在の開発段階について少し説明します。私のチャンネルアクセスし開発プロセスをフォローすることもできますまた、不和サーバーもあります








All Articles