unity Vs pygame

ゲーム作りに関連して

Unity Vs pygame について個人的意見を書いていこうと思います。

unity

*以下個人的意見*

私がプログラミングを始めて一番最初に触れた言語がpythonです。

・文法が簡単なこと

・ライブラリが豊富でできることが多いこと

以上の理由でpythonを学び始めました。

その後ある程度pythonにも慣れゲーム作りに取り組むようになったのですが、ゲーム作りに関して以下によかったことと悪かったことに分けて書こうと思います。

よかったこと

・動的型付け言語であるため、変数の宣言をする必要がなく、余り型を気にせずにコードが書き進められる(慣れすぎるとのちにしんどい思いをすることも)

・ゲームエンジンを使うとすぐできることを自分でコードに落とし込むことで、理解がより深くなるかもしれないこともない。

・スペックの低いPCでも動く!(Unity重い(笑)。)

悪かったこと

・Unityを使えばすぐできることが多々ある

・Web上で動かそうと思えば非常にしんどい

→結局exeファイルにして配布するといったことになるかも(これもしんどいです。)

→Buildする際の記事は非常に少ない、調べても出てこない、そもそもpythonで本格的なゲーム作成は向いていない。

→結果作っても公開することが非常にしんどい。

結論

pythonでのゲーム作りはコードの練習にはなるかもしれないが、本格的に作りこんだり、他者に公開するのには向いていないと思う。(私個人の技量がないのもあるけれど)

Unityを使ったほうがいいですね!

しかし、pythonで書いたコードも中身を理解していれば、少し苦労するけどUnity・C#に落とし込むことができると思います。

無駄にはならないと思います!

こんな感じになります↓python


def kana_divide(kana):                     #↓↓↓  ひらがな(kana)を分割しリスト化する関数(kana_divide)  ↓↓↓
     kana_separate = []                   
     ltu = ["a","i","u","e","o","n"]
     count = 1                             #小文字(string_small)の処理に使用
     judge = -1                            #「っ」の処理に使用

     for i in range(len(kana)):            #kanaの文字数分繰り返す
         if judge == i:                    #前回「っ」の処理をしていたら今回処理なし
             continue

         else:
             if i != 0 and kana[i-1] + kana[i] in string_dict:   #小文字の処理↓
                 b = kana_separate.pop(i-count)#ひとつ前の文字を削除
                 a = b + kana[i]   #ひとつ前の文字と合わせてリスト(kana_separate)に加える
                 kana_separate.append(a)
                 count += 1                #リストとiのずれを修正

             elif i != len(kana) - 1 and kana[i] == "っ" and string_dict[kana[i+1]][0][0] not in ltu:         #「っ」の処理↓
                 a = kana[i] + kana[i+1]   #次の文字と合わせてリスト(kana_separate)に加える
                 kana_separate.append(a)
                 judge = i+1               #次の処理を飛ばす判定に使用
                 count += 1                #リストとiずれを修正

             else :                        #通常の処理↓
                 a = kana[i]               #そのままリスト(kana_separate)に加える
                 kana_separate.append(a)

     return kana_separate                  #分割されたひらがなリスト(kana_separate)を返す

C#↓

    public List<string> Kana_divede(string kana)
    {
        var kana_dive = new List<string>();

        var boinn = new List<string>();
        for(int i=0;i <ltu.Length;i++)
        {
            boinn.Add(ltu[i]);
        }

        counter = 1;

        for(int i=0; i <kana.Length; i++)
        {
                if((i != 0) && (keyTable.ContainsKey(kana[i-1].ToString()+kana[i].ToString())))
                {
                    string c = kana_dive[i-counter].ToString();
                    kana_dive.Remove(c);
                    string a = (c+ kana[i].ToString());
                    kana_dive.Add(a);
                    counter +=1;                     
                }
                else if((i != kana.Length-1) && (kana[i].ToString() == "っ") && (boinn.Contains(keyTable[kana[i+1].ToString()][0][0].ToString())))
                {
                    var a = kana[i].ToString() + kana[i+1].ToString();
                    kana_dive.Add(a);
                    counter += 1;
                    i ++;
                    continue;
                }
                else{
                    var a = kana[i].ToString();
                    kana_dive.Add(a);
                }

        }  
        return kana_dive;

    }

(◎_◎;)コードだけじゃ全然伝わらない(笑)。

上のコードでは、ひらがなの文字列をひとつづつ切り離す処理をしています。

詳しい説明はまた書いていこうと思います。

pygame

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です