2年生から愛を込めて店のゲームのコンベア

Promo Codes.apk


現在、いわゆる「プロモーションコード」は多くの店舗で人気があり、顧客は商品の割引を受けることができます。 平均して、このような「イノベーション」を使用する店舗の顧客ベースは、16〜30歳の顧客で構成されています。 この年齢層の人々は、実際にはスマートフォンを手放していません。 毎年成長しているモバイルアプリケーションの関連性に直面して。 これにより、私たちと仲間たちは、これらの同じプロモーションコードを配布するためのアプリケーションを作成するというアイデアに至りました。

コンセプトとマーケティング


短い議論の後、ユーザーがプロモーションコードを見つけなければならない迷路の開発に落ち着きました。 プロモーションコードの数とラビリンス生成の頻度は、顧客によって異なります。 各ユーザーは迷路でプロモーションコードを見つけることができますが、最初のNクライアントのみがそれを受け取ります。

ユーザーの利点:



顧客の利点:



開発者にとっての利点:




メイン開発ツールとしてのUnity3D


ゲームエンジンを選択するとき、 Unity3Dに決めました 。 これにはいくつかの理由がありました。


データ保存


共有の名前、プロモーションコード番号、迷路マップなどのデータを保存することについて疑問が生じたとき、データをローカルに保存することは少なくともばかげているという結論に達しました。
まず、アプリケーションのボリュームが増加し、デバイスのメモリが詰まり、次に更新に問題が発生します(永久に新しいビルドを実行してサイトにアップロードする必要があります)。 そのため、ゲームは「 Client-Server-DB 」の原則に基づいて機能するという結論に達しました。

画像

なぜ「 クライアント-DB 」ではないのですか? -この場合、各ユーザーはデータベースに直接アクセスできるため、セキュリティがゼロになります。

データベースはリモートに配置されるため、ホスティングが必要でした。 私たちのゲームのプロトタイプには、無料のホスティングを選択しました。 主な基準は、2つのデータベースを一度に提供し、 PhPMyAdminを介してデータを編集できることです 。 データベースの経験が乏しいため、後者が私たちの鍵になりました。

DBアクセス


ゲームは「 Client-Server-DB 」の原則を受け入れるため、 クライアントがサーバーにアクセスしてデータベースにリクエストを送信する必要があるのは当然です。 データは逆の順序で返されます。 クライアントからサーバーへのアクセスは、 C#を使用してUnityの既存のWWWおよびWWWFormを使用して行われ(詳細については、Unity Scripting APIを参照)、通常のphpスクリプトを使用してサーバーからデータベースにアクセスします。 データベースから取得したデータを配布するために、 JSONがUnityで使用されました。

<?php $servername = "**"; $username = "**"; $password = "**"; $dbname = "**"; //Create connection_aborted $con = mysqli_connect($servername,$username,$password,$dbname); mysqli_set_charset($con, "utf8"); $id = $_REQUEST["id"]; $sql = "SELECT * FROM UnityDB WHERE id = {$id}"; $result = mysqli_query($con,$sql); $rows = array(); $rows = mysqli_fetch_assoc($result); $rows['Map'] = base64_encode($rows['Map']); echo json_encode($rows,JSON_UNESCAPED_SLASHES); mysqli_close($con); ?> 

「今日の日付は何ですか?」


テーブルの各行で、 識別子としてidを使用しました。これにより、テーブル全体から関心のあるものを選択しました。 月の日付に応じて、1〜31の値がありました。 すでに理解したように、各IDには独自の迷路、プロモーションコードなどがありました。 チェックは、特定のタイムゾーンの数値を返す短いphpスクリプトを介して実行されました(全員が同じ数値を持つように)。

構文は、不要なクエリでデータベースを過負荷にしないように実装されました。
最初に、月の日を返す日付を使用してスクリプトに目を向けました。 その後、ローカル番号(データベースへの最後のクエリ中に保存された)とスクリプトが返した番号のチェックがありました。 それらが同じ場合、データベースにはアクセスせず、単にローカルデータ(以前のデータベースアクセスから取得したもの)を使用します。日付が異なる場合は、データベースにアクセスし、ローカル番号をスクリプトによって返された番号に置き換えます。日付付き。

 <?php date_default_timezone_set("UTC"); //      $time = time(); //       $time += 5 * 3600; //  3      echo date("d", $time); //   ,     ?> 

ゲームスタイル


ゲームの基本的な仕組みを記述した後、グラフィックのデザインを決定する必要がありました。 次の理由から、単純な「漫画」スタイルに決めました。


画像

3Dモデル


キャラクターモデルとスイープを含むすべての3Dモデルは、 3D Studio MAXで作成されました。
アニメーションはMixamoを使用して作成されましたが、すでに既製のプリセットが存在するため、これで十分でした。

画像

画像

テクスチャリング


3Dモデルは3色以下で構成されていました。 スキャン自体は次のようになりました。

画像

モデルを色に応じてパーツに分割しました。 その結果、テクスチャ自体は次のようになりました。

画像

テクスチャは任意のサイズで作成できますが、2つの単色のみであるため、品質に影響はありません。 当然、デバイス上のスペースをあまり使用しないように、可能な限り小さくしました。

キャラクターの服の色のさまざまなバリエーションを作成するのは便利で迅速です。これは、特定の順序に合わせてアプリケーションを調整するときに明確なプラスです。

エンジンで必要なマテリアルを作成することも難しくありませんでした-Unityにはすでにトゥーンシェーダーがあり、それは私たちにほぼ完全に適していました。 少し変更することで、必要な結果を達成しました。

UIデザイン


インターフェイスはAdobe Illustratorで作成されました。

画像

Unityでアニメーションを作成するためのシステムは非常に便利で、メニューやボタンなどを簡単にアニメーション化できます。

画像

おわりに


このような単純なテンプレートを開発したので、ショップや一部の機関に商品を安全に提供できます。 他の店舗との取引という形での正しいプレゼンテーションとポートフォリオは、これに役立ちます。 寒い冬の夜に3人の2年生がやってくるようなクールなスタートアップがここにあります。

Source: https://habr.com/ru/post/J344392/


All Articles