58
Desarrollo de Videojuego Interactivo que Estimule la Lógica de Programación a Los Estudiantes de Ingeniería de Sistemas de Primeros Semestres de la Universidad Cooperativa de Colombia Juan Camilo Muñoz Rivera Oscar Mauricio Peña Escobar Asesor: José Martín Delgado Ingeniero en Sistemas Universidad Cooperativa de Colombia Facultad de Ingenierías Programa de Ingeniería de Sistemas Bogotá, 2021

Desarrollo de Videojuego Interactivo que Estimule la

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desarrollo de Videojuego Interactivo que Estimule la

Desarrollo de Videojuego Interactivo que Estimule la Lógica de Programación

a Los Estudiantes de Ingeniería de Sistemas de Primeros Semestres de la Universidad

Cooperativa de Colombia

Juan Camilo Muñoz Rivera

Oscar Mauricio Peña Escobar

Asesor:

José Martín Delgado

Ingeniero en Sistemas

Universidad Cooperativa de Colombia

Facultad de Ingenierías

Programa de Ingeniería de Sistemas

Bogotá, 2021

Page 2: Desarrollo de Videojuego Interactivo que Estimule la

Desarrollo de Videojuego Interactivo que Estimule la Lógica de Programación

a Los Estudiantes de Ingeniería de Sistemas de Primeros Semestres de la Universidad

Cooperativa de Colombia

Juan Camilo Carrillo Rivera

Oscar Mauricio Peña Escobar

Análisis sistemático de literatura para optar al título de ingeniero de sistemas

Asesor:

José Martín Delgado

Ingeniero en Sistemas

Universidad Cooperativa de Colombia

Facultad de Ingenierías

Programa de Ingeniería de Sistemas

Bogotá D.C

Page 3: Desarrollo de Videojuego Interactivo que Estimule la

NOTA DE ACEPTACIÓN

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

PRIMERA ENTREGA

______________________________________

______________________________________

SEGUNDA ENTREGA

______________________________________

______________________________________

OBSERVACIONES

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

______________________________________

Page 4: Desarrollo de Videojuego Interactivo que Estimule la

AGRADECIMIENTOS

En primera medida queremos agradecer a Dios por darnos la fuerza salud y entendimiento al

llegar a este punto del camino. En segunda medida agradecemos a nuestros padres y personas

aledañas, quiénes han sido un apoyo fundamental para este proceso educativo y crecimiento

profesional.

Por último, queremos agradecer a cada docente que nos atribuyó conocimiento para nuestro

crecimiento profesional y en especial a nuestro tutor que nos dio su apoyo guía en cada

momento de este proyecto.

Page 5: Desarrollo de Videojuego Interactivo que Estimule la

RESUMEN

En el presente documento se plasma desde la planeación, diseño, y desarrollo de un

videojuego interactivo para estudiantes de primeros semestres de ingeniería en sistemas de

la Universidad cooperativa, esto con la finalidad de que por medio de este videojuego se

pueda enseñar de una manera didáctica los conceptos básicos de la programación por medio

de puzles sencillos.

Esta idea surge a consecuencia de la recolección de datos por medio de encuestas realizadas

a estudiantes de primeros semestres de la Universidad, en las cuales se busca determinar

porque se refleja una reducción al no optan por seguir la rama del desarrollo del software. Al

realizar un análisis detallado y una comparativa entre los estudiantes de primero y segundo

semestre de ingeniería de sistemas, se llega a conclusión que las metodologías

convencionales son un factor clave del por qué se presenta esta reducción.

Teniendo en cuenta el análisis de los datos recolectados, se opta por el desarrollo de un

videojuego en 3D en el motor Unity. En el cual, se reflejarán los conceptos básicos de la

programación yendo desde las variables, sentencias de decisión, y ciclos repetitivos. Esto con

la finalidad de que por medio de este videojuego se incentive y se muestre a los estudiantes

de primer semestre de ingeniería de sistemas de manera interactiva enseñar e incentivar el

aprendizaje de la programación.

Page 6: Desarrollo de Videojuego Interactivo que Estimule la

CONTENIDO

1. Definición del Tema a Tratar9

1.1 Antecedentes10

2. Justificación11

3. Desarrollo Organizado y Sistemático de la Revisión Bibliográfica12

3.1 Marco Teórico12

3.1.1 Algoritmo12

3.1.2 Lenguaje de programación13

3.1.3 Programación Orientada a Objetos (POO)13

3.1.4 Librerías14

3.1.5 Sentencias15

3.1.6 Variables15

3.1.7 Estructura de decisión16

3.1.8 Ciclos repetitivos16

3.1.9 Arreglos (Arrays)17

3.1.10 Juegos interactivos18

3.1.11 Puzles19

3.1.12 Programación Extrema (XP)20

3.2 Marco Conceptual24

3.2.1 Unity24

3.2.2 Adobe Mixamo25

3.2.3 Adobe Fuse25

3.2.4 C#25

3.2.5 C++25

3.2.6 MySQL25

3.2.7 Entorno Virtual de Aprendizaje25

3.3 Revisión del Estado del Arte26

3.3.1 Análisis de las herramientas Unity y Blender para el desarrollo de video juegos

con enfoque educativo26

Page 7: Desarrollo de Videojuego Interactivo que Estimule la

3.3.2 Videojuego educativo para ayudar a comprender los principios básicos de la

programación y desarrollar la habilidad lógica en niños de educación básica27

3.4 Diseño de la Solución28

3.4.1 Planificación29

3.4.1.1 Historias de Usuario29

3.4.1.2 Plan de entregas29

3.4.1.3 Plan de Iteraciones29

3.4.1.4 Reuniones diarias de seguimiento32

3.4.2 Diseño32

3.4.2.1. Simplicidad32

3.4.2.2 Manual de usuario36

4. Análisis y Discusión40

4.1 Análisis40

4.2 Discusión40

5. Recomendación41

6. Conclusiones42

Referencias43

Anexos47

Anexo 1. Encuestas realizadas a estudiantes de primer y segundo semestre de la

Universidad Cooperativa de Colombia.47

Anexo 2. Historias de Usuario54

Page 8: Desarrollo de Videojuego Interactivo que Estimule la

LISTA DE TABLAS

Tabla 129

Tabla 229

Tabla 330

Tabla 430

Tabla 530

Tabla 631

Tabla 732

LISTA DE FIGURAS

Figura 133

Figura 233

Figura 334

Figura 4¡Error! Marcador no definido.

Figura 5 ................................................................................................................................. 30

Figura 6 ................................................................................................................................. 31

Figura 7 ................................................................................................................................. 31

Page 9: Desarrollo de Videojuego Interactivo que Estimule la

1. Definición del Tema a Tratar

Para empezar, según (Fuentes Rosado & Moo Medina, 2017, pág. 1), para un

ingeniero de sistemas es obligatorio que aprenda a codificar algoritmos en algún lenguaje

de programación, sin embargo, estimular la lógica de programación no es un proceso tan

sencillo como lo es el resolver procesos matemáticos, o memorizarlos, dado a que según la

forma en la que se aplique, un problema se resolverá de distintas formas; unas más cortas

que otras.

Teniendo en cuenta que todo ingeniero debe aprender a programar, se realizó una

encuesta a los estudiantes de primer y segundo semestre de la Universidad Cooperativa de

Colombia con el fin de conocer su avance en el campo de la programación. Analizando las

respuestas, se puede evidenciar el interés por parte de los alumnos hacia los videojuegos y

mediante ellos facilitar el entendimiento sobre la programación dado a que a la mayoría de

las personas que empiezan a estudiar ingeniería de sistemas, les gustan los videojuegos.

Mediante la encuesta realizada, se da a entender que no a todos los estudiantes de la

carrera de ingeniería de sistemas se les facilita aprender a programar; todo esto es debido a

que en su camino de aprendizaje de bachillerato no se hizo énfasis en el arte de la

programación, por consiguiente se busca desarrollar un video juego, el cual será interactivo

para que los estudiantes de la Universidad Cooperativa de Colombia de primeros semestres

logren estimular su lógica y con ello se les facilite entender el flujo de la programación;

además, para los que se les dificulta programar, logren iniciar su camino en este arte sin

presentar demasiados conflictos a la hora de codificar.

Hablar del contexto “artístico” del código suena algo extraño, pero debemos

comprometernos en la búsqueda y experimentación de buenos trabajos que reflejen

el pensamiento creativo contemporáneo. Para ello debemos poder usar todas las

formas de expresión de la cultura contemporánea, y si nos preguntamos cuál es la

forma más pura del pensamiento creativo contemporáneo, pienso que es el código,

software es arte. (Barragán, 2008, pág. 5)

Por medio de este videojuego se quiere llegar a los estudiantes de primeros

semestres de la Universidad Cooperativa de Colombia por medio de puzles que, de manera

interactiva, estimulen y fortalezcan las bases del conocimiento en cuanto a la programación,

debido a que los estudiantes antes de ingresar a la universidad no se refleja un uso de algún

lenguaje de programación y dado a ello consideran la programación como un desafío.

Page 10: Desarrollo de Videojuego Interactivo que Estimule la

El videojuego interactivo permitirá que los estudiantes de primeros semestres de la

Universidad Cooperativa de Colombia fortalezcan y estimulen su lógica de programación

con el fin de que puedan tener un mejor rendimiento académico.

Mediante la técnica de los puzles se puede estimular el aprendizaje de los conceptos

que se deseen enseñar sin la necesidad de que una persona los explique, además, si se

logran entender y aplicar, los estudiantes podrán reconocer y lo que han aprendido.

(Anguas, y otros, 2006)

Para lograr desarrollar este video juego, se analizarán las diferentes mecánicas de

puzles interactivos, los cuales permitan instruir al estudiante con el fin de que desarrolle

una agilidad en la solución de problemas. Se diseñará un entorno interactivo donde el

usuario pueda reconocer los diferentes usos de las sentencias más utilizadas en el lenguaje

de programación C++. Este desarrollo de software estará basado en diferentes bloques,

enfocados en la estimulación de la lógica conforme a las sentencias básicas usadas en el

lenguaje de programación C++.

1.1 Antecedentes

Según Bill Gates, fundador, filántropo y propietario de Microsoft “para programar

solo debes aprender a sumar o restar” (Code.Org, 2013), y también teniendo en cuenta una

frase de Mark Zuckerberg programador, fundador y propietario de Facebook:

Solo creo que tienes que empezar de a poco. Ese es uno de los mayores conceptos

erróneos sobre la informática y programación en general dado a que usted tiene que

aprender este gran cuerpo de información antes de poder hacer algo. No tienes que.

(Code.Org, 2013) .

Ambos empresarios muy representativos de la informática dan importancia a la

programación. Estas opiniones justifican la importancia de saber sobre algoritmia como

principio básico y primordial para programar sistemas operativos, programas aplicativos,

redes sociales, entre otras; y aunque al principio no es fácil comprender el tema de la

algoritmia, una vez aprendido se puede aplicar a cualquier proyecto: desde un sistema

operativo con una considerable cantidad de herramientas informáticas como Microsoft

hasta una red social con usuarios comunicados entre sí a nivel internacional como

Facebook. En conclusión, la dificultad para comprender la algoritmia se puede tratar desde

la niñez y en esta etapa de la vida y de la era digital donde los juegos están presentes, se

puede aprovechar un videojuego para que los niños tengan facilidad de aprender sobre la

algoritmia de una forma creativa y divertida.

Según Steve Jobs, cofundador y presidente ejecutivo de Apple Inc., todos

deberíamos aprender a programar, ya que programar te enseña a pensar y en algunos países

como China se aprobó un plan para que niños a partir de los 6 años comiencen a estudiar

programación (Esteve, 2012). En España se realizó un estudio que determinaba que el 76%

de los alumnos entre 12 y 16 años no manejan algún lenguaje de programación.(SINC,

2016).

Y en la pregunta de saber si es necesario que todos aprendan a programar, se

determina que no es necesario saber profundamente algún lenguaje como lo es Java, C++,

php, etc., sino saber algo básico como que es un algoritmo, o la estructura básica, para así

Page 11: Desarrollo de Videojuego Interactivo que Estimule la

poder entender y aprovechar mejor las herramientas de los programas que se manejan en el

día a día.

En Colombia, el Ministerio de Tecnologías de la información y las Comunicaciones

(MinTIC) han lanzado diferentes campañas que fomentan al estudio de la programación,

una de ellas llamada “Yo puedo programar” que brinda cursos de programación gratuitos a

niños y jóvenes de 11 y 25 años, esto fue creado por Microsoft en alianza con MinTIC

(Ministerio de Tecnologías de la Información y las Comunicaciones, 2015) . En 2017 se

unió con la plataforma Platzi para la habilitación de cursos virtuales gratuitos, y se abren

cada vez más espacios que permiten enseñar a los jóvenes a interactuar con la tecnología,

para así facilitar la interacción entre el ser humano y las maquinas, generar interés por el

crecimiento tecnológico e igualar conocimientos. (Ministerio de Tecnologías de la

Información y las Comunicaciones, 2017)

2. Justificación

Conforme a los resultados obtenidos de las encuestas realizadas a los alumnos de

primer y segundo semestre de la Universidad Cooperativa de Colombia (Anexo 1Anexo 1,

se puede dar a entender que el 58,8% de los estudiantes de primer semestre no han

manejado un lenguaje de programación antes de entrar a estudiar la carrera, dado a esto, un

70,6% de los estudiantes consideran la programación como un reto dentro de la carrera

profesional, sin embargo este campo es al que más de la mitad de los estudiantes le llama la

atención con un 52,9%.

Dado a que al 43,5% de los estudiantes de segundo semestre de ingeniería de

sistemas de la Universidad Cooperativa de Colombia les parece regular la metodología de

aprendizaje en el campo de programación, un 39,1% considera la programación como una

materia que le generará dificultades en el transcurso de la carrera; este porcentaje a

comparación con el que se encuestó a los estudiantes de primer semestre de ingeniería de

sistemas, tiene un incremento considerable, ya que ningún estudiante de primer semestre de

ingeniería de sistemas considera la programación como un impedimento.

En cuanto la encuesta expuesta a los estudiantes de 1° y 2° semestre de ingeniería

de sistemas, la cual señala porque medio les gustaría prender a programar, se presenta un

incremento de estudiantes interesados en el aprendizaje por medio de un videojuego; se

puede evidenciar un aumento por parte de los estudiantes de 2° semestre a comparación con

los de 1° semestre. Basado en este interés y a que a mayoría de estudiantes les gustan los

videojuegos, se propone desarrollar un software el cual estimulará la lógica de

programación de los estudiantes de primer y segundo semestre la carrera de ingeniería de

sistemas de la Universidad Cooperativa de Colombia. Esto con el fin de dar a conocer un

software que incite al estudiante a estimular su lógica de programación por medio de

puzles, dado que en la evidencia expuesta por medio de encuestas se da a entender que los

estudiantes de 2° semestre presentan dificultad en lo relacionado a la programación.

Además de beneficiar a los estudiantes, dará a la universidad una herramienta propia de

apoyo en la formación profesional de sus estudiantes.

Page 12: Desarrollo de Videojuego Interactivo que Estimule la

3. Desarrollo Organizado y Sistemático de la Revisión Bibliográfica

3.1 Marco Teórico

3.1.1 Algoritmo

El algoritmo es lo que siempre está presente en todo programa de computación, dado

que y según Francisco Noguera y Daniel Terren como muchos otros artículos y libros señalan

“los algoritmos son el resultado de aplicar el razonamiento a un problema: los pasos que hay

que seguir para resolver una situación en concreto.” (2013, pág. 115). Además, un algoritmo

no solo tiene el propósito de solucionar un problema en concreto, sino que puede llegar a

solucionar más de uno, cómo se puede expresar:

Un algoritmo constituye una lista bien definida, ordenada y finita de operaciones,

que permite encontrar la solución a un problema determinado. Dado un estado inicial

y una entrada, es a través de pasos sucesivos y bien definidos que se llega a un estado

final, en el que se obtiene una solución o varias. (Juganaru, Introducción a la

programación , 2014, pág. 2)

Los algoritmos son un aporte clave y primordial en el desarrollo de todo proyecto

enfocado al software, como es en nuestro caso. Los algoritmos deben ser de carácter preciso,

esto quiere decir que no importa que tanto se ejecute, siempre debe dar el mismo resultado.

Son finitos esto quiere decir, debe terminar en algún momento. (Vásquez, s.f.).

Entre las categorías que abarcan los algoritmos se encuentran los secuenciales,

condicionales y repetitivos. Estos, se pueden representar a su vez de dos maneras, ya sean de

carácter cualitativo o cuantitativo. Los algoritmos son vistos en la vida cotidiana, no importa

el idioma siempre tiene el fin de expresar una serie de pasos para un fin. Como lo hace notar

Vásquez en una de líneas de texto “Una receta de un plato de cocina se puede expresar en

español, inglés o francés, pero cualquiera sea el lenguaje los pasos para la elaboración del

plato se realizarán sin importar el cocinero.”. (salas, 2003).

Page 13: Desarrollo de Videojuego Interactivo que Estimule la

3.1.2 Lenguaje de programación

Un lenguaje de programación es un lenguaje computacional que lo conforma un

conjunto de órdenes que trabajan al unísono, para el procesamiento de acciones consecutivas,

algoritmos y datos. Como define Enrique Quero en su libro: “Son conjunto de ordenes

(instrucciones y sentencias) diseñados y creados a través del razonamiento lógico y

almacenados en ficheros, respetando la sintaxis de un determinado lenguaje de

programación.” (2002, pág. 2). Estos programas tienen el fin de controlar el comportamiento

ya sea, físico o lógico de un software o una máquina. Todo lenguaje de programación tiene

a su disposición diferentes variables, métodos y funciones definidas por defecto, las cuales

facilitarán la formación de la estructura que llevará un orden lógico. Dado que las

computadoras poseen un lenguaje de máquina propio y al poseer nosotros un programa

escrito en lenguaje de programación, esto nos facilita la comunicación de los ordenadores.

Dado como se muestra en las siguientes líneas:

Los lenguajes de programación nos facilitan la comunicación con los ordenadores, ya

que nos ahorran tener que saber escribir código máquina. Éste es muy complejo y

tiene más en cuenta la estructura y la arquitectura del ordenador que el tipo de

problema que se tiene que resolver. (Javier Francisco Otera Noguera, 2013, pág. 29)

Un lenguaje de programación, el cual, a su vez, está definido por su sintaxis, que

establece e indica las reglas de escritura (la gramática), y por la semántica de los

tipos de datos, instrucciones, definiciones, y todos los otros elementos que

constituyen un programa. Un lenguaje de programación es un caso particular del

lenguaje informático; este último permite hacer programas, pero también describir

datos, configuraciones físicas y protocolos de comunicación entre equipos y

programas. (Juganaru, 2014, pág. 5)

De esta manera y por medio de los lenguajes de programación podemos hoy en día

crear software útil para la sociedad, desde videojuegos, aplicaciones web, API’s, entre otras.

Gracias a los lenguajes de programación nos brinda la oportunidad de desarrollar e innovar

nuevas tecnologías para el bien de personas o compañías.

3.1.3 Programación Orientada a Objetos (POO)

La programación orientada a objetos es conocida por ser uno de los paradigmas de la

programación en la cual se pueden modular partes del código de un proyecto. Nace con la

necesidad de la reutilización de código y la disminución de tiempo en el desarrollo de

software que a diferencia con la programación estructural. Como se puede plantear a

continuación: “La programación orientada a objetos es una de las técnicas más modernas que

trata de disminuir el coste del software, aumentando la eficiencia en la programación y

reduciendo el tiempo necesario para el desarrollo de una aplicación.” (Sierra, 2007). La

programación orientada a objetos tiene también como fin la maquetación o estructuración de

objetos físicos de uso cotidiano, llevándolo a lo digital. Estos se expresan por medio de

bloques, que encierran las características y las funciones que realizan.

Page 14: Desarrollo de Videojuego Interactivo que Estimule la

Un objeto representa un concepto dentro de un programa y tiene la información

necesaria para abstraerlo: los datos que describen su estado y las operaciones que

pueden modificar este y determinan las capacidades del objeto. Los objetos tienen

un tiempo de vida (existen mientras está en ejecución el programa) y un

comportamiento, en el que los programas interactúan con los objetos mediante

interfaces de otros objetos. (López, 2014, pág. 105)

Una clase es una plantilla para crear objetos que constituye una abstracción del

mundo real, como la clase Burro, la clase persona, la clase cuenta, etcétera. Las

clases se nombran sustantivos en singular y poseen variables que definen la

información que se desea almacenar y métodos que definen las acciones que se

desean realizar. Las variables se nombran sustantivos y los métodos como verbos en

infinitivo. (Oviedo, 2015, pág. 207)

La programación orientada a objetos hoy en día es uno de los paradigmas más

utilizado ya que como se mencionó anteriormente nos ahorra tiempo a la hora de escribir

código. Además, nos permite la reutilización de este y no sigue una secuencia estructural,

sino que todo está encapsulado por medio de módulos (clases) para de esta manera poder

usarse en cualquier lugar sin seguir una secuencia explícita en la estructura del código.

También hay que resaltar que la programación orientada a objetos tiene un mayor grado de

dificultad a comparación con la programación estructural.

3.1.4 Librerías

Las bibliotecas o librerías nos proporcionan acceso a elementos de mucha

importancia en los lenguajes de programación. Estas librerías se encuentran en diversos

lenguajes como por ejemplo C++. Al contar con un cierto número de módulos en su interior

con funciones y procedimientos que son útiles a la hora de programar. Dando el chance de

ser usadas en cualquier momento, esto quiere decir que podemos reutilizar la librería

cuantas veces queramos sin necesidad de volver a escribir código. Cada librería en su

interior posee un cierto contenido de funciones las cuales son usadas dependiendo el tema

en específico, ya sea de carácter matemático, gráfico, salida o entrada, etc. Así lo afirma en

su libro Jordi Gómez y compañía: “Las bibliotecas de funciones nos proporcionan el acceso

a elementos muy importantes para la implementación de cualquier programa como pueden

ser los que nos permiten realizar entradas (por el teclado) y salida (por la pantalla),

operaciones, matemáticas, etc.” (Pere-Pau Vazquesz Alcocer, 2006, pág. 51).

Existen dos tipos de librerías las estáticas y las definidas por el programador. Las

estáticas, son las librerías que facilitan la programación, desde permitir el acceso de

periféricos físicos, modos gráficos, procesos matemáticos, etc. Las librerías fijas son

aquellas que son creadas por el desarrollador. Toda librería tiene un nombre que lo

identifica de las demás y disponen de diferentes tipos:

Librerías en código fuente: Vienen escritos en el lenguaje de programación usado.

Page 15: Desarrollo de Videojuego Interactivo que Estimule la

Librerías compiladas: Son maduros objetos de la librería con el programa ya

compilado.

Librerías Dinámicas: Estas librerías son las que se encuentran el sistema operativo

Windows, son completamente independientes del programa.

Dependiendo de lo que se quiera realizar en un programa se pueden usar este tipo de

librerías o inclusive pueden ser creadas por los mismos usuarios. Cómo lo resalta Luisa

Villar y compañía:

Las librerías pueden ser creadas por usuarios o pueden venir definidas en las

herramientas que usamos para programar. Las librerías no incluyen un programa

simplemente deben hacer referencia al traductor para que se incluya dicha librería y de esta

manera puedan ser usadas sus funciones directamente (Luisa Garzón Villar, 2004, pág.

188).

3.1.5 Sentencias

Todo lenguaje de programación abarca en la serie lenguaje que posee unas

determinadas reglas por defecto, ya que por medio de esta se pueda teclear en lenguaje

natural, la lógica que interpretará el computador. Los lenguajes de programación tienen

desde sentencia de escritura, lectura, asignación de variables, estructura de decisión,

estructuras de repetición, etc.

3.1.6 Variables

Dado que las personas no pueden entender el lenguaje de máquina surgieron los

lenguajes de programación y con esto se desarrollaron las variables. Las variables son un

medio por el cual el ser humano puede asignar una porción de memoria en la cual se desea

almacenar información: “Como nosotros los humanos no manejamos la información de la

misma forma de los computadores, preferimos asignar etiquetas a la parte de la memoria

donde queremos guardar información y a estas etiquetas le llamamos variables.” (Razif,

2016).

Las variables dependientes del lenguaje de programación pueda que se declaren de

diferente manera, pero su significado en general siempre va a especificar lo mismo. Se

pueden encontrar desde variables de tipo entero, carácter, boolean, Strings, double, float,

constantes, etc.

Tipos de variables básicas:

Enteras: Al declarar un tipo este tipo de variable se guardará un número entero

Carácter: Esta variable este tipo de variable almacenará en su interior caracteres

(letras, Símbolos especiales, etc.).

Boolean: Este tipo de variable almacena sólo dos posibles valores el 1 y el 0

Double: Este tipo de variable almacena en su interior el número decimal de mayor

tamaño.

Float: Esta variable en su interior almacena el número decimal.

Constantes: Estas se caracterizan porque al declararse una variable con un dato en

específico, no se puede alterar, siempre tendrá el mismo valor declarado en un principio.

Hay que tener presente que cada variable al ocupar un espacio memoria ocupa cierta

cantidad de bytes. Además, cada variable tiene un límite de almacenamiento de bytes. “Una

Page 16: Desarrollo de Videojuego Interactivo que Estimule la

variable sin importar el lenguaje de programación, es un espacio de memoria que contiene

un valor una variable tiene un nombre que se utiliza en la programación para hacer

referencia a un espacio de memoria en particular” (Arias, 2004, pág. 20).

3.1.7 Estructura de decisión

La estructura de decisión o estructura condicional es aquella que ejecuta una acción

de acuerdo con el valor asignado con anterioridad. De acuerdo este valor asignado puede

tomar dos posibles caminos. Este tipo de estructura está presente en todo lenguaje de

programación dado que es uno de los básicos y de mucha utilidad a la hora de asignar un

valor dado si toma un valor diferente al esperado.

Esta estructura decisión se puede declarar por medio del if y else. En algunos lenguajes de

programación podemos encontrar este esta estructura decisión más comprimida como en el

caso de PHP.

Si se encuentra que la condición es diferente de 0 entonces ejecutar la acción y

luego sigue con la próxima instrucción en el programa se encuentra que las

condiciones 0 no ejecuta la acción y sigue con la próxima instrucción en el

programa. (Santamaria, 1991, pág. 60)

Esta estructura condicional evalúa el dato entrante y al evaluarlo por medio del

asignado en dicha condición. Esta evaluará por cuál camino o ruta Cumple con dicha

sentencia. Esta sentencia también puede contar en su interior con otra sentencia, que son

conocidas como condicionales anidados. En las cuales se puede definir sí se cumple una

condición eso conllevaría a tomar otra decisión. Como lo expresa Becerra en su libro: “Las

instrucciones que se considera son controladas por un if, pueden incluir otras instrucciones

if en este caso se dice que las instrucciones if anidadas son una condición inicial que en su

interior posee otras posibles condiciones” (Santamaria, 1991, pág. 73).

Estructuras condicionales son una parte importante a la hora de programar van

desde la estructura simple del “if else” hasta las condicionales anidadas. También podemos

encontrar en múltiples lenguajes de programación, como el denominado “switch case”. El

switch case, es la parte simplificada del if anidado. Esto nos puede garantizar una mayor

facilidad a la hora de declarar múltiples condicionales y además de esto nos permite ahorrar

memoria a comparación con el if anidado. “El switch case nos permite seleccionar una

opción entre un conjunto de opciones de acuerdo el valor de algún parámetro” (Santamaria,

1991, pág. 79).

3.1.8 Ciclos repetitivos

Las estructuras repetitivas tienen la función repetir una condición n veces hasta que

se cumpla lo declarado. A esta repetición se le conoce como bucle y está presente en 3 tipos

de estructuras repetitivas while, do-while y For: “Estas estructuras de control o sentencia

repetitivas controlan el número de veces que una sentencia o lista de sentencias se ejecutan”

Page 17: Desarrollo de Videojuego Interactivo que Estimule la

(Zahonero Ignacio Martinez, 2005, pág. 195). Estas 3 estructuras repetitivas poseen la

misma calidad anteriormente mencionada, pero a la hora de usarse se debe declarar de una

forma específico. Por ejemplo, la estructura do-while al declararse una sentencia, puede que

se ejecute una o más veces dependiendo de la decisión que tome internamente la máquina.

La diferencia de esta estructura con el For y el while radica en que, si la condición

no se cumple desde un primer momento, el buque se habrá ejecutado una sola vez,

es decir en la estructura do while el bucle se puede ejecutar una o más veces

(Didact, 2005, pág. 35)

Las estructuras repetitivas con los ciclos repetitivos son estructuras fundamentales y

básicas en la incursión de cualquier tipo de lenguaje de programación. Hoy día se han

añadido ciclos de sintaxis más corta, pero que cumplen con el mismo fin. Estos ciclos como

por ejemplo en los lenguajes javascript y PHP, se incluyen una estructura denotada como

Foreach y for in.

3.1.9 Arreglos (Arrays)

Un arreglo o array, es aquel que puede guardar en su interior cierta cantidad de

datos según se le defina su tamaño estos datos almacenados pueden ser de carácter entero

decimal y flotante. Los arreglos se caracterizan debido a que en cada índice se puede

ocupar un dato en memoria, comenzando desde la posición 0 hasta la posición n. Estos son

usados y se catalogan en dos tipos de arreglo unidimensional y arreglo bidimensional. “Un

array se declara de modo similar a otros tipos de datos excepto que se puede indicar al

compilador el tamaño y longitud del array” (C algoritmos, 2005, pág. 137). Existen dos

tipos de arreglos los unidimensionales y los multidimensionales:

Arreglos unidimensionales: Estos arreglos son los básicos en programación dado

que se caracterizan por poseer un solo índice, estos arreglos son similares a los vectores

usados en matemáticas dados que solo poseen una dimensión. Ejemplo: Vectores.

Arreglos bidimensionales: Estos arreglos se caracterizan porque en cada elemento

en su interior está ubicada en una fila y una columna, esto quiere decir, cada elemento tiene

una posición que se identifica mediante dos índices la fila y la columna. Comenzando desde

el índice 0,0 hasta finalizar en el índice n,n dependiendo del tamaño definido. Ejemplo:

Matrices.

En definitiva, los arreglos un unidimensionales y bidimensionales son una parte

esencial en la programación para principiantes dado que esta unidad comienzo a que las

personas interactúen en cómo funcionan los espacios de memoria en un programa:

Un arreglo unidimensional posee un nombre (un identificador), un tipo y una

dimensión. El nombre de un arreglo es un identificador del programa, el cual debe ser el

único al interior del bloque de definición. El tipo, por su parte, es un tipo escalar estándar,

un tipo apuntador o cualquier otro tipo definido por el programador; en este caso, se

excluye el tipo void. La dimensión es un número entero positivo que indica el tamaño del

arreglo. (Juganaru, 2014, pág. 148)

Page 18: Desarrollo de Videojuego Interactivo que Estimule la

Un array bidimensional (tabla o matriz) es un array con dos índices, al igual que los

vectores que deben ser ordinales. Para localizar o almacenar un valor en el array se deben

especificar dos posiciones (dos subíndices), uno para la fila y otro para la columna.

(Joyanes, 2006, pág. 365).

Para finalizar los arreglos con esenciales para todo programador, ya que con estos

nos evitan el declarar muchas variables. En vez de esto con sólo una variable podemos

ingresar datos en una posición diferente. En la actualidad ya hay lenguajes de programación

como por ejemplo Python, el cual permite que se almacenen valores mixtos dentro de los

arreglos, esto quiere decir enteros y de tipo carácter.

3.1.10 Juegos interactivos

Los juegos interactivos son aquellas actividades universales que se caracterizan por

su singularidad a la contribución del desarrollo social, cognitivo y afectivo de las personas.

Los juegos interactivos desarrollan en niños y personas jóvenes desde habilidades de

comunicación, procesamiento al interpretar información.

La obra y la interacción con los juegos permiten que el niño aprenda reglas y

acciones impulsivas por placer. De este modo, los juegos actúan para él como

elementos mediadores entre el conocimiento ya cristalizado, construido, presente en

el nivel de desarrollo real, y las posibilidades y potencialidades existentes en la

Zona de Desarrollo Proximal (ZDP). (Gama, 2017, pág. 24).

Cómo se ha escrito con anterioridad los autores les quieren expresar qué gracias a la

interacción con los juegos, se permite que los niños aprendan reglas, se impulse su

desarrollo cognitivo, lingüístico y psicomotriz qué le será de gran ayuda a medida que vaya

creciendo. Los juegos interactivos también permiten que las personas y niños, adquieran

una mejor comprensión y atención a lo que le rodea, en el ámbito escolar o social (Garcia,

2020) . Por esta razón la importancia de los videojuegos en el desarrollo de niños es

importante dado que por medio de estos aprenden de forma interactiva.

Por esa razón, actualmente los videojuegos son una fuente de reconocimiento dado

que en estos se pueden inculcar ya sea desde historias, hechos científicos para fomentar la

imaginación e impulsar el desarrollo y el interés propio hacia un tema en particular:

Los videojuegos como una compleja mezcla de tecnología arte y narrativa en la que

se desarrollan integran elementos interactivos de diseño arte gráfico-música y calidad

industrial. Además, es la combinación que permite que a comienzos del siglo 21 los vídeos

del proyecto como un sector relevante dentro de la industria cultural promoviendo un solo

interés por parte de consumidores y empresas y 9 personas de las áreas académicas y de

investigación (Ángel Torres-Toukoumidis, 2010, pág. 20).

Como sea es expresado en citaciones anteriores, los videojuegos son parte cultural

actual del mundo. Dado que ya no son sólo una fuente de entretenimiento sino una fuente

Page 19: Desarrollo de Videojuego Interactivo que Estimule la

educativa que además impulsa el desarrollo de diferentes destrezas humanas en los jóvenes

y niños de la actualidad. Ya que ahora estamos rodeados de medios tecnológicos, los

videojuegos ahora son un medio de aprendizaje moderno dejando atrás las antiguas

metodologías de aprendizaje.

3.1.11 Puzles

Los puzles son una forma de entretenimiento el cual su objetivo principal es

resolver una serie de acertijos, rompecabezas o pequeños juegos de habilidad qué

fortalezcan el desarrollo cognitivo en niños y en personas. Además, estos puzles ofrecen el

desarrollo lógico, psicomotriz y de memoria. Existen algunos puzles que se caracterizan por

ser juegos de habilidad y acción los cuales se caracterizan por resolverse a un ritmo muy

rápido que conlleva a la capacidad de respuesta y reflejos de forma más ágil. Existen otro

tipo de puzles que no conllevan una rápida acción de juegos, sino que su finalidad está más

enfocada a la reflexión y al pensar de manera más consciente.

Los puzles son videojuegos basados principalmente en acertijos, rompecabezas, y

pequeños juegos de habilidad. Estos juegos suelen tener una única solución válida por lo

que el campo de posibilidades de actuación creativa del jugador se ve muy reducido. Sin

embargo, es interesante comprobar cómo el reto y la curiosidad por descubrir la solución

actúan como un aliciente para aprender y promueven el aprendizaje (Morales, 2015, pág.

96).

La primera entrega de estos juegos de aprendizaje se remonta al uso de piezas

plásticas, madera o papel. Los cuales se caracterizan por poseer una forma singular con las

cuales encajan entre sí. El objetivo principal de este tipo de juegos es que por medio de

estas figuras se armara otra figura más grande que la que se conformaba. Principalmente

estos juegos eran usados por niños de temprana edad, pero al pasar de los tiempos esta

metodología de juegos de aprendizaje se ha inculcado en diversos videojuegos como, por

ejemplo: Tetris y Dr Mario. Estos juegos son muy populares dado que tiene la

denominación de ser de lógica e inteligencia, en la cual exige a los jugadores ejercer una

gran agilidad mental y motriz. Entre los diferentes desafíos qué presentan dichos puzles,

pueden ir desde problemas matemáticos, lógicos e incluso reconocimiento de patrones.

Conocido lo anterior y citando a Agustín Marrero estos puzles no sólo desarrollan

habilidades en niños, sino que además como comenta en su libro, es una estrategia para el

aprendizaje de estudiantes de ingeniería dado que como él resalta la principal falencia de

los jóvenes al embarcarse en la programación es la falta de un pensamiento estructural.

Además, por medio de estos puzles permitirá la mejora de habilidades matemáticas y la

resolución ante problemas.

La metodología de aprendizaje basado en puzles tiene como objetivo el fomentar en

estudiantes de ingeniería e ingeniería informática, el pensar en cómo estructurar y resolver

problemas que normalmente no se encuentran en los libros de texto tradicionales en la

Page 20: Desarrollo de Videojuego Interactivo que Estimule la

materia. El objetivo es motivar al estudiante mientras se incrementa sus habilidades

matemáticas y de resolución de problemas mediante la discusión de una variedad de

problemas de la materia expresados en forma de puzles y sus estrategias de solución. (Darias,

2014, pág. 193).

Por medio de puzles no sólo podemos llegar a las estudiantes de ingeniería, sino que

además podemos fomentar a la demás población a él desarrollo de un pensamiento

estructural. Dado que cómo se nombró con anterioridad los puzles sirven para desarrollar

muchas habilidades cognitivas que posee el ser humano pero que no se han pulido o

descubierto.

3.1.12 Programación Extrema (XP)

Más conocida como “Extreme Programming”, es una metodología ágil la cual se

basa en la simplicidad y agilidad para realizar un proyecto, el cual puede ser realizado por 2

personas o más:

La metodología XP define cuatro variables para cualquier proyecto de

software: costo, tiempo, calidad y alcance. Además, se especifica que, de

estas cuatro variables, sólo tres de ellas podrán ser fijadas arbitrariamente

por actores externos al grupo de desarrolladores (clientes y jefes de

proyecto). El valor de la variable restante podrá ser establecido por el equipo

de desarrollo, en función de los valores de las otras tres. Este mecanismo

indica que, por ejemplo, si el cliente establece el alcance y la calidad, y el

jefe de proyecto el precio, el grupo de desarrollo tendrá libertad para

determinar el tiempo que durará el proyecto. (Joskowicz, 2008, pág. 7).

3.1.12.1 Valores

XP maneja 4 valores los cuales deben tenerse presente a la hora de realizar el

proyecto para que este tenga éxito:

Comunicación: En todo ámbito la comunicación es un factor bastante importante

ya que, por medio de esta, se intercambia o comparte información y por ello los procesos se

vuelven más claros. En XP es un valor esencial debido a que todo el equipo de trabajo debe

mantenerse informado conforme a las decisiones del cliente ya que pueden suceder cambios

en el modelo del proyecto.

Simplicidad: Todos los procesos deben ser entendibles en el proyecto y por ello se

debe realizar de la forma más sencilla, para que todos entiendan ya sean los procesos o el

código.

Page 21: Desarrollo de Videojuego Interactivo que Estimule la

Retroalimentación: Esta debe ser permanente debido a que el cliente es el que la

debe brindar con el fin de tomar decisiones para las próximas iteraciones sobre el proyecto

y para cerciorarse del cumplimiento de sus necesidades.

Coraje: Se deben tomar decisiones conforme a los procesos del proyecto así se

tengan pérdidas ya que, si es necesario el cambio, se tiene que generar.

3.1.12.2 Ciclo de vida de Software en XP

XP propone desarrollar un ciclo de vida de software dinámico dado a que, en la

mayoría de los casos, al inicio del proyecto, los clientes no determinan la totalidad de los

requerimientos del proyecto. Por esa razón, XP maneja ciclos de desarrollo cortos

denominados iteraciones, esto con el fin de que en cada iteración se realice un análisis,

diseño, desarrollo y pruebas las cuales debe cumplir con los estándares de la metodología

(Joskowicz, 2008).

En XP se maneja la fase de exploración que es la que fija el alcance del proyecto,

las necesidades del cliente las cuales son plasmadas en las historias de usuario con el fin de

que se obtenga un tiempo estimado sobre el desarrollo de estas; el objetivo de esta fase es

definir una visión del proyecto. Luego de esta fase, viene la fase de planificación, en ella se

realizan reuniones con todos los integrantes del proyecto se reúnen con el fin de acordar un

orden de entrega conforme a las historias de usuario, su objetivo es formar el plan de

entregas o “Release Plan.” Finalmente, viene la fase de iteraciones, las cual se basan en el

desarrollo y las pruebas funcionales de las historias de usuario de acuerdo al orden

establecido (Rivera Meza, 2017).

Un proyecto se inicia con una fase de exploración donde se sientan las bases

para que sea exitoso su desarrollo. El plan de entrega a seguir es concebido durante

la planificación, con la participación del cliente y los desarrolladores. A

continuación, tienen lugar una serie de iteraciones que no concluyen hasta obtener

una primera versión del sistema, o una primera entrega que es lo mismo. (Ramírez,

2008, pág. 3)

3.1.12.3 Planificación

La planificación es la fase donde el cliente desarrolla las historias de usuario, el plan

de entregas, el plan de iteraciones y las reuniones diarias de seguimiento con el equipo del

proyecto, esto con el fin de darle una visión a corto, mediano y largo plazo al mismo.

Page 22: Desarrollo de Videojuego Interactivo que Estimule la

3.1.12.3.1 Historias de Usuario

Son documentos que sustituyen a los casos de uso debido a que son descripciones

realizadas por parte del cliente las cuales brindan la información y el comportamiento que

debe tener el sistema de forma funcional. Mediante esta, los desarrolladores deberán

estimar el tiempo de desarrollo de lo que el cliente solicite (Joskowicz, 2008, pág. 10). El

valor de comunicación es muy importante en el desarrollo de las historias, ya que cuando se

empiecen a desarrollar, el desarrollador debe tener comunicación constante con el cliente

para que le brinde los detalles de lo que se desea hacer.

3.1.12.3.2 Plan de Entregas (Release Plan)

Es un cronograma donde el cliente planificará las iteraciones del proyecto conforme

a las historias de usuario y su complejidad; este deberá ser estudiado por el cliente, el

equipo de gestión y el equipo de desarrollo ya que en este se estimará el tiempo y cualquier

dato que no se cumpla en el tiempo establecido, afectará el rendimiento del proyecto. Es

recomendable realizar varias iteraciones dado a que en caso de que se genere un error,

habrá tiempo para resolverlo en alguna de estas iteraciones (Ferrer, 2002, pág. 4).

3.1.12.3.3 Plan de Iteraciones (Iteration Plan)

En XP un ciclo de iteración es la planificación del orden en el que se ejecutará el

desarrollo de cada historia de usuario, esta planificación se debe dar al comienzo del ciclo.

Estas historias de usuario irán relacionadas con una iteración escalada por prioridad, en esta

iteración se adjuntarán las historias de usuario que no han sido aprobadas en iteraciones

anteriores. Al final de un ciclo de iteración, todas las historias de usuario deben ser

probadas con el fin de que cumplan con los criterios de aceptación del cliente y no afecte el

desarrollo de ciclos anteriores.

Según (Joskowicz, 2008), las pruebas de aceptación que fallen en un ciclo anterior

deben ser analizadas para generar su corrección para que así se garantice que no vuelvan a

fallar.

3.1.12.3.4 Reuniones Diarias de Seguimiento (Stand-Up-Meeting)

Son reuniones que se realizan con el fin de que se mantenga una comunicación

grupal en la cual se compartan problemas y soluciones (Echeverry Tobón & Delgado

Carmona, 2007, pág. 33).

Ya depende de la estructura del proyecto la forma de realizarla, ya sea online o presencial.

3.1.12.4 Diseño

XP se apoya en su valor de la simplicidad al realizar el diseño, los conceptos que

sobresalen de este diseño a parte de la simplicidad son las soluciones puntuales (Spike

Solution), recodificación y las metáforas.

3.1.12.4.1 Simplicidad

En el diseño, la simplicidad se plasma al realizar un diseño de un modelo sencillo

pero que cumpla con los requerimientos del cliente.

Page 23: Desarrollo de Videojuego Interactivo que Estimule la

3.1.12.4.2 Soluciones Puntuales (Spike Solution)

Cuando el equipo se enfrenta a un problema de diseño o implementación conforme

a una historia de usuario, el equipo podrá acudir a la herramienta de soluciones puntuales,

esta herramienta es una pequeña aplicación con la cual se intentará explorar el programa

para validar el grado de dificultad de la solución para así encontrarla (Echeverry Tobón &

Delgado Carmona, 2007, pág. 37).

3.1.12.4.3 Recodificación

Cuando se termina de escribir el código de un programa, es recomendable volverlo

a codificar de una forma más clara si es posible. XP sugiere recodificarlo para que cada vez

que se realice este proceso, el código será más fácil de entender, más eficiente y se acople a

la lógica de negocio que se implementará en el programa (Joskowicz, 2008, pág. 12).

3.1.12.4.4 Metáforas

El equipo debe plasmar la arquitectura del sistema en una “historia” con la cual el

grupo de desarrollo tenga una visión sobre el proyecto para que así se acoplen a este y

puedan reconocer los aspectos más importantes del sistema (Echeverry Tobón & Delgado

Carmona, 2007, pág. 37).

3.1.12.5 Desarrollo del Código

El código al igual que el diseño debe ser entendible y claro para todo el

equipo. Para el desarrollo es crucial contar con la disponibilidad del cliente, el uso de

estándares, la programación dirigida por las pruebas, la programación en pares, las

integraciones permanentes, la propiedad colectiva del código y el ritmo sostenido.

3.1.12.5.1 Disponibilidad del Cliente

XP requiere al cliente como parte del grupo del proyecto y que este tenga la

disponibilidad para cuando se requiera; el cliente es primordial para que un proyecto se

pueda llevar a cabo mediante la metodología XP. Cuando el proyecto inicial, el cliente es el

que debe brindar las historias de usuario; sin embargo, al no ser tan precisas para su

desarrollo, el cliente debe brindar los detalles necesarios a los desarrolladores para que se

pueda codificar lo que el cliente necesita y así evitar inconformidades a futuro y

desperdicio de tiempo con solicitudes de mejora (Joskowicz, 2008, pág. 13).

3.1.12.5.2 Uso de Estándares

Se requiere el uso de estándares para que el código sea entendible y más fácil de

recodificar.

3.1.12.5.3 Programación Dirigida por las Pruebas (Test-Driven-Programming)

XP propone realizar un desarrollo de código con base a pruebas unitarias, esto con

el fin de que se tengan todos los posibles errores controlados aplicando buenas prácticas y

así generar bloques de código limpios.

Page 24: Desarrollo de Videojuego Interactivo que Estimule la

3.1.12.5.4 Programación en Pares

El desarrollo de parejas en XP aplica el valor de la comunicación, ya que hay una

mayor interacción entre los desarrolladores y se logra un mejor ambiente laboral, una mejor

productividad y cada desarrollador adquiere conocimiento de su pareja:

XP propone que se desarrolle en pares de programadores, ambos trabajando

juntos en un mismo ordenador. Si bien parece que ésta práctica duplica el

tiempo asignado al proyecto (y, por ende, los costos en recursos humanos),

al trabajar en pares se minimizan los errores y se logran mejores diseños,

compensando la inversión en horas. El producto obtenido es por lo general

de mejor calidad que cuando el desarrollo se realiza por programadores

individuales. (Joskowicz, 2008, pág. 13).

3.1.12.5.5 Integraciones Permanentes

Se debe trabajar mediante un sistema de control de versiones para que los

desarrolladores siempre desarrollen sobre la versión actual del sistema la cual no contenga

errores. XP propone que solo una pareja de desarrolladores debe integrar al mismo tiempo.

3.1.12.5.6 Propiedad Colectiva del Código

Todo el equipo de XP tiene la potestad de cambiar el código si es necesario, así

como realizar una mejora o una recodificación, esto con el fin de que el código cada vez sea

más sencillo y que el equipo se apropie de todo el código y lo pueda modificar en caso de

ver oportunidades de mejora. Hay que aclarar que estos cambios deben cumplir con lo

requerido por el cliente. (Joskowicz, 2008, pág. 14).

3.2 Marco Conceptual

3.2.1 Unity

Unity es un motor gráfico 2D, 3D gratuito el cuál se opera mediante el lenguaje de

programación C#. Por medio del enfoque que se quiera dar, se pueden desarrollar

aplicaciones interactivas, video juegos y animaciones en 2D o 3D. Además, las assets store

de unity, proporcionan una amplia variedad de modelados y texturas gratuitos que facilitan

la implementación en ambientes en videojuegos.

Unity se estructura mediante el manejo y la creación de escenas para el desarrollo de

la aplicación deseada, una escena puede ser cualquier parte del juego o la

animación, ya sea un nivel del juego o un área determinada. Se empieza con un

espacio en blanco en el cual se puede dar forma a todo lo que se desee crear usando

las herramientas de Unity. Este motor de Unity incluye además un editor de

terrenos, donde se puede esculpir la forma del terreno usando las herramientas

Page 25: Desarrollo de Videojuego Interactivo que Estimule la

visuales que ofrece Unity, se puede pintar, texturizar, añadir hierba, colocar árboles

o similares, o inclusive se permite la importación de otros materiales provenientes

de otros motores de desarrollo. (Cerón Cardona & Bedoya Herrera, 2017).

3.2.2 Adobe Mixamo

Mixamo es una página web la cual permite crear o editar animaciones para

personajes 3D creados en otros programas. Con el fin de que se puedan descargar y utilizar

en algún motor gráfico (Adobe, 2019) .

3.2.3 Adobe Fuse

Fuse es un programa que funciona para diseñar personajes 3D los cuales se pueden

personalizar mediante una biblioteca de recursos de texturas de alta calidad con el fin de ser

exportador ya sea a un motor gráfico o a alguna herramienta de adobe (Adobe , 2020).

3.2.4 C#

C# es uno de los lenguajes de programación de alto nivel que pertenece a “.NET”.

Es una evolución de C/C++. Con este lenguaje se pueden escribir tanto programas básicos

como programas avanzados para ser implementados en internet. Este lenguaje permite usar

interfaces gráficas o textuales, ya depende del uso que se le desee dar (Sierra, Microsoft C#.

Curso de Programación. 2ª edición, 2011).

3.2.5 C++

Es un lenguaje de programación que proviene del lenguaje de programación C. Este,

tiene la potencia de procesamiento que le falta a C para ejecutar lenguajes de nivel superior.

C++ agrega capas de abstracciones y de objetos, para agregarlas, debe utilizar Linux.

También permite a los desarrolladores extender el código de programación para código lot

y embebido. C++ ha inspirado a otros lenguajes de programación como lo son Java,

Phyton, C#, entre otros (GlobalData plc, 2016).

3.2.6 MySQL

Es un sistema de gestión de base de datos relacionales que usa el lenguaje estándar

SQL. Se destaca entre varios gestores de bases de datos ya que sus características son la

velocidad, estabilidad y fiabilidad en el manejo de datos. Tiene bastantes usos para

almacenar diferentes tipos de información y es utilizado para el desarrollo de páginas web

dinámicas, portales web, sitios web y también para páginas web pequeñas (Niederauer,

2005).

3.2.7 Entorno Virtual de Aprendizaje

Es un espacio educativo alojado en el internet el cual está conformado por un

conjunto de herramientas informáticas que posibilitan la interacción didáctica. Está

constituido por dos dimensiones, una dimensión tecnológica que es la que le brinda las

herramientas o aplicaciones informativas con las cuales es posible construir el entorno y la

dimensión educativa la cual es la que representa el proceso de estimulación de aprendizaje

(Salinas, 2011).

3.3 Marco legal

Page 26: Desarrollo de Videojuego Interactivo que Estimule la

Para el desarrollo de este videojuego se usó el motor Unity básico, esta con la licencia de

estudiante que proveen. De igual manera, se utilizó los recursos gratuitos que nos ofrece

unity en su asset store desde texturas y modelados para el ambiente. También, de las

páginas ambientcg.com, hdrihaven.com, es.cooltext.com y free3d.com, se hizo uso de las

texturas y modelos gratuitos. Para la parte de personajes, se usaron del sitio de adobe

Mixamo las animaciones del personaje y creación de este. Para la parte de sonidos y

ambientación se hizo uso de los recursos sin copyright de los sitios Infraction - No

Copyright Music, soundcloud.com y premiumbeat.com.

Se hacen las menciones de estos sitios, para enfatizar que, de acuerdo con el

cumplimiento de las políticas de uso mostradas en estos sitios visitados, no se usara estos

recursos con finalidad de lucro, sino al contrario de manera educativa para la obtención de

título profesional como ingeniero de sistemas.

3.3 Revisión del Estado del Arte

Se relacionan las investigaciones relacionadas con el análisis y desarrollo de video

juegos interactivos dirigidos a un público en especial con el fin de que la persona que

interactúe con el programa pueda estimular su lógica y aspectos cognitivos.

3.3.1 Análisis de las herramientas Unity y Blender para el desarrollo de video

juegos con enfoque educativo

El video juego educativo se considera un género independiente de los demás

géneros de video juegos. El desarrollo de un video juego requiere de creatividad,

organización ya que en este tipo de desarrollos se exige experiencia para abarcar todos los

objetivos y también es necesario tener las herramientas adecuadas para poder plasmar lo

requerido con el diseño:

Los modelos de educación actuales intentan que el alumno desempeñe un papel

activo en el proceso enseñanza aprendizaje, con el fin de desarrollar sus

competencias permitiendo estar altamente calificado y competente para asumir los

retos que las nuevas sociedades plantean. En los últimos años se ha prestado

especial atención al componente lúdico como un facilitador de estas tareas. La

lúdica enriquece el aprendizaje creando un espacio dinámico y virtual que

transforma el entorno e incluso la forma de interactuar con éste. El aprendizaje

lúdico tiene como elemento principal el juego. Mediante lúdica, el estudiante

comienza a pensar y actuar en medio de una situación determinada que fue

construida con semejanza en la realidad, con un propósito pedagógico. (Méndez,

Obviedo, Fallas, Vega, & Méndez , 2014).

Para el desarrollo de un video juego es crucial la visión y la trama que tendrá este,

ya que se debe construir una trama sólida y una interfaz amigable y sencilla, esto con el fin

de que el video jugador siempre quiera seguir jugándolo:

Page 27: Desarrollo de Videojuego Interactivo que Estimule la

El planeamiento de la trama y el guion se realizó con reuniones durante varias

semanas, donde se realizaban bocetos, modelos, texturas, logotipos y la

escenografía en general. Así mismo se planearon los objetos, los cuales debían

responder a la solución por parte del personaje en relación con un problema

específico, mediante objetivos (misiones) que permiten avanzar en la trama, o pasar

de nivel, así como mejorar las estadísticas del jugador (como su estado vital). Otros

temas importantes que fueron tomados en cuenta en esta etapa temprana fueron la

banda sonora y los efectos de sonido. Se concluyó que estos estaban divididos en

dos facetas. Por una parte, sonidos de naturaleza como gotas, viento, agua, animales

nocturnos, entre otros. Y, por otra parte, sonidos fríos y oscuros que reflejaran el

ambiente pos-apocalíptico a causa de la destrucción ambiental. Con respecto a lo

que el jugador debía hacer con el personaje, se tuvo que tomar en cuenta el guion

principal y al mismo tiempo, las misiones, y que estas correspondieran con el

género del videojuego. (Méndez, Obviedo, Fallas, Vega, & Méndez , 2014).

3.3.2 Videojuego educativo para ayudar a comprender los principios básicos de

la programación y desarrollar la habilidad lógica en niños de educación básica

“Los videojuegos son parte del desarrollo social y cultural de las personas y llegan a

influir en su desarrollo físico, sensorial, mental y creativo.” Dice Ana Ticante y compañía

resaltan en su artículo, la importancia de la enseñanza de la programación no sólo es capaz

de fortalecer la capacidad de diseñar, inventar o crear, sino que además de eso es de vital

importancia para el desarrollo tecnológico en la sociedad. “Los juegos son una herramienta

útil para la obtención de conocimiento, donde a través de retos y actividades, el estudiante

es el protagonista de su propio aprendizaje” asimismo se puede evidenciar “Existen

videojuegos educativos para aprender muchas cosas, los más básicos enseñan a leer, sumar,

restar o hasta tocar instrumentos, aprender algún idioma, o sobre temas más específicos

como la biología” (Ticante Hernández, Herrera Orduña, Arguijo, Meléndez Armenta, &

Vázquez López, 2019).

Por otro lado, en este proyecto Ana Ticante resalta, como los videojuegos además

de fortalecer la destreza en jóvenes, sea introducido en áreas de medicina, como también en

la enseñanza de lenguajes de programación. Como ejemplo podemos tomar a Immune

Attack y Code Combat.

El aprendizaje de conceptos de programación no es como cualquier otro

aprendizaje, no es un proceso definido y no se trata sólo de memorización, para este

propósito los videojuegos educativos pueden ser una herramienta efectiva, donde el

jugador puede obtener conocimientos de programación en un ambiente educativo-

virtual e interactivo, donde pueden aumentar la motivación para el aprendizaje y

mejorar la comprensión y adquisición de nuevos conocimientos (Ticante

Hernández, Herrera Orduña, Arguijo, Meléndez Armenta, & Vázquez López, 2019)

En el anterior artículo se habla sobre la importancia de los juegos y sus usos en

áreas ajenas a la ingeniería, como es el caso de la medicina y de cómo he aportado un

método de enseñanza intuitivo e interactivo hacia la población joven. También, cómo por

Page 28: Desarrollo de Videojuego Interactivo que Estimule la

medio de los videojuegos se puede obtener una herramienta que facilita el aprendizaje Y la

adquisición de nuevos conocimientos.

3.4 Diseño de la Solución

A continuación, se mostrarán las diferentes implementaciones del desarrollo del

proyecto con base a la terminología relacionada en el marco teórico y plasmada en el

diagrama de flujo.

Page 29: Desarrollo de Videojuego Interactivo que Estimule la

3.4.1 Planificación

3.4.1.1 Historias de Usuario

Se desarrollaron las historias de usuario (

) conforme a lo que los requerimientos funcionales como lo son, la interfaz gráfica, las

diferentes pantallas y escenas, el guion y la trama del video juego, la banda sonora, los

comportamientos de las pantallas y los comportamientos del entorno y personaje,

conexiones a la base de datos y roles de usuarios.

3.4.1.2 Plan de entregas

Conforme a la dificultad de las historias de usuario se realiza el siguiente plan de

entregas:

Tabla 1

Plan de Entregas

Historias Iteración Prioridad Esfuerzo Fecha Inicio Fecha Final

Historia 1 1 Media 1 01/04/2021 04/04/2021

Historia 2 1 Alta 2 04/04/2021 15/04/2021

Historia 3 1 Alta 2 15/04/2021 27/04/2021

Historia 4 1 Media 2 27/04/2021 02/05/2021

Historia 5 2 Alta 3 02/05/2021 19/05/2021

Historia 6 2 Alta 3 19/05/2021 23/05/2021

Historia 7 3 Media 3 23/05/2021 26/05/2021

Historia 8 3 Media 1 26/06/2021 29/06/2021

Historia 9 3 Alta 3 29/06/2021 04/06/2021

Historia 10 3 Alta 3 04/06/2021 09/06/2021

Nota: Cronograma en base a la prioridad de las historias (elaboración propia)

3.4.1.3 Plan de Iteraciones

Conforme al plan de cronograma se realiza la planificación de las iteraciones.

Primera iteración: En a la primera iteración se han desarrollado los módulos de

registro e ingreso del usuario, los cuales para lograr su progreso se ha utilizado u aplicado

cada una de las herramientas que se destacan en la metodología XP.

Tabla 2

Primera Iteración

Número Nombre Módulo

1 Pantalla de presentación Usuario

2 Pantalla de configuración Usuario

3 Panel de sonido u

sensibilidad

Control

Page 30: Desarrollo de Videojuego Interactivo que Estimule la

4 Pantalla de inicio Consulta Nota: Historias de usuario a trabajar en la primera iteración (elaboración propia)

Se muestra de manera general las tareas de ingeniería de la primera iteración:

Tabla 3

Tareas de Ingeniería Primera Iteración

Número de tarea Historia Nombre de la tarea

1 1 Diseña interfaz inicial del

juego

2 2 Diseño interfaz de

configuración

3 2 Planeación de niveles

4 2 Maquetación niveles

5 3 Movilidad de personaje

6 3 Animación de personaje

7 4 Programación interfaz

(empezar, salir,

configuraciones)

8 4 Implementación de texturas Nota: Tareas a trabajar en las historias de usuario relacionadas con la primera iteración (elaboración propia)

Segunda Iteración:

Tabla 4

Segunda Iteración

Número Nombre Módulo

5 Configuración Configuración y consulta

6 Tutorial Interacción Nota: Historias de usuario a trabajar en la segunda iteración (elaboración propia)

Se muestra de forma general las tareas de ingeniería para la segunda iteración.

Tabla 5

Tareas de Ingeniería Segunda Iteración

Número de tarea Historia Nombre de la tarea

Page 31: Desarrollo de Videojuego Interactivo que Estimule la

1 5 Interfaz donde se plasmará

las diferentes

configuraciones principales

del juego.

2 5 Interfaz de sensibilidad y

sonido del juego

3 5 Interfaz de ayuda con

información útil a cerca del

juego.

4 5 Interfaz explicando los

controles para la movilidad.

5 5 Interfaz de creadores del

juego

6 5 Programación de continuar

o regresar entre escenas

7 6 Desarrollar animación de

movimientos básicos del

personaje

8 6 Programación de teclas y

cámara al personaje.

9 6 Programación de físicas de

personaje y objetos.

10 6 Programación del entorno y

objetos.

11 6 Programación de puzles y

eventos.

12 6 Animación a objetos y

entorno. Nota: Tareas a trabajar en las historias de usuario relacionadas con la segunda iteración (elaboración propia)

Tercera Iteración:

Tabla 6

Tercera Iteración

Número Nombre Módulo

8 Configuración del juego Configuración

9 Opciones Configuración

10 Lobby del juego Control Nota: Historias de usuario a trabajar en la tercera iteración (elaboración propia)

Se muestra de forma general las tareas de ingeniería para la tercera iteración:

Page 32: Desarrollo de Videojuego Interactivo que Estimule la

Tabla 7

Tareas de Ingeniería Tercera Iteración

Número de tarea Historia Nombre de la historia

1 8 Programación sonido y

orientación.

2 8 Interfaz de configuraciones

de volumen.

3 9 Programación recargue de

escenas

4 9 Interfaz de instrucciones de

niveles

5 9 Programación de sonidos de

ambiente.

6 10 Programación sonidos de

personaje

7 10 Programación interacción

con objetos

8 10 Programación y

enlazamiento de niveles. Nota: Tareas a trabajar en las historias de usuario relacionadas con la tercera iteración (elaboración propia)

3.4.1.4 Reuniones diarias de seguimiento

Para el seguimiento de cada historia propuesta por el cliente se establecerá

reuniones diarias de desarrolladores y el cliente presente, para revisar el proceso de dichas

historias. Puntualizando temas cómo qué inconvenientes se han presentado en el transcurso

del desarrollo, cómo se ha seguido el cronograma propuesto para la entrega de cada historia

y compartir soluciones qué maximicen el desarrollo.

3.4.2 Diseño

3.4.2.1. Simplicidad

El siguiente apartado se mostrarán las figuras 1-6 de pantallazos del juego ya

finalizado en su totalidad.

Page 33: Desarrollo de Videojuego Interactivo que Estimule la

Figura 1

La figura 1 muestra la interfaz del ingreso del usuario

Figura 2

Page 34: Desarrollo de Videojuego Interactivo que Estimule la

En la figura 2 se visualiza el lobby principal del juego en donde aparecerá el

personaje y se podrá ir a diferentes niveles dependiendo la opción que se escoja.

Figura 3

La figura 3 se muestra u mensaje de bienvenida y una pequeña sinopsis del juego

Page 35: Desarrollo de Videojuego Interactivo que Estimule la

Figura 4

En la figura 4 se da un vistazo a los controles principales que permitirán la

movilidad del personaje y vehículo.

En la figura 5 vistazo del nivel encargado de presentar los variables que son usada

en la programación.

Figura 5

Page 36: Desarrollo de Videojuego Interactivo que Estimule la

En la figura 6 se muestra el nivel encargado de mostrar las sentencias condicionales.

En la figura 7 se muestra el nivel encargado de mostrar los ciclos repetitivos por

medio de unas pitas de carreras.

3.4.2.2 Manual de usuario

Como resultado final, se realizó el manual de usuario en donde se brindan las

instrucciones de las mecánicas del video juego a la persona que vaya a jugar.

Figura 6

Figura 7

Page 37: Desarrollo de Videojuego Interactivo que Estimule la

Para la interacciona con los banners en el lobby, se usa la letra e y se realiza el cambio de

dialogo con q.

Page 38: Desarrollo de Videojuego Interactivo que Estimule la

Para tomar objetos se usa el click izquierdo y se suelta con el click de scroll del mouse

Las mecánicas de movimiento se realizan con las letras a, w, s, y d. Para correr se usa

manteniendo el click derecho.

Page 39: Desarrollo de Videojuego Interactivo que Estimule la

Para realizar saltos se ejecuta con la tecla espacio

Para la manipulación del automóvil, se usan de movimiento las teclas a, s, w y d. Para

frenar se usa la tecla la tecla sostenida s. el movimiento de la cámara se realizará con el

mouse y para reiniciar el nivel se usará la tecla i.

En este manual se habla de los comandos que se presentan en el juego, de igual manera, al

iniciar el juego se presentara un pequeño esquema de los controles que se usaran el todo el

juego.

Page 40: Desarrollo de Videojuego Interactivo que Estimule la

4. Análisis y Discusión

4.1 Análisis

En este proyecto se llegó desde la etapa de diseño hasta la de desarrollo. Abarcando

una investigación a fondo de tecnologías que aplicaremos en nuestro videojuego como

también de antecedentes posteriores qué propusieron o desarrollaron una idea parecida a la

nuestra. También se condensa la metodología ágil XP, la cual se resaltan desde el

cronograma, historias por parte del usuario, organización, asignación de tareas y además se

caracteriza por no ser necesario la estructuración de todo el proyecto desde un comienzo,

dado que en el transcurso del tiempo se pueden ir haciendo modificaciones, pero se tendrá

una idea inicial. Igualmente, se implementó el diseño de acuerdo con la metodología,

llevando desde un orden en el desarrollo del proyecto, asignación de dificultad,

complejidad, prioridad y hasta la asignación de tiempos de entrega por parte de los

desarrolladores. A consecuencia de la aplicación de la metodología XP en nuestro proyecto,

se llega a presenciar de manera más simple dado que se puede evidencia que conformar el

desarrollo y terminación del proyecto. En vista a lo expresado con anterioridad se da a la

finalidad del producto final desde interfaces iniciales y sus correspondientes niveles,

cumpliendo con la idea principal del juego; representar de una manera sencilla lo básico en

la programación.

4.2 Discusión

A pesar de que hoy en día aún se siguen viendo a los videojuegos de una manera

negativa, decidimos incursionar en el desarrollo de un videojuego que abarca el

fortalecimiento de estudiantes de ingeniería. Dado que es una de las principales dificultades

que se presentan a los futuros aspirantes a ingenieros de sistemas. Para cambiar su manera

de pensar a la hora de percibir los problemas, como se puede presenciar en las

investigaciones citadas y también referenciadas en este documento. Se evidencia qué los

videojuegos no impactan de manera negativa a jóvenes, sino que, al contrario, despierta en

ellos una forma de aprender de manera intuitiva al desarrollarse diferentes retos o pruebas

que se presenten en transcurso. Por esta razón y dejando a un lado las críticas negativas

decidimos incursionar para llegar a los jóvenes de una manera fácil y sencilla de

fortalecimiento lógico. En la actualidad, podemos encontrar diversas herramientas para

aprender a programar, pero viéndose que el problema trasciende más a fondo. Si, cualquiera

puede aprender a programar, por medio de libros, cursos o las metodologías de aprendizaje

convencionales, pero ¿qué herramientas conocemos que sean intuitivas y bajo en el

esquema de un videojuego para estudiantes? Por medio de un videojuego no solo será

entretenido, sino que además podrías ser un medio que refuerce las enseñanzas de los

estudiantes.

Page 41: Desarrollo de Videojuego Interactivo que Estimule la

5. Recomendación

En esta primera entrega del proyecto se dará en estado beta, dado que no se llegará a

poner en prueba en estudiantes de primer semestre en la ingeniería de sistemas. Pero coma

cabe aclarar que queda la posibilidad de una segunda o tercera entrega, siguiendo los

mismos objetivos o ideas principales de este proyecto como englobando la idea principal de

este trabajo. Esta idea queda disposición de cualquier persona que sienta curiosidad o que

quiera llevar más allá en el aprendizaje de estudiantes de primer semestre de la ingeniería

en sistemas.

Page 42: Desarrollo de Videojuego Interactivo que Estimule la

6. Conclusiones

Como conclusión a la finalización del desarrollo de este videojuego el cual cumple

con el objetivo de plasmar en su interior de forma didáctica conceptos básicos como las

variables sentencias de decisión y los ciclos repetitivos de la programación. Cabe aclarar

que no se llegó a poner en práctica en estudiantes de primeros semestres dado que esta

primera entrega es una beta, esto quiere decir que queda abierta la posibilidad a cualquier

persona que quiera indagar en el desarrollo de una segunda o tercera entrega.

Page 43: Desarrollo de Videojuego Interactivo que Estimule la

Referencias

Adobe . (13 de 03 de 2020). Encuentre respuestas a preguntas comunes sobre Adobe Fuse

CC (Beta) y servicios relacionados. Obtenido de adobe:

https://helpx.adobe.com/beta/fuse/faq.html

Adobe. (04 de 11 de 2019). Animar personajes 3D con Mixamo. Obtenido de adobe:

https://helpx.adobe.com/es/creative-cloud/help/animate-characters-mixamo.html

Ángel Torres-Toukoumidis, L. M. (2010). Juegos y sociedad. Mexico: Mc Graw Hill.

Anguas, J., Díaz, L., Gallego, I., Lavado, C., Reyes, A., Rodríguez, E., . . . Valero, M.

(2006). La técnica del Puzzle al servicio del aprendizaje de la. Obtenido de

researchgate:

https://www.researchgate.net/profile/Eva_Rodriguez7/publication/228359182_La_t

ecnica_del_Puzzle_al_servicio_del_aprendizaje_de_la_programacion_de_ordenado

res/links/0c96051caf6fd0d3c4000000.pdf

Arias, Á. (2004). Aprende a programar C.

Barragán, H. (2008). Software: ¿arte? Obtenido de banrepcultural:

https://www.banrepcultural.org/artenlared/sccs/02/barragan.pdf

C algoritmos, p. y. (2005). Luis Aguilar Joyanes. MCGraw-Hill.

Catalinas, E. Q. (2002). Sistemas operativos y lenguajes de programación. Editorial

Paraninfo.

Cerón Cardona, A., & Bedoya Herrera, P. A. (2017). MANUAL BASICO DE UNITY 3D

COMO APOYO AL DESARROLLO TURÍSTICO NACIONAL. Obtenido de

amazonaws.

Code.Org. (26 de 02 de 2013). "Code Stars" - Short Film [archivo de vídeo]. Recuperado el

19 de 04 de 2020, de Youtube:

https://www.youtube.com/watch?time_continue=6&v=dU1xS07N-

FA&feature=emb_title

Darias, A. M. (2014). Cuadernos de innovacion educativa.

Didact, S. (2005). MAnual de programacion lenguajes C++. MAD.

Echeverry Tobón, L. M., & Delgado Carmona, L. E. (2007). Caso Práctico de la

Metodología Ágil XP al Desarrollo de Software. Obtenido de amazonaws:

https://s3.amazonaws.com/academia.edu.documents/45543592/0053E18cp.pdf?resp

onse-content-

disposition=inline%3B%20filename%3D2_CASO_PRACTICO_DE_LA_METOD

OLOGIA_AGIL_X.pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-

Credential=ASIATUSBJ6BACDBXQW7V%2F20200423%2Fus-

Page 44: Desarrollo de Videojuego Interactivo que Estimule la

Esteve, J. (22 de 11 de 2012). Xataca. Obtenido de Xataca:

https://www.xataka.com/otros/debe-ensenarse-programacion-en-todas-las-carreras-

de-la-universidad

Ferrer, J. (10 de 10 de 2002). Programación eXtrema y Software. Obtenido de geofisica:

http://www.mmc.geofisica.unam.mx/Replicas/LuCAS/Presentaciones/200211hispal

inux/ferrer/robles-ferrer-ponencia-hispalinux-2002.pdf

Fuentes Rosado, J. I., & Moo Medina, M. (2017). Dificultades de aprender a programar.

Revista Educación en Ingeniería, 6.

Gama, R. L. (2017). Game over: juegos electronicos y veolencia. UOC.

Garcia, I. (11 de 03 de 2020). Todo papas. Obtenido de

https://www.todopapas.com/ninos/educacion/la-importancia-de-los-juegos-

interactivos-infantiles-en-la-educacion--6704

GlobalData plc. (08 de 07 de 2016). What is C++? Obtenido de ProQuest LLC:

https://bbibliograficas.ucc.edu.co:2149/docview/1802712221?accountid=44394

Javier Francisco Otera Noguera, D. R. (2013). Programación. En D. R. Javier Francisco

Otera Noguera, Programación (pág. 115). Editorial UOC.

Joskowicz, J. (10 de 02 de 2008). Reglas y Prácticas en extreme Programming. Obtenido

de amazonaws: https://s3.amazonaws.com/academia.edu.documents/31398587/xp_-

_jose_joskowicz.pdf?response-content-

disposition=inline%3B%20filename%3Dxp_jose_joskowicz.pdf&X-Amz-

Algorithm=AWS4-HMAC-SHA256&X-Amz-

Credential=ASIATUSBJ6BAHPM2T653%2F20200420%2Fus-east-1%2Fs3%2

Joyanes, L. A. (2006). Programación en Pascal. McGraw-Hill.

Juganaru, M. M. (2014). Introducción a la programación. Editorial Patria.

Juganaru, M. M. (2014). Introducción a la programación . En M. M. Juganaru, Introducción

a la programación . Grupo Editorial Patria.

López, L. J. (2014). Programación oritada a objetos C++ y Java. Patria.

Luisa Garzón Villar, E. L. (2004). Informativa Volumen ll. Sevilla: MAD.

Méndez, G., Obviedo, E., Fallas, G., Vega, C., & Méndez , A. (2014). Análisis de las

herramientas Unity y Blender para el desarrollo de videojuegos con un enfoque

educativo. Obtenido de amazonaws:

https://s3.amazonaws.com/academia.edu.documents/33748007/Analisis_de_las_her

ramientas_Unity_y_Blender_para_el_desarrollo_de_videojuegos_con_un_enfoque_

educativo.pdf?response-content-

disposition=inline%3B%20filename%3DAnalisis_de_las_herramientas_Unity_y_B

Page 45: Desarrollo de Videojuego Interactivo que Estimule la

Ministerio de Tecnologías de la Información y las Comunicaciones. (19 de 10 de 2015).

Miles de niños colombianos aprenderán a programar desde Puntos Vive Digital.

Obtenido de Ministerio de Tecnologías de la Información y las Comunicaciones:

https://www.mintic.gov.co/portal/inicio/Sala-de-Prensa/Noticias/13710:Miles-de-

ninos-colombianos-aprenderan-a-programar-desde-Puntos-Vive-Digital

Ministerio de Tecnologías de la Información y las Comunicaciones. (30 de 10 de 2017).

MinTIC y Platzi abren cursos virtuales gratuitos para fortalecer habilidades TIC de

los emprendedores colombianos. Obtenido de Ministerio de Tecnologías de la

Información y las Comunicaciones: https://www.mintic.gov.co/portal/inicio/Sala-

de-Prensa/Noticias/61415:MinTIC-y-Platzi-abren-cursos-virtuales-gratuitos-para-

fortalecer-habilidades-TIC-de-los-emprendedores-colombianos

Morales, J. M. (2015). Serious games: Diseño de videojuegos con una agenda educativa y

social. UOC.

Niederauer, J. (2005). Integrando PHP 5. Obtenido de amazonaws:

https://s3.amazonaws.com/academia.edu.documents/34869982/php.pdf?response-

content-

disposition=inline%3B%20filename%3DGuia_de_Consulta_Rapida.pdf&X-Amz-

Algorithm=AWS4-HMAC-SHA256&X-Amz-

Credential=ASIATUSBJ6BAKYHP5KFY%2F20200424%2Fus-east-

1%2Fs3%2Faws4_requ

Oviedo, E. R. (2015). Lógica de programación orientada a objetos. Ecoe Ediciones.

Pere-Pau Vazquesz Alcocer, J. M. (2006). Programción en C++ para ingenieros . Madrid:

Espain Paraninfo S.A.

Ramírez, D. P. (2008). METODOLOGÍAS ÁGILES.¿CÓMO DESARROLLO. Recuperado

el 20 de 04 de 2020, de amazonaws:

https://s3.amazonaws.com/academia.edu.documents/52482210/1174-1242-1-

PB.pdf?response-content-

disposition=inline%3B%20filename%3DMETODOLOGIAS_AGILES._COMO_D

ESARROLLO_UTI.pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-

Credential=ASIATUSBJ6BAKNVWHWHB%2F20200420%

Razif, K. A. (1 de 09 de 2016). Medium. Obtenido de Medium: https://medium.com/10-

goto-10/algoritmos-pseudoc%C3%B3digo-estructuras-de-decisi%C3%B3n-y-

repetici%C3%B3n-917169a36ce4

Rivera Meza, I. D. (2017). DESARROLLO E IMPLEMENTACIÓN DE UN SISTEMA DE

CÓDIGO DE BARRAS CON LA METODOLOGÍA XP PARA OPTIMIZAR EL

CONTROL DE ASISTENCIA EN LA JUNTA ADMINISTRADORA DE SERVICIOS

DE SANEAMIENTO QUILCAS. Obtenido de Universidad Peruana de los Andes:

http://repositorio.upla.edu.pe/handle/UPLA/232

Page 46: Desarrollo de Videojuego Interactivo que Estimule la

salas, J. J. (2003). Introducción a la programación teoríca y practica. San Vicente:

Editorial Club Universitario.

Salinas, M. I. (01 de 04 de 2011). Entornos virtuales de aprendizaje en la escuela: tipos,

modelo didáctico y rol del docente. Obtenido de amazonaws:

https://s3.amazonaws.com/academia.edu.documents/33050741/Eva1.pdf?response-

content-

disposition=inline%3B%20filename%3DEntornos_virtuales_de_aprendizaje_en_la.

pdf&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-

Credential=ASIATUSBJ6BABLBSC6XJ%2F20200424%2Fus-east-1

Santamaria, C. A. (1991). Lenguaje C++. Bogotá: CODICE LTDA.

Sierra, J. C. (2007). Programcion Orientada a Objetos con C++. RA-MA.

Sierra, J. C. (04 de 03 de 2011). Microsoft C#. Curso de Programación. 2ª edición.

Obtenido de Google Libros: https://books.google.es/books?hl=es&lr=&id=EK8-

DwAAQBAJ&oi=fnd&pg=PT6&dq=que+es+C%23&ots=aiSENyvqHn&sig=ctAK

IFvhbLEpvSXhX-Lh5mwNs2Y#v=onepage&q=que%20es%20C%23&f=false

SINC. (20 de 04 de 2016). Sinc La Ciencia es Noticia. Obtenido de

https://www.agenciasinc.es/Noticias/La-programacion-una-gran-desconocida-para-

alumnos-y-padres

Ticante Hernández, A. C., Herrera Orduña, C. M., Arguijo, P., Meléndez Armenta, R. Á.,

& Vázquez López, A. H. (2019). básica, Videojuego educativo para ayudar a

comprender los principios básicos de la programación y desarrollar la habilidad

lógica en niños de educación. Veracruz: Research in Computing Science. Obtenido

de

https://www.rcs.cic.ipn.mx/2019_148_7/Videojuego%20educativo%20para%20ayu

dar%20a%20comprender%20los%20principios%20basicos%20de%20la%20progra

macion.pdf

Vásquez, C. B. (s.f. de s.f. de s.f.). Algoritmo. Obtenido de https://moodle2.unid.edu.mx/:

https://moodle2.unid.edu.mx/dts_cursos_mdl/lic/IC/EA/AM/06/Algoritmos.pdf

Zahonero Ignacio Martinez, L. A. (2005). Programación en C: metodología, algoritmos y

estructura de datos. McGraw-Hill.

Page 47: Desarrollo de Videojuego Interactivo que Estimule la

Anexos

Anexo 1. Encuestas realizadas a estudiantes de primer y segundo semestre de la

Universidad Cooperativa de Colombia.

Page 48: Desarrollo de Videojuego Interactivo que Estimule la
Page 49: Desarrollo de Videojuego Interactivo que Estimule la
Page 50: Desarrollo de Videojuego Interactivo que Estimule la
Page 51: Desarrollo de Videojuego Interactivo que Estimule la
Page 52: Desarrollo de Videojuego Interactivo que Estimule la
Page 53: Desarrollo de Videojuego Interactivo que Estimule la
Page 54: Desarrollo de Videojuego Interactivo que Estimule la
Page 55: Desarrollo de Videojuego Interactivo que Estimule la

Anexo 2. Historias de Usuario

Numero historia: 1

Nombre historia: Pantalla de presentación

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 1 día

Descripción:

En la página de inicio los usuarios pueden interactuar con los botones de ingreso y registro.

Numero historia: 2

Nombre historia: Registro usuario

Fecha: 20/04/2020

Entrevistado (usuario): Juan Muñoz

Tiempo estimado: 5 días

Descripción:

Espacio en el cual solicite los nuevos usuarios datos básicos como nombre, apellido, edad,

y sexo. Como también su correspondiente correo electrónico y además de eso una

contraseña para el ingreso.

Los datos de los usuarios se deben almacenar en una base de datos.

Numero historia: 3

Nombre historia: Ingreso usuario

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 5 días

Descripción:

Para el ingreso se requerirá el correspondiente correo electrónico y su contraseña de cada

uno de los usuarios.

Page 56: Desarrollo de Videojuego Interactivo que Estimule la

Debe hacerse comprobación de todo dato ingresado con respecto a lo guardado en la base

de datos.

Numero historia: 4

Nombre historia: Pantalla de inicio

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 2 días

Descripción:

Al registrarse al usuario se le presentará una pantalla de bienvenida en la cual se le mostrará

su progreso en el juego y su rendimiento en base a la solución de los puzles

Se presentará la opción de salir, empezar y configurar.

Nota: Este proceso también quedará almacenado dentro de una base de datos.

Numero historia: 5

Nombre historia: Configuración (ingreso)

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 5 días

Descripción:

Se podrá desplegar un listado de idiomas entre los cuales se encontrarán español, inglés y

alemán. También se encontrará una opción de ayuda para principiantes mostrando cómo

será la modalidad de juegos.

Implementación de un apartado que muestra el contacto, ya sean para inquietudes o él

envió de mensajes generales en base a algún error que se encuentre dentro del juego.

Implementar un espacio en donde se encuentren los avisos legales de este juego, como

también los créditos de los correspondientes creadores.

Se presentará un botón de regreso pide guardar configuraciones

Numero historia: 6

Page 57: Desarrollo de Videojuego Interactivo que Estimule la

Nombre historia: Tutorial

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado:

Descripción: 6 días

Al iniciar el juego, se dará una bienvenida al jugador presentando los controles básicos que

se usarán el transcurso de todo el juego. Se deberán explicar los controles de movimiento

de salto y velocidad.

Se deberá presentar una pequeña introducción de cómo será la mecánica del juego por

medio de un puzle.

Se presentarán los objetos interactivos que rodearán al usuario.

Numero historia: 7

Nombre historia: Pausa de juego

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 2 días

Descripción:

En esta sección se podrán visualizar las opciones cómo reanudar configuraciones, opciones,

salir y guardar.

Numero historia: 8

Nombre historia: Configuraciones del juego

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 1 día

Descripción:

En esta sección se encontrará todos los relacionados con las configuraciones de

sensibilidad, graduación de sonido, música y orientación de la cámara.

Debe estar presente en las opciones denegar la salida de audio.

Page 58: Desarrollo de Videojuego Interactivo que Estimule la

Numero historia: 9

Nombre historia: Opciones

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 3 días

Descripción:

Visualizar las teclas designadas en cada una de las acciones que pueda hacer el usuario en

el juego. Además de esto el usuario podrá alterar y asignar las teclas de acciones de su

personaje.

Asignar los botones uno con las configuraciones por defecto y otro para guardar los

cambios hechos.

Numero historia: 10

Nombre historia: Guardado

Fecha: 20/04/2020

Entrevistado (usuario): Oscar Peña

Tiempo estimado: 5 días

Descripción:

Implementar el guardado automático como también en el menú de pausa esto para

garantizar que se guarde todo el proceso de los usuarios. También se tiene que garantizar

que, al momento de salir el usuario del juego, se confirme si desea guardar su proceso.