Вопрос: Как сделать видеоигру с нуля?

 

КАК СОЗДАТЬ ПРОСТУЮ 3D ИГРУ НА UNITY? || Unity 3D C# Уроки Создание Игр

Видео взято с канала: Maxter


 

КАК СОЗДАТЬ ИГРУ НА UNITY? #1 || Unity C# Уроки Создание Игр На Андроид 2D

Видео взято с канала: Maxter


 

Разработка игр (Урок 1 Создание первой игры. С чего начать.)

Видео взято с канала: Владимир СВЕТ Игродельский


 

Construct 3 Как сделать игру на Construct 3. Своя игра с нуля. Гайд by Artalasky

Видео взято с канала: ARTALASKY CG Как создать игру


 

Создание игры на Андроид за 10 минут в Unity с нуля / Уроки и разработка 2D игр / Игровая графика

Видео взято с канала: Flatingo. Разработчик игр


 

Как создать свою первую 3D игру на Unity 5 c# и MagicaVoxel с нуля. Гайд #1 by Artalasky

Видео взято с канала: ARTALASKY CG Как создать игру


 

Как создать Android игру за 10 минут на языке Python!

Видео взято с канала: Хауди Хо™ Просто о мире IT!


43 комментария

  • Зачем руку вторую, если ее можно дублировать?
    Зачем вторую ногу, если ее можно продублировать?
    Зачем рисовать графику, ее же можно скачать в интернете?
    Зачем писать код, можно же скачать готовые ассеты?
    Зачем делать игру, можно же…

  • ARTALASKY, мне очень приятно смотреть твои видео. Ты полон энтузиазма, стремления к цели и просто хороший человек. Твои видео действительно мотивируют. Я тоже занимаюсь разработкой игр но только новичок в этом деле.
    Мне интересно, нуждаешься ли ты в помощи для достижения цели сейчас (не думай что я навязываюсь)? Есть ли у тебя уже помощники?

  • Assets\Scripts\PlayerController.cs(10,13): error CS0246: The type or namespace name ‘RigidBody2D’ could not be found (are you missing a using directive or an assembly reference?
    EndLayoutGroup: BeginLayoutGroup must be called first.
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)
    Вот такие две ошибки видає хз что делать всьо по видосу делал

  • Арталаски не могу найти нормальный spf controller for unity и из-за этого не могу проверить играбельность игры. Можешь посоветовать сайт где можно скачать или кто-то из подписчиков подскажите пожалуйста.

  • Джотаро: Дио!

    Дио: А? Ты приближаешься ко мне?

    Вместо того чтобы убежать, ты идешь прямо ко мне?

    Даже несмотря на то, что твой дедушка, Джозеф, рассказал тебе тайну за-ВАРУДО, как экзаменующийся, пытающийся закончить задачи на экзамене до последнего момента перед ударом колокола?

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

    Дио: О-хо! Тогда подойдите так близко, как вам нравится.

    * Сближение друг с другом*

    Звездная платина: Ора!

    Дио: слишком медленно, слишком медленно! За ВАРУДО-это конечная позиция. Даже без его способности останавливать время, его скорость и мощь намного превосходят вашу звездную платину.

    Джотаро: значит, это тот же тип подставки, что и Star Platinum. Не размашистый диапазон, но огромная сила и точные движения.

    Дио: я хотел попробовать провести небольшой тест, чтобы выяснить, насколько сильнее был за ВАРУДО по сравнению с вашим стендом. Хотя, похоже, тест вряд ли был необходим

    Джотаро: Испытание? Это то, что ты называешь просто погладить меня, и даже не достаточно больно? Ну, я думаю, ты все же порвал мои штаны за 20 000 иен.

    Дио: почему вы, шутники, так упрямо не хотите признать свое поражение? Хм. Пожалуй, я поддамся на твою глупую провокацию и еще немного тебя испытаю

    ZA WARUDO VS STAR PLATINUM | БОРЬБА УСИЛИВАЕТСЯ

    Дио: сравним ли мы скорость наших атакующих бросков?

    for (int i=0;i<1000; i++)
    {
    с std::соиь<<"Звезда " Платинум": Ора"<<СТД::епси;
    с std::соиь<<"WARUDO за муда"<<СТД::епси;
    }

  • Привет! Подскажи плиз как сделать чтобы при написании скрипта дописывались ключевые слова, ты набираешь Rigi у тебя среда разработки уже предлагает дописать Rigidbody2d. Я замучался, нигде нет инфы как это сделать, все приходится писать руками, это ужас.

  • Макс прошу помоги… у меня не работает скрипт для куба ( который отвечает за управление ) хотя я сделал всё то что ты говорил в видеоролике… пожалуйста подскажи что не так.
    ( Но ролик всё равно крутой )

  • Что делать если выдает ошибку в консоле:
    Assets\Scripts\PlayerController.cs(17,31): error CS1061: ‘float’ does not contain a definition for ‘GetAxis’ and no accessible extension method ‘GetAxis’ accepting a first argument of type ‘float’ could be found (are you missing a using directive or an assembly reference?)

  • Можете объяснить в чем ошибка? Вначале игрок нормально ходил. Далее игрок не смог поворачиваться в сторону движения и при добавлении кода прыжка, игра перестала работать.
    using System.Collections;

    using System.Collections.Generic;

    using System.Collections.Specialized;

    using System.Security.Cryptography;

    using UnityEngine;

    public class PlayerControler: MonoBehaviour

    {

    public float speed;

    public float jumpForce;

    private float moveInput;

    private Rigidbody2D rb;

    private bool facingRight = true;

    private bool isGrounded;

    public Transform feetPos;

    public float checkradius;

    public LayerMask whatIsGround;

    private void Start()

    {

    rb = GetComponent();

    }

    private void FixedUpdate()

    {

    moveInput = Input.GetAxis(«Horizontal»);

    rb.velocity = new Vector2(moveInput * speed, rb.velocity.y);

    if(facingRight = false && moveInput > 0)

    {

    Flip();

    }

    else if(facingRight = true && moveInput < 0)
    {

    Flip();

    }

    }

    private void Update()

    {

    IsGrounded = Physics2D.OverLapCircle(feetPos.position, checkRadius, whatIsGround);

    if(isGrounded = true && Input.GetKeyDown(KeyCode.Space))

    {

    rb.velocity = Vector2.up * jumpForce;

    }

    }

    void Flip()

    {

    facingRight =!facingRight;

    Vector3 Scaler = transform.localScale;

    Scaler.x *= -1;

    transform.localScale = Scaler;

    }

    }

  • Я зочу сделать игру типо блок страйка только графика реалистичней намного больше оружий и без доната например вот зочешь сто голды будь добр посмотри 5 реклам хош тыщу голды посмттри 10 реклам зош 10000 посмотри 50 реклам и нож бабочка бы там стоила 1500 голды а серебро 100 серебра за катку читов бы не было а если бы их отку до то достали то бан мржно будет снять за 1795,35$ если бы человек скачал игру я бы сделал так что бы нубы сражадись против нубовграфика бы ищменялочь каждый год там был самый редкий это мистика на него шанс 00.00.01 на легу 01.10 на редкий шанс 50.09 а на обычный 60.00 там будут карты для авп авм акр12 еу и еще винтовок больше всего скинов было бы на бабочку самый дешовый нож был бы типо болта я забыл прост как он называется ну керамбит бы стоил 500 голды и все

  • Крутой видос и очень понятный… жаль только что ПО не совсем совпадает в 2020 году…что в Unity что в MagicaVoxel. У меня вопрос один..легкий и отдыхающий. Как сделать этот хренов пол…мать его… Нет сейчас этой буквочки G и кубик без пола появляется в начале работы в MagicaVoxel. А если его наращивать то потом при выделении и перетаскивании по территории объекта… выделяется и пол…и получается тупо дырка…. WTF… Я один такой олень…который парится весь вечер с этой хренью? Дружище…подскажи что делать нужно…???

  • Готовая бизнес идея:
    Вложиться нужно только в Construct 3,анимацию,бэкграунды и всё остальное берешь на сайтах с бесплатными спрайтами,выкладываешь это в steam за 15 рублей,Добавляешь изи ачивки,На которых будут буквы и тогда ачивкодрочеры сделают тебе первые миллион как нехуй

  • Арталаски подскажи пожалуста, дулаю свой Товер дефенс в Констракт 3, столкнулса с проблемой, хочу зделать чтоб лучник башне поворачивался в сторону врага, но так что не как турель, а персонаж (тоисть если враг справа то он повернут направо, если враг слева то персонаж поворачиваетса налево) тоисть чтоб било только 2 анимации его, 1 персонаж повернут направо когда враги по оси У от башни слева, и персонаж налево когда враги по оси У слева

  • Меня смутил один момент: Названия классов, количество и где они используются очень схожи, как и у Graphics Desinger. Урок связанный с прыжками. Я не докапываюсь, но в след раз хоть названия поменяй) чмок

  • from kivy.app import App

    from kivy.uix.widget import Widget

    from kivy. propertiesimport (

    NumericProperty, ReferenceListProperty, ObjectProperty

    )

    from kivy.vector import Vector

    from kivy.clock import Clock

    from random import randint

    class PongPaddle(Widget):

    score = NumericProperty(0) ## очки игрока

    ## Отскок мячика при коллизии с панелькой игрока

    def bounce_ball(self, ball):

    if self.collide_widget(ball):

    vx, vy = ball.velocity

    offset = (ball.center_y self.center_y) / (self.height / 2)

    bounced = Vector(-1 * vx, vy)

    vel = bounced * 1.1

    ball.velocity = vel.x, vel.y + offset

    class PongBall(Widget):

    # Скорость движения нашего шарика по двум осям

    velocity_x = NumericProperty(0)

    velocity_y = NumericProperty(0)

    # Создаем условный вектор

    velocity = ReferenceListProperty(velocity_x, velocity_y)

    # Заставим шарик двигаться

    def move(self):

    self.pos = Vector(*self.velocity) + self.pos

    class PongGame(Widget):

    ball = ObjectProperty(None) # это будет наша связь с объектом шарика

    player1 = ObjectProperty(None) # Игрок 1

    player2 = ObjectProperty(None) # Игрок 2

    def serve_ball(self, vel=(4, 0)):

    self.ball.center = self.center

    self.ball.velocity = Vector(vel[0], vel[1]).rotate(randint(0, 360))

    def update(self, dt):

    self.ball.move() # двигаем шарик в каждом обновлении экрана

    # проверка отскока шарика от панелек игроков

    self.player1.bounce_ball(self.ball)

    self.player2.bounce_ball(self.ball)

    # отскок шарика по оси Y

    if(self.ball.y < 0) or (self.ball.top > self.height):

    self.ball.velocity_y *= -1 # инверсируем текущую скорость по оси Y

    # отскок шарика по оси X

    # тут если шарик смог уйти за панельку игрока, то есть игрок не успел отбить шарик

    # то это значит что он проиграл и мы добавим +1 очко противнику

    if self.ball.x < self.x:
    # Первый игрок проиграл, добавляем 1 очко второму игроку

    self.player2.score += 1

    self.serve_ball(vel=(4,0)) # заново спавним шарик в центре

    if self.ball.x > self.width:

    # Второй игрок проиграл, добавляем 1 очко первому игроку

    self.player1.score += 1

    self.serve_ball(vel=(-4,0)) # заново спавним шарик в центре

    # Событие прикосновения к экрану

    def on_touch_move(self, touch):

    # первый игрок может касаться только своей части экрана (левой)

    if touch.x < self.width / 3:
    self.player1.center_y = touch.y

    # второй игрок может касаться только своей части экрана (правой)

    if touch.x > self.width self.width / 3:

    self.player2.center_y = touch.y

    class PongApp(App):

    def build(self):

    game = PongGame()

    game.serve_ball()

    Clock.schedule_interval(game.update, 1.0/60) # 60 FPS

    return game

    if _name_ = ‘_main_’:

    PongApp().run()

  • Хороший ролик, но хотелось-бы более подробное объяснение части со скриптами, как это всё дело делается и что за что отвечает, какая команда что делает. Может в будущих роликах и рассказал, ещё не видел.

  • Ты не правильно что-то сделал в 1 ролике для начинающих. Ничего не происходит даже когда в точности скопировал твой код. Видимо что-то забыл упомянуть для правильной работы в программе. Начало запорено, дальше смотреть нет смысла.

  • Самая годная обучалка которую я видел.Все с объяснениямм.В других уроках челики говорили: так вот тут прописываем так вот все мы вот это сделали», а что прописываем и зачем никто не говорит
    Огромное спасибо.С нетерпением жду новый ролик,у тебя отлично получается!

  • Дарова, Maxter.
    У меня небольшая проблемка. С поворотом игрока. На нём, нарисованы тени. В зависимости от освещения, должна произойти смена спрайта, с той, там где игрок смотрит влево, на ту, в которой он смотрит вправо, это нужно, чтобы не нарушать реализм, чтобы тени, были нарисованы, например, всегда справа.

    Заранее спасибо за помощь.
    (Сорри, я не знаю, как правильно сформулировать)

    🙂

  • По-моему так намного легче заставить игрока бегать и поворачивать свое лицо
    Как-то автор замудрил с флипом

    private void Update()

    {

    if (Input.GetButton(«Horizontal»)) Run();

    }

    private void Run()

    {

    Vector3 direction = transform.right * Input.GetAxis(«Horizontal»);

    transform.position = Vector3.MoveTowards(transform.position, transform.position + direction, speed * Time.deltaTime);

    sprite.flipX = direction.x < 0.0F;
    }

  • private void Update()

    {

    isGrounded = Physics2D.OverlapCircle(feetPos.position, checkRadius, whatIsGround);

    if(isGrounded = true && Input.GetKeyDown(KeyCode.Space))

    {

    rb.velocity = Vector2.up * jumpForce;

    }

    }

    Выдает ошибку error CS0103: The name ‘jumpForce’ does not exist in the current context
    Как решить?

  • Здравствуй! Вообщем у меня 8 ошибок в коде (Буду рад если поможешь!)

    using System.Collections;

    using System.Collections.Generic;

    using UnityEngine;

    public class RUNmobile: MonoBehaviour {

    float horizontal;

    Rigidbody2D rb;

    void Start() {

    rb = GetComponent(); {

    }

    void FixedUpdate() {

    if (Application.platform = RuntimePlatform.Android)

    horizontal = Input.acceleration.x;

    } else {

    horizontal = Input.GetAxis(«Horizontal»);

    }

    rb.velocity = new Vector2(Input.GetAxis(«horizontal») * 10f, rb.velocity.y)

    }

  • Я установил Майкрософт визуал 2019 нужные настройки выставил для работы с юнити и с# но вводя те же команды почти в каждой строке 1 из команд выглядит как белый текст, в юнити не отображается после сохранения но поковырявшись я смог добавить скрипт, и в нем не добавляеются параметры после сохранения, ничего не помогает, будто в разных прогах работаем

  • Ля ору с людей которые пишут про ошибки автору в коде, автор сам с# не знает, тупо использует шаблонные скрипты для тех или иных вещей, поэтому когда у вас ошибка он вам не поможет, тк сам не знает.
    Просто нашёл где-то код, чуть изменил и вам впаривает, так вы не научитесь делать игры, всё что вы сможете это копировать шаблонный код и будет в плей маркете дохераллион одинаковых платформеров с разными текстурами, в чём тогда уникальность вашей игры? Я начал смотреть видосы тк нет нормальных гайдов по юнити, по интерфейсу и прочей фигне, так что сначала учите с# а потом уроки по юньке смотрите. Это тоже самое что написать письмо на английском не зная языка, но используя шаблон чела с ютуба

  • Если у кого-то проблемы установите Визуал студио с Юнити Хаб. Слева выберите Installs, нажмите на синюю кнопку ADD и на свежую версию Юнити, нажмите Next, и поставь галочку на Визуал Студио, и установите или проверьте нет ли у вас ошибок.
    (надеюсь помог)

  • Как видишь моя аватарка похожа на твою )))
    Я хотел тоже снимать про изучение и т.п. но я решил изменить свой стиль чтоб не плагиатить тебя)
    и мой стиль уже готов и в скором времени я тоже начну учить людей как ты макс!!!!!
    Спасибо тебе!)

  • Слушай хоуди спс тебе нюза видосы приятно и интерестно смотреть слушай сможешь снять обучение как делать софт под ютуб на любом языке хочу сделать свою программу которая будет заливать видосы на ютую а так же скачивать их с ютуб любой езык желательет сделать визуальный интерфес чтобы можно было приятно с ней взаимодействовать

  • Маленький совет на будущее )) Не вызывай метод GetComponent в циклах (FixedUpdate, Update, и т.д.) это очень сказывается на производительности и дальнейшей оптимизации. Чтобы избежать подобного предварительно сохрани ссылку на Rigidbody в методе Start() { rb = GetComponent(); }. И я не очень понимаю, зачем ты делаешь сериализацию переменным, если можно их сделать публичными? А так, качество контента отличное))

  • Решил написать.
    Столкнулся проблемой при написании «PlayerController » как только начинаю его записывать «public float speed; «.
    Сохраняю и пытаюсь добавить в «ЮНИТИ Unity 5.6.4p2 (64-bit)» все как на видео, появляется ошибка
    Assets/Scripts/player controller.cs(7,246): error CS1525: Unexpected symbol `end-of-file’
    Подскажи в чем проблема?
    А в добавить и указать скорость персонажа в добавить PlayerController отсутствует. Создать новый?
    Но ошибка весит.
    Что делать.?

  • План:
    1. Вступление 0:001:20.
    2. Подготовка программы. Установка Unity: 1:202:27.
    3. Создание проекта: 2:273:07.
    4. Создание графики. Рисование background’a: 3:076:31.
    5. Создание графики. Рисование игрока: 6:317:29.
    6. Интерфейс Unity: 7:297:51.
    7. Импорт текстур, расстановка их на рабочем месте, сортировка: 7:5110:40.
    8. Создание Иерархии: 10:4011:49.
    9. Добавление компонентов к объектам: 11:4914:05.
    10. Написание скрипта передвижения: 14:0523:14.
    11. Заключение: 23:1424:48.

  • Ну ок, вот движок, а где игры? Почему игр сделанных на нем, да и вообще в Construct’е, нет в трендах? Где популярные игры на нем которые знает каждый? Их нет. Скорее потому что он мертв (как и флеш), а ЭТО тогда вообще мертворожденная его третья версия. С таким же успехом ты мог нам показать последнюю версию Adobe Flash.

  • Отличное видео, спасибо за подробное объяснение. У меня есть один вопрос, а можно сделать поверхность земли полностью юзающей? То есть чтобы player мог ходить по ней в верх, низ, в правую сторону и левую?

  • Владимир, доброго времени суток! Вам бы не хотелось упаковать свои знания и продавать в качесте курса? Эта тематика актуальна, а значит, что будет много желающих. На этом можно хорошо зарабатывать. Данный формат сейчас актуален. С такими знаниями стоит попробовать. ����

  • [SerializeField] KeyCode keyOne;
    [SerializeField] KeyCode keyTwo;
    [SerializeField] Vector3 moveDirection;

    Ссылок: 0
    private void Fixedupdate()
    if (Input.GetKey(keyOne))
    GetComponent().velocity += moveDirection;
    if (Input. GetKey(key Two))
    GetComponent
    ().velocity -= moveDirection;

  • Я не понимаю. У меня все детали готовы. Рисовала их в фотошопе на разных слоях. Так вот, я перетаскиваю всё в Unity, а там на сцене фон остается поверх всех остальных деталей. Поверх облаков, поверх травы. Я не знаю что делать. Помогите, пожалуйста

  • Почему когда я пытаюсь поменять трансформацию плеера на 0, у меня она сбивается, и та ошибка когда при повороте персонажа его уносит остаётся. И пишет UnassignedReferenceException: The variable feetPos of PlayerController has not been assigned.

  • Я весь скрипт написал как ты но у меня выдает ошибку:Assets\Scripts\PlayerController.cs(20,31): error CS1061: ‘float’ does not contain a definition for ‘GetAxis’ and no accessible extension method ‘GetAxis’ accepting a first argument of type ‘float’ could be found (are you missing a using directive or an assembly reference?)

    Что мне делать?

  • Привет, сделай пожалуйста видео. Как натройть игру под разные разришения экраны для андройд. У меня игра, и там когда я тестирую на телефоне меню обрезалось. А сама игра только на половине. А остольной части нету
    Помаги, Спасибо

  • Здраствуйте) Я давно хотел создавать игры… Я начал с Construct Classic и создал что-то слабенькое, ну и мне захотелось чего-то новенького, я нашел Construct 2, но там была проблема если ты создаешь игру, ты не можешь сделать её в EXE файл можно поиграть в нее только на сайте… И у меня несколько вопросов…
    1. Программа бесплатная? Или можно найти на нёё Кряки?
    2. Данный конструктор делает файлы формата EXE, как приложение?
    3. Этот движок лёгкий?

  • Пришлось в середине видео вставить другую музыку из-за авторских прав, которое Ютуб только спустя 5 дней(!) мне сообщил. Так что сорян, что в момент level design играет не самый крутой трек:)

    P.S. Так же залетайте ко мне в Инстаграм, если иногда ждете видео, а новостей нету. Там я сижу чаще, да и личка не так замусорена.

  • Спасибо большое!
    Все очень понятно и прикольно.
    Но у меня почему то выдает ошибку «NullRefenceException: Object reference not set to an instance an object» почему она вылазиет?
    Код я проверил и переписать как у тебя(

  • Ошибки:
    1. Не везде понятные и правильные имена полей
    2. Не везде сериализуемые поля, где это нужно
    3. Getcomponent в FixedUpdate
    4. Лучше создать некий класс для хранения функций клавиш, либо использовать то, что есть в «project settings»
    5. «this» не нужен
    6. Однострочные ифы без скобок в студию
    7. Имена приватных полей должны быть с «_» или «m_».
    Имена публичных с больших букв должны начинаться.
    8. Должны быть свойства вместо публичных полей и доступ к приватных полям через них
    9. Целесообразнее ставить private
    10. Проверка не через тег, а через компонент «Player»
    11. transparent material и normal material не нужны, юзай альфу
    12. Смену материалов можно было сделать через метод, соответственно сократить код
    13. Кто такая удобная организация кода через пространства имён?
    14. Сетап цвета должен быть через скрипт и инспектор, а не через создание нового материала (material.color)
    15. Можно было бы найти массив кнопок в Start(), а не каждый раз искать в OnTriggerEnter()
    16. Интерфейсы, привет

  • 7:23 В методе onCollisionEnter2D, есть говнокод. Когда ступаешь на 1 платформу, каждый if срабатывает. Тут 2 способа. Либо возвращать когда первый if используется, либо писать if(условие) { } else if (условие2) {}