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

в 8:56, , рубрики: 2d, game development, Gamedev, 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

Автор: Dani1lski

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js