Cоздаю игру на Unity

—

от автора

Здравствуйте, все, кто это читает!

Я Данилский, и я в процессе создания игры «Mr. Micro» на Unity; работаю над ней 1,5 года.

Задумка и сюжет:

Игроку нужно собрать 10 000 монет в течение года из‑за долга перед мафией. Он открывает бизнес по продаже машин на запчасти. По пути он встречает богатого антропоморфного слизня, который решает его поддержать, но из-за запрета родителей не может отправлять и как либо передавать деньги.Слизню тоже нужно заработать 10 000 монет, чтобы доказать родителям свою самостоятельность.

Game play:

Игрок рекламирует свою авторазборку. К нему приезжают клиенты на своих машинах игрок разбирает их машины, а запчасти продает своему «богатому» другу.

Каждый день они делят выручку пополам, и так продолжается до тех пор, пока у игрока не появляется достаточно денег для улучшения бизнеса: он нанимает работников, улучшает рекламу и так далее. Но приходит мафия и отбирает половину бизнеса. До расплаты остается один месяц, нужно собрать 1000 монет. Бизнес оказывается на грани краха, но игрок выкручивается: открывает подпольный бизнес, зарабатывает эти 1000 монет и расплачивается с мафией.

Концовка (можно не читать):

Я упомянул счастливый сюжет, но есть 3 концовки

  1. Игрок расплачивается с мафией, но вспоминает про сына.

    • Он успевает в течение месяца накопить оставшиеся 1 000 монет, расплачивается с мафией и укрепляет отношения со своим другом. Родители друга очень удивляются тому факту, что их сын вместе со своим напарником открывают бизнес, накопив при этом 10 000 монет. Они предлагают свою поддержку в виде 100 000 монет для дальнейшего развития дела.

      • У игрока есть выбор: принять 100 000 монет, которых хватит для бизнеса и безбедной жизни, или отказаться, чтобы полететь домой к своему сыну, которому исполнился один год. Он спрашивает, можно ли получить деньги и улететь к семье. Родители друга воспринимают это как шутку и отказывают.

      Игрок выбирает путь в течение одной недели заработать деньги самому и улететь к семье. Его друг и семья друга отворачиваются от него. Спустя неделю игрок вылетает первым же рейсом и живет долго и, возможно, счастливо, со своим сыном.

  2. Игрок расплачивается с мафией и выбирает бизнес вместо семьи.

    • Он успевает в течение месяца накопить оставшиеся 1 000 монет, расплачивается с мафией и укрепляет отношения со своим другом. Родители друга очень удивляются тому факту, что их сын вместе со своим напарником открывают бизнес, накопив при этом 10 000 монет. Они предлагают свою поддержку в виде 100 000 монет для дальнейшего развития дела.

      • У игрока есть выбор: принять 100 000 монет, которых хватит для бизнеса и безбедной жизни, или отказаться, чтобы полететь домой к своему сыну, которому исполнился один год. Он спрашивает, можно ли получить деньги и улететь к семье. Родители друга воспринимают это как шутку и отказывают.

      Игрок выбрал бизнес и начинает жить по новому. У игрока теперь есть яхта свой собственный остров и бизнес. Они с другом начинают жить как короли со 100 000 местными долларами в руках. Их бизнес процветает и только приумножает из деньги. Во всех сми только и говорят про его успех (это видит его жена)

  3. Игрок не успевает расплатиться в течение месяца.

    Он со своим другом не успел накопить 1000 денег. Друг бросает его и улетает за границу. У мафии есть связи в тюрьме, поэтому игрока сажают на пожизненное заключение. Вскоре он чуть не умирает от сердечного приступа. Его досрочно освобождают спустя 30 лет. Игрок живет в доме престарелых и умирает в одиночестве.

Реализация:

Я создал основной геймплей игры, но пока ушел в долгострой. Пока не знаю, как его завершить, так что сейчас работаю над меню ¯\_(ツ)_/¯. Хочу реализовать механизм рекламы и автоматизации типа найм сотрудников, механики денег пока нет.

Game play

Game play
Меню

Меню

Коды:

Не знаю как разнообразить статью так что покажу несколько кодов. Движение персонажа, другой код музыки

Код для игрока:

// код для игрока using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class playerControler : MonoBehaviour{    public float speed = 0.5f;    private SpriteRenderer sp;    private Rigidbody2D rb;    private Vector2 moveVector;    private void Awake()    {        rb = GetComponent<Rigidbody2D>();        sp = GetComponent<SpriteRenderer>();    }    private void FixedUpdate()    {        Moving();    }    void Moving()     {        rb.MovePosition(rb.position + moveVector * speed * Time.fixedDeltaTime);        moveVector.x = Input.GetAxis("Horizontal");        if (moveVector.x < -0.001f)            sp.flipX = true;        else if (moveVector.x > 0.001f)            sp.flipX = false;    }}

Код для музыки:

// музыка соответственноusing UnityEngine;public class Music : MonoBehaviour{    [Header("Music clips")]    [SerializeField] public AudioClip[] Musics;    private AudioSource _audioSource;       void Awake()    {        _audioSource = GetComponent<AudioSource>();        _audioSource.loop = false;    }       void Start()    {        if (Musics.Length == 0)        {            Debug.LogWarning("The code doesn’t contain any clips!");            return;        }                StartCoroutine(PlayMusics());    }        private System.Collections.IEnumerator PlayMusics()    {        int randomIndex = Random.Range(0, Musics.Length);        AudioClip randomClip = Musics[randomIndex];                   _audioSource.clip = randomClip;        _audioSource.Play();                   yield return new WaitForSeconds(randomClip.length);    }}

Очень надеюсь, что мой проект зайдёт. Огромное спасибо всем, что всё это прочитали или заимствовали код. Всем пока! Скоро буду, а пока Данислкий пойдет отдохнет и поработает в дальнейшем. Всем вам до скорого! ヾ(≧▽≦*)o

ссылка на оригинал статьи https://habr.com/ru/articles/1089508/