Tabla de contenidos

Introducción

listo para desafiar a sus jugadores a rompecabezas únicos, cerebro-que revienta?

Juegos de rompecabezas son un género bastante singular en el desarrollo del juego, lo que requiere más trabajo que muchos otros géneros en su fase de diseño de niveles. Sin embargo, también puede ser una experiencia gratificante en términos de desarrollo, ya que ofrecen retos y sistemas únicos que se pueden utilizar en muchas diferentes proyectos de juegos.

En este tutorial, vamos a ser la creación de un juego de puzzle en el interior del Unreal Engine. Este juego contará con un jugador que puede moverse en una cuadrícula y cuyo objetivo es recoger una serie de seguidores, evadir las trampas, y llegar a la meta final. En el transcurso de este tutorial, no sólo va a aprender a usar planos en Unreal para este propósito, pero también obtener una comprensión fundamental de cómo diseñar puzzles y retos para sus juegos.

Antes de continuar, sé que esto no es un tutorial de introducción. Si esta es tu primera vez que utiliza el Unreal Engine, a continuación, le recomendamos que consulte nuestra Introducción a Unreal Engine curso aquí.

gif del juego de puzzle
No se pierda! extremos oferta en

  • Accede a los más de 200 cursos
  • Nuevos cursos añadió mensual
  • Cancelar en cualquier momento
  • Los certificados de terminación

    ACCESO ahora

    Proyecto Archivos

    Para este proyecto, hay algunos modelos en 3D que vamos a necesitar. Usted puede utilizar su propia, aunque se hará el tutorial usando estos. El proyecto completo también se puede descargar.

    Creación del proyecto

    Para empezar, vamos a crear un nuevo proyecto Unreal Engine. Al crear el proyecto, asegúrese de incluir los primeros contenidos que vamos a utilizar algunos de los materiales. Para empezar, vamos a crear tres nuevas carpetas.

    A continuación, crear un nuevo nivel y guardarlo en la Niveles carpeta como MainLevel .


    Vamos a continuación, descargar los recursos requeridos (vinculados en la parte superior del tutorial). Hay una carpeta llamada Modelos carpeta de contenido . Dentro de ello, arrastre el contenido en nuestro Navegador de contenido ‘s Modelos carpeta.

    A continuación, configure nos dejó algunas asociaciones de teclas. Necesitamos saber qué botones que vamos a utilizar para el movimiento del jugador. Abrir la Configuración del proyecto ventana ( Editar> Ajustes del proyecto … ). Haga clic en el entrada y crear 4 nuevas asignaciones de acción.


    • MoveUp = W
    • MoverAbajo = S
    • MoverIzquierda = A
    • MoveRight = D


      Creación del jugador

      Ahora que tenemos nuestros controles ordenados a cabo, vamos a crear el jugador. En el Modelos carpeta, cree un nuevo proyecto con una clase padre de Hipoteca . Llamarlo Reproductor .


      abrirlo y podemos empezar a crear el jugador. En primer lugar, crear malla componente a estático.


      • Establecer la malla estática a Player_Cylinder_003
      • Establecer el material a M_Metal_Brushed_Nickel
      • Establecer la escala de 0,8, 0,8, 0,8
      • Activar simulación genera eventos Hit
      • Establecer la colisión predeterminadas para OverlapAllDynamic


        A continuación, como un hijo de la malla estática, crear un luz del punto componente.


        • Establecer la ubicación a 0, 0, 137
        • ajustar la intensidad a 4500
        • Establecer el color claro a verde
        • Set Radio de la atenuación a 300
        • Ajuste la fuente de radio a 20
        • Las sombras proyectadas Desactivar


          El componente final será un caja de colisión , y esto se utiliza para saber si vamos a chocar contra una pared.


          • Establecer la ubicación a 100, 0, 50
          • Activar simulación genera eventos Hit
          • Definición de los ajustes preestablecidos de colisión personalizado …

            PREAJUSTES colisión medios que podemos elegir lo que queremos detectar con este colisionador. Ya que estamos buscando paredes, entran dentro de WorldStatic . Así que bajo Respuestas Object , juego todo para Ignorar , excepto WorldStatic .


            Ahora que tenemos nuestra configuración del reproductor de componente a componente, el lugar de ellos abiertos en el nivel. De vuelta en el editor de niveles, crear un nuevo modelo de tipo GameMode Base y lo llaman MyGameMode . Abrirlo y todo lo que queremos hacer aquí es establecer la Hipoteca defecto Clase a nuestro Reproductor .


            Guardar, compilar y luego volver al editor de niveles. En el Ajustes Mundo Panel, establecer el GameMode Ignorar a MyGameMode . Ahora bien, cuando presiona el juego, nuestro jugador debe desovar.


            La posición predeterminada de la cámara es bastante malo, así que vamos a la búsqueda de Cámara en la Modos del panel y arrastre que, en.


            • Establecer la ubicación de -1130, -400, 210
            • establecer la rotación a 0, -60, 380
            • Ajuste el campo de visión a 40


              Ahora vamos a la configuración de los límites de nivel. Crear un nuevo cubo y la posición a la esquina de la plataforma.


              • Establecer el material a M_CobbleStone_Smooth


                Copia y pasado ese cubo así que tienen algo que se parece a esto. También, seleccione todas las paredes y en el panel de detalles, permite Simulación genera eventos Hit y Generar superposición Eventos .


                Dado que este juego es en la oscuridad con las luces, vamos a seleccionar el Fuente de luz y establecer el Color Light a Negro .


                Para hacer que el cielo de la noche, podemos seleccionar el Cielo Esfera .


                • Colores Desactivar determina la posición del sol
                • Establecer el sol brillo a 0,5
                • Establecer la opacidad de la nube y las estrellas de brillo a 0
                • Establecer los 4 colores a Negro

                  Después de esto, tenemos que hacer clic en la flecha hacia abajo junto a la Generar (en la barra de herramientas) y seleccione Construir Iluminación Sólo .


                  Es bastante oscuro, por lo que una forma en la que podemos ver es mediante la desactivación de la iluminación de la hora de trabajo en el nivel. En la vista, haga clic en Lit y seleccionar Apagado .


                  Arrastre en la Reproductor modelo. Establecer el Poseer Auto jugador a Reproductor 0 así que cuando presiona el juego, tenemos el control del jugador.


                  Desplazamiento del reproductor

                  Comenzaremos añadiendo en la capacidad para que el jugador movimiento. En primer lugar, vamos a crear las variables.


                  • TargetPositon (Vector)
                  • CanMove (booleano)

                    Compilar, a continuación, la CanMove valor predeterminado a true .


                    Siempre que queramos mover el jugador, tenemos que ver si vamos a pasar a una pared. Si lo estamos, entonces no se mueva. Esto se calcula en una nueva función llamada HasWallAhead .


                    • Crea un vector de entrada llamada PositionCheck
                    • Crea una salida booleana llamada CanMoveAhead (diferente de la imagen)


                      Esta función va a cambiar la posición de la caja corrector, y luego ver si es chocar con algo, la salida o no podemos seguir adelante.


                      De vuelta en el principal Evento Gráfico , que puede comenzar a configurar las entradas de movimiento. Así es como el movimiento funcionará:


                      1. Detectar entrada de teclas de movimiento (WASD)
                      2. Compruebe si podemos pasar a esa ubicación
                      3. Establecer la posición de destino a la nueva posición
                      4. Las horas extraordinarias movimiento hacia la posición de destino


                        Uso del nodo de garrapata, que se puede mover hacia la posición de destino cada cuadro enchufando que en un Mover componente Para nodo.


                        Si usted presiona el juego, usted será capaz de seguir adelante con la tecla W. Ahora vamos a seguir adelante y la configuración de las otras tres entradas de movimiento.


                        Se puede notar que podemos pasar de nuevo a pesar de que no estamos en la posición de destino todavía. Para solucionar este problema, cree un Secuencia nodo (se irán sumando más a esto es el futuro). Tener la entrada de conexión a cada una de las salidas de nodo posición de destino conjunto. Lo que queremos hacer aquí es neutralización puede mover, espera medio segundo, a continuación, volver a activar se puede mover.


                        Creación de la Progressor

                        Esto va a ser un juego en el que todo se mueve sólo cuando el jugador se mueve. Los seguidores, obstáculos, etc. Así que para que sea un buen sistema, vamos a crear un modelo base que todos los demás se heredan de.

                        Modelos carpeta, crear un nuevo modelo de tipo Actor llamada Progressor . La única cosa que queremos hacer en el interior de este modelo, es crear una nueva función llamada OnProgress .


                        Ahora que tenemos la base de todos los progresores (seguidores, cuchillas, etc.), podemos llamar a la función OnProgress cuando el jugador se mueve.

                        Reproductor modelo, crear el GetAllActorsOfClass nodo y conectar ese al nodo de secuencia.


                        • Establecer el Actor clase a la Progressor
                        • Conectar a que una de cada loopThis hará un bucle a través de cada progresores en el nivel
                        • A continuación, queremos llamar la función de cada OnProgress progresores


                          Creación de los Seguidores

                          Ahora que tenemos el sistema progresores en su lugar, vamos a crear nuestro proyecto seguidor. Esto va a ser lo que el jugador puede recoger y luego tener seguirlos. Crear un nuevo proyecto con la clase padre de Progressor . Llamarlo Seguidor .


                          • Crea una malla estática ComponentSet la malla estática a seguidor establecido los materiales a M_Brick_Clay_New y M_StatueGlassEnable simulación genera Hit EventsSet la colisión Presets a OverlapAllDynamic
                          • Crear un punto de luz con luz azul


                            A continuación, queremos crear tres variables.


                            • CanMove (booleano)
                            • TargetPosition (Vector)
                            • Target (Actor)


                              En el gráfico de eventos, lo primero que desea establecer la posición de referencia inicial cuando se inicia el juego.


                              Uso de la Tick Evento nodo, queremos hacer el movimiento del seguidor hacia la posición de destino cada fotograma (sólo si pueden moverse sin embargo).


                              Cuando el jugador se mueve, estamos llamando a OnProgress función de todos los progresores. Bueno, en el que sigue, podemos detectar cuando eso ser llamado y hacer algo. Crear el nodo OnProgress Evento . entonces tenemos que conseguir que la llamada matriz de eventos, por lo que haga clic derecho en el nodo rojo y seleccionar Añadir llamada a la función madre .


                              Finalmente, para el seguidor, tenemos que crear el , función setTarget. Esta será llamada cuando el jugador los recoge, lo que les permite seguir. Asegúrese de añadir una entrada actor para el objetivo que se va a configurar.


                              Reproductor modelo, podemos configurar la capacidad de recoger estos seguidores. En primer lugar, necesitamos algunas variables.


                              • Crear una variable de tipo seguidor llamado FollowersWe quiero que esto sea una matriz, por lo que en el panel de detalles, haga clic en el icono de la izquierda del tipo de variable y elija array
                              • Crea una variable de tipo entero llamado FollowersToCollectSet esto Instancia editable


                                Vamos a empezar por la creación de un ActorBeginOverlap Evento nodo para detectar el momento en que hemos OVERLAPPED un objeto. Entonces podemos echar eso a un seguidor.


                                A continuación, hay que comprobar si ya hemos recogido el seguidor. Si no, entonces tenemos que comprobar si este es el primer seguidor que está recogiendo.


                                Si este es el primer seguidor, a continuación, establezca su objetivo para nosotros. De lo contrario, fijar su objetivo al último seguidor en la línea.


                                Por último, queremos añadir el seguidor, a la matriz de seguidores.


                                De vuelta en el editor de niveles, arrastre en una obra de teatro seguidor y prensa!


                                Ahora puede también agregar en múltiples seguidores y comenzar una cadena!

                                Creación de la hoja

                                Como un obstáculo, podemos crear una cuchilla que se restablecerá el jugador si la tocan. Crear un nuevo proyecto con la clase padre de Progressor . Llamarlo Cuchilla .


                                • Crea una estática malla componente llamado BaseSet la Ubicación a 250, 0, 0SET la Escala a 5,0, 0,1, 0.05Set la malla para Cube
                                • Crea una estática malla componente llamado cuchilla
                                • Como hijo de la hoja, crear un componente de luz puntual


                                  En el gráfico de eventos, vamos a empezar con algunas variables.


                                  • MoveTicks (entero)
                                  • CurrentMoveTicks (entero)
                                  • StartPosition (Vector)
                                  • MovingForward (booleano)

                                    Compilar, y establecer el MoveTicks valor predeterminado a 5 .


                                    En primer lugar, vamos a tener que ajustar la posición de inicio.


                                    Las horas extraordinarias que quiere girar la hoja.


                                    Continuando con ese nodo, lo haremos por lo que los movimientos blade basados ​​en el movimiento actual garrapatas variable.


                                    El siguiente conjunto de nodos aumentará o disminuirá el movimiento actual garrapatas cada vez que se activa el evento en progreso. Esto hará que la parte posterior de la cuchilla hacia adelante y hacia atrás.


                                    Desde la segunda salida de ejecución de la secuencia, vamos a ver si la hoja ha colisionado con cualquier cosa. Si es así, reiniciar el nivel.


                                    Ahora debería ser capaz de jugar el juego y restablecer la escena al chocar con la hoja.

                                    Fin Objetivo

                                    Por último, tenemos el objetivo final. Esto nos llevará a otros niveles.

                                    Crear un nuevo proyecto de tipo Actor llama EndGoal . Crear un cubo estática de malla con una luz de este modo:


                                    A continuación, crear una nueva variable llamada LevelToGoTo . Que sea de tipo Nombre y permitir Instancia editable .


                                    Todo lo que vamos a hacer aquí, es comprobar las colisiones. Si es el jugador, vamos a comprobar para ver si tienen todos los seguidores en el nivel y si es así, abrir el siguiente nivel solicitado.


                                    De vuelta en el editor de niveles, lugar por el objetivo final y si usted tiene un nivel para ir a, introduzca el nombre en el panel de detalles.


                                    Conclusión

                                    Enhorabuena por completar el tutorial

                                    Ahora tiene la base para un juego de puzzle basado semi-turno. Como se dijo al principio, nuestro juego cuenta con un jugador que tiene que recoger un número de seguidores. Una vez recogidas, las necesidades jugador en alcanzar el objetivo final – al mismo tiempo evitar una cuchilla que frecuenta todos sus pasos. Nuestro juego cuenta todo esto y más, la mayoría de los cuales hemos logrado con el Unreal Engine de características integradas de sistema y blueprinting.

                                    A partir de aquí, se puede ampliar el juego, la adición de más niveles, mecánicos, etc. O bien, podría crear un proyecto totalmente nuevo con sus nuevos conocimientos.

                                    Lo decide, buena suerte con sus juegos futuros y esperamos que hayan disfrutado el desarrollo de un juego de puzzle con el Unreal Engine!


                                    Mensajes relacionados

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *