Saltar navegación

Defensa Proyecto Final - EJGP

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 18 de enero de 2024 por Daniel M.

5 visualizaciones

Defensa realizada el 18 de enero.

Descargar la transcripción

¿Compartimos la pantalla? 00:00:00
Espera, no, un segundo, que te doy la bienvenida 00:00:02
bueno, de que fuese bienvenido 00:00:05
a tu defensa del 00:00:08
módulo de proyecto final de Ciclo, ¿vale? 00:00:11
de los estudios de animación 3D, juegos e intornos interactivos 00:00:13
con parecida a la hora acordada 00:00:16
que era a las 6 menos cuarto del 00:00:19
jueves 18 de enero. Simplemente 00:00:22
bueno, a lo largo del proyecto hemos estado 00:00:25
viendo pues la evolución del proyecto 00:00:28
conociendo los criterios de calificación 00:00:31
y bueno, finalmente la 00:00:34
estoy yo solo en la presentación, pero se grabará esta 00:00:37
esta defensa para, bueno, pues para que 00:00:40
los compañeros evaluadores también lo puedan 00:00:43
ver si, vamos, cuando puedan 00:00:46
y esta grabación pues será alojada en el ámbito 00:00:49
de DucaMadrid, ¿vale? No saldrá de este ámbito 00:00:52
ya había sido informado de ello 00:00:55
el orden de la presentación de este proyecto es 00:00:58
15 minutos 00:01:01
sobre tu presentación, ¿vale? 00:01:04
si te pasas algún minuto no pasa nada 00:01:07
si superas los 20 seguro que te corto, ¿vale? 00:01:10
pero bueno, hasta 15 minutos sin problema 00:01:13
y si te excedes un poco no pasa nada 00:01:16
y posteriormente habrá una ronda de preguntas 00:01:19
según la respuesta y los temas, pues también se puede alargar un poco 00:01:22
por mi parte 00:01:25
si tú estás listo, pues podemos empezar 00:01:28
vale, sí, sí 00:01:31
pues apunto que empiezas a las 17.49 00:01:34
de mi reloj, así que cuando quieras 00:01:37
así vas preparando también la pantalla y todo 00:01:40
vale, sí, compro tu pantalla 00:01:43
y toda la pantalla, imagino 00:01:46
selecciona la miniatura de la pantalla que quieres compartir 00:01:49
si vas a compartir sonido hay un pequeño 00:01:52
toggle abajo de compartir 00:01:55
no sé si vas a compartir y le das a compartir 00:01:58
vale, no hace falta porque 00:02:01
la presentación no tiene sonido 00:02:04
perfecto, pues creo que veo tu pantalla 00:02:07
vale, pues yo he hecho 00:02:10
una especie de presentación 00:02:13
que es como un pequeño resumen de la memoria 00:02:17
en realidad 00:02:20
bueno, yo he hecho un videojuego en 3D 00:02:30
llamado 00:02:33
Steam Nexus 00:02:36
Steam Nexus es eso 00:02:39
un videojuego en 3D de acción 00:02:42
y con vista isométrica 00:02:45
es un twin-stick shooter por rondas 00:02:48
un juego que se juega con doble 00:02:51
doble joystick originalmente 00:02:54
el proyecto se enfoca en implementar 00:02:57
habilidades adquiridas durante el curso 00:03:00
además de aprender otras nuevas 00:03:03
y el proceso abarca desde 00:03:06
la programación de los scripts 00:03:09
a diseños de interfaces básicos 00:03:13
y eso 00:03:16
programación de mecánicas básicamente 00:03:19
aunque es un desafío desarrollar el juego solo 00:03:22
mi meta es conseguir una 00:03:25
base sólida de conocimientos y habilidades 00:03:28
en el ámbito de desarrollo de juegos 00:03:31
los objetivos clave en mi proyecto 00:03:36
eran adquirir experiencia en el desarrollo 00:03:39
de juegos, entender bases 00:03:42
de la programación, familiarizarme 00:03:45
con Blender aunque al final no haya podido 00:03:48
por tiempo 00:03:51
desarrollar habilidades de gestión de proyectos 00:03:54
y crear un portfolio 00:03:57
para introducir mis habilidades 00:04:00
y que la gente pueda ver lo que sé 00:04:03
aunque no acabase el juego 00:04:06
como tal, mi objetivo principal 00:04:09
era aprender 00:04:12
dentro de la inspiración que he cogido 00:04:17
se han encontrado juegos como Protatto 00:04:20
Vampire Survivors 00:04:23
Enter the Dungeon 00:04:26
Deep Rock Galactic Survivor 00:04:29
Dark Swarm 00:04:32
este juego tiene una temática steampunk 00:04:36
de ahí el nombre Steam Nexus 00:04:39
la narrativa y los personajes 00:04:42
los mencionaré más adelante 00:04:45
las herramientas que he utilizado 00:04:50
Visual Studio para el IDE 00:04:53
Unity como motor de videojuegos 00:04:58
aunque al principio quería usar 00:05:01
Unreal 5 pero finalmente 00:05:04
me decidí por Unity 00:05:07
y Blender aunque no haya modelado los AED finales 00:05:10
es lo que voy a usar 00:05:13
los prototipos y los placeholders 00:05:20
para el diseño de personajes enemigos 00:05:23
utilice placeholders en forma de gápsulas 00:05:26
el mapa lo creé con un plugin llamado 00:05:29
ProBuilder 00:05:32
mientras que la interfaz son elementos básicos 00:05:35
y también implementé un borde 00:05:39
para la barra de vida 00:05:42
que era un asset de la Unity 00:05:45
asset store 00:05:48
para resolver problemas en scripts 00:05:53
utilice debug log para identificar errores 00:05:56
busqué soluciones en internet 00:05:59
y en el Unity manual 00:06:02
consulté foros de Unity 00:06:05
aparte de foros como Stack Overflow 00:06:08
y GitHub 00:06:11
luego consulté a un programador 00:06:14
sobre resolución de errores 00:06:17
no sobre el juego en sí 00:06:20
y para algunos problemas utilice 00:06:23
inteligencia artificial 00:06:26
y también me he guiado a partir 00:06:29
de varios videos explicativos 00:06:32
tanto de resolución de errores 00:06:35
como para crear los enemigos 00:06:38
y el movimiento por ejemplo 00:06:41
aquí he puesto un poco la narrativa 00:06:47
aunque no se vea mucho esto en el juego 00:06:50
para que se vea que es lo que la tengo 00:06:59
y el estilo que le quiero dar 00:07:02
es una ciudad del estilo steampunk 00:07:05
el personaje principal 00:07:08
o sea el jugador sería Ava 00:07:11
una chica con una ex armadura avanzada 00:07:14
como Samus Zero 00:07:17
y combate contra la Syndicate 00:07:20
una organización corrupta 00:07:23
que controla a robots 00:07:26
y los enemigos se suposarían robots 00:07:29
dentro de los scripts que he creado 00:07:38
están el melee y el ranged 00:07:41
que son básicamente enemigos 00:07:44
el melee persigue al jugador 00:07:47
y el ataque cuando está cerca 00:07:50
colisiona con él 00:07:53
mientras que el ranged persigue al jugador 00:07:56
y cuando entra dentro de su rango 00:07:59
dispara 00:08:02
el script de movimiento 00:08:09
es Twin Stick Movement 00:08:12
que gestiona el movimiento del jugador 00:08:15
basado en la entrada de teclado y gamepad 00:08:18
permitiendo el movimiento y la rotación 00:08:21
según la orientación de la cámara 00:08:24
ya que no es lo mismo 00:08:27
un juego en tres dimensiones 00:08:30
con X, Y y Z de profundidad 00:08:33
que un juego con vista isométrica 00:08:36
Gun controla el disparo de armas 00:08:39
por parte del jugador 00:08:42
incluyendo la creación de proyectiles 00:08:45
y la gestión de cadencia de tiro 00:08:48
los scripts de proyectiles y la salud 00:08:51
Bullet y Enemy Bullet 00:08:54
definen el comportamiento 00:08:57
de los proyectiles disparados 00:09:00
tanto por el jugador 00:09:03
como por los enemigos 00:09:07
gestionan velocidad, daño, duración y vida 00:09:10
así como la lógica de colisión 00:09:13
cada uno discrimina 00:09:16
el de Bullet discrimina al jugador 00:09:19
y el de Enemy Bullet discrimina a los enemigos 00:09:22
Geass maneja la salud del jugador 00:09:30
y las de los enemigos 00:09:33
aparte de controlar la muerte 00:09:36
y actualiza la barra de salud 00:09:39
Health Pad 00:09:42
muestra la salud 00:09:45
mediante un slider 00:09:48
de forma dinámica 00:09:51
en la salud del jugador 00:09:54
solamente muestra la salud del jugador 00:09:57
El menú controller 00:10:04
gestiona la navegación y funcionalidades 00:10:07
del menú 00:10:10
y el Game Manager es el núcleo del juego 00:10:13
que maneja lógica rondas 00:10:16
generación de enemigos, pausa, renovación 00:10:19
y las condiciones de victoria o derrota 00:10:22
La conclusión a la que he llegado 00:10:29
haciendo este proyecto 00:10:32
yo estoy bastante contento con este juego 00:10:35
a pesar de que todavía me falta modelar 00:10:38
y optimizar scripts 00:10:41
sé que se pueden mejorar todavía los scripts 00:10:44
y quizá no son los más óptimos 00:10:47
ya sé que es complicado 00:10:50
pero cada paso hace una lección 00:10:53
me ha dado una buena experiencia 00:10:56
y una buena base 00:10:59
para futuros desarrollos de videojuegos 00:11:02
y este juego tampoco 00:11:05
lo he acabado 00:11:08
lo continuaré 00:11:11
más adelante 00:11:14
y ya estaría la presentación 00:11:17
Vale, sí 00:11:23
Has concluido, por tu parte 00:11:26
Vale, perfecto 00:11:29
Varias cosas que quiero comentar 00:11:32
deja compartida tu pantalla 00:11:35
que igual te pido que veamos alguna cosa 00:11:38
Vale, uno de los problemas 00:11:41
pero que tiene también 00:11:44
espero explicación, ahora me confirmas 00:11:47
que los plazos o las expectativas 00:11:50
no se han cubierto 00:11:53
el proyecto que has indicado varias veces 00:11:56
iba a tener un acabado visual más customizado 00:11:59
que no fueran placeholders 00:12:02
lo que sí que he visto 00:12:05
es que has intentado implementar 00:12:08
funciones que no son las más sencillas 00:12:11
por ejemplo, has integrado Cinemachine 00:12:14
también has usado el input system 00:12:17
en vez del clásico 00:12:20
bueno, pues sí que has cogido un camino 00:12:23
un poco exploratorio para no quedarte 00:12:26
con la solución más rápida 00:12:29
El input system 00:12:32
es que yo he leído 00:12:35
y he visto en foros y en vídeos 00:12:38
que va a ser el sistema que se usa 00:12:41
como tal 00:12:44
no veía el punto en usar el antiguo 00:12:47
si el que se va a usar a partir de ahora 00:12:50
hombre, sobre todo por los dispositivos 00:12:53
que de hecho hay una cosa que pones 00:12:56
que no sé si tú has llegado a usar 00:12:59
que es el twin stick 00:13:02
para teclado y ratón y para gamepad 00:13:05
en gamepad claro, no hay click 00:13:08
no hay forma de designar la ubicación 00:13:11
¿cómo resolverías eso? 00:13:14
¿con el joystick simplemente orientándolo? 00:13:17
¿a qué te refieres? 00:13:20
cuando el protagonista, ahora jugamos en ordenador 00:13:23
lo que vamos haciendo es orientar 00:13:26
en base al ratón 00:13:29
a medida que vamos moviendo el ratón 00:13:32
el personaje seguirá girando 00:13:35
pero digamos que es en función 00:13:38
del joystick derecho sería orientar al personaje 00:13:41
sería el de rotación 00:13:44
en teclado y ratón 00:13:47
lo que he hecho ha sido 00:13:50
que el jugador apunte 00:13:53
a la posición en la que haya tu ratón 00:13:56
y eso 00:13:59
mando en gamepad 00:14:02
apuntas con tu joystick derecho 00:14:05
sí que he hecho en falta 00:14:08
aunque hayas explorado 00:14:11
y por eso se te ha alargado el proceso 00:14:14
que hubiera un poco más de variedad en el juego 00:14:17
pasan 5 rondas si no me equivoco 00:14:20
y si en cada una hay más personajes 00:14:23
pero no hay una variación real 00:14:26
de personajes, siempre son los mismos enemigos 00:14:29
además uno de los dos enemigos no está funcionando 00:14:32
no quitan vida 00:14:35
en el ejecutable que me pasaste 00:14:38
por mucho que se me choquen, de hecho a veces tengo 7 alrededor 00:14:41
vale, pues sí, me molestan 00:14:44
a mí me funcionan 00:14:47
yo creo 00:14:50
antes de enviártelo 00:14:53
lo probé y funcionaba 00:14:56
¿le puedo dar aquí? 00:14:59
a lo mejor justo ha sido 00:15:03
algo 00:15:06
mandando, pero yo creo que funcionaba 00:15:09
a ver, por ejemplo 00:15:12
mira, me han quitado la mitad de la vida 00:15:15
pues en el ejecutable que a mí me llegó no 00:15:18
pero bueno, que entiendo que está configurado 00:15:21
pero algo pasa en ese ejecutable que no está funcionando 00:15:24
luego en la memoria me ponen que usas 00:15:27
Audisio, realmente entiendo que no lo has usado 00:15:31
no, en la Audisio no lo he dejado usar 00:15:34
porque no he metido sonido todavía 00:15:37
pero sí que lo usaría 00:15:40
cuando lo complete 00:15:43
sí, eso, se ha quedado un poco 00:15:46
por el camino el proyecto a nivel de acabar 00:15:49
es verdad que lo que tú dices, entiendo que te ha 00:15:52
contribuido a que avances 00:15:55
y consolides conocimientos, entiendo que eso 00:15:58
sí que lo has hecho 00:16:01
otro elemento que entiendo que 00:16:04
dame tú la explicación, ¿por qué has usado los navmes 00:16:07
para enemigos que sólo van hacia el jugador 00:16:10
y lo persiguen? 00:16:13
he usado los navmes 00:16:16
porque 00:16:19
querría ampliar el juego 00:16:22
a lo mejor hacer plataformas 00:16:25
algunos obstáculos 00:16:28
o sea, de momento no es lo más 00:16:31
óptimo, sería por ejemplo 00:16:34
sería más fácil 00:16:37
y por ahora haría lo mismo 00:16:40
pero si quiero 00:16:43
si quiero ampliarlo en un futuro 00:16:46
de momento creo que usar los navmes es lo mejor 00:16:49
y también lo 00:16:52
he leído que es mejor 00:16:55
sí, bueno, esto lo hablamos y por eso 00:16:58
que para, por ejemplo, si hay obstáculos 00:17:01
si pones un move towards o algo que calcule dónde está el personaje 00:17:04
vaya hacia ello, pues si hay algo en medio 00:17:07
pues se queda ahí atontado empujando 00:17:10
a no ser que pongas raycas para discriminar, para cosas ya más complejas 00:17:13
pero sí, actualmente es 00:17:16
desde luego no es lo más óptimo 00:17:19
pero bueno, entiendo que es como lo del input system 00:17:22
un poco por tener ya preparado el terreno para continuar 00:17:25
00:17:28
pones también que has usado inteligencia 00:17:31
artificial para escribir código 00:17:34
cómo has hecho esta contribución de la inteligencia y cómo ha sido 00:17:37
pues si hay algún 00:17:40
método, es que ahorra mucho tiempo 00:17:43
a lo mejor le pregunto a una inteligencia artificial 00:17:46
o le dejo que me escribe 00:17:49
a un método en C Sharp 00:17:52
con X condición 00:17:55
simplemente para ahorrar tiempo 00:17:58
el escribir 00:18:01
algo de algún método 00:18:04
cuando hablamos de inteligencia artificial que no lo concretas 00:18:07
¿te refieres a chatGPT o has usado otras herramientas? 00:18:10
no solamente chatGPT 00:18:13
si, eso tiene la pega a nivel del proyecto 00:18:16
que desde luego la inteligencia artificial va a ser 00:18:19
fundamental en el futuro 00:18:22
es que claro, hasta qué punto 00:18:25
todo lo que iba escribiendo 00:18:28
esa chatGPT 00:18:31
tú lo ibas comprendiendo o simplemente 00:18:34
yo en chatGPT si he pedido que escriba algo 00:18:37
y no he entendido que ha hecho 00:18:40
siempre le he preguntado que ha hecho 00:18:43
en todo momento he entendido que estaba haciendo 00:18:46
o porque ha puesto este método 00:18:49
o porque ha sumado esta ronda 00:18:52
estos enemigos 00:18:55
porque ha multiplicado 00:18:58
¿tienes la memoria por ahí que me pudieras compartir un segundo? 00:19:01
si, la tengo aquí abierta 00:19:04
en la página 16 00:19:07
si puedes ir un segundo 00:19:10
hay un script que no he entendido muy bien 00:19:13
y de hecho la descripción que hay 00:19:16
es el de en medio 00:19:19
en el trigger enter no estás hablando de la bala 00:19:22
se forma 00:19:25
información de la colisión y si el objeto tiene 00:19:28
la etiqueta player se prepara para aplicar daño y se estruya bala 00:19:31
hasta aquí bien porque ha colisionado con el personaje 00:19:34
en teoría la bala también tendría que ignorar 00:19:37
a todos los objetos que no tengan etiqueta de player 00:19:40
y luego veo el código 00:19:43
y lo que veo es un compareTag 00:19:46
enemy si es diferente de enemigo no a player 00:19:49
entonces no entiendo muy bien 00:19:52
que quiere decir este 00:19:55
hitInfo con enemy 00:19:58
si toca al jugador se destruye la bala 00:20:01
y si no 00:20:04
si la etiqueta es diferente de enemigo 00:20:07
se destruye también 00:20:10
es por si hubiera paredes o por qué es esto 00:20:13
bueno yo 00:20:16
en parte no me he dado cuenta 00:20:19
la verdad 00:20:22
pero si hubiese paredes 00:20:25
que quiero que las haya 00:20:28
me vendría bien 00:20:31
pero en este momento no tengo mucha idea 00:20:34
vale será 00:20:37
lo leí luego vi el código y digo yo 00:20:40
hay algo que no me está cuadrando 00:20:43
y ya por último en el menú 00:20:46
pones unos ajustes que de momento no funcionan 00:20:49
al menos el de volumen pero el de dificultad 00:20:52
si el de dificultad 00:20:56
si me consta además que funciona 00:20:59
porque me costó un montón configurarlo 00:21:02
tuve que hacer mil cosas 00:21:05
meterme en mil foros 00:21:08
porque lo configuras con un playerprefs 00:21:11
y luego los estás recuperando 00:21:17
porque el problema que hay es que 00:21:20
cuando luego te vuelves a meter en ese menú 00:21:24
siempre está a nivel más básico 00:21:27
ahí faltaría que leyera los playerprefs 00:21:30
que no solo los guardara sino que también los recupere 00:21:33
por ejemplo 00:21:36
pero bueno 00:21:39
es una pena que no se haya llegado hasta más lejos 00:21:42
y ver aunque sea 00:21:45
el planteamiento visual más allá de lo narrativo 00:21:48
porque 00:21:52
una cosa que sí te pegué en el proceso es que a lo mejor me enseñaras 00:21:55
ejemplos de cómo iba a ser 00:21:58
me hablabas de ejemplos 00:22:01
en la memoria no se ven pero sí que lo habíamos hablado 00:22:04
pero bueno en ese sentido nos quedamos con que 00:22:07
lo que hemos hablado otra vez está centrado más en la programación 00:22:10
no pasa nada 00:22:13
pero bueno yo que sé 00:22:16
a esta sí que he echado de menos a lo mejor 00:22:19
lo que es pues que metieras algún otro tipo de bala 00:22:22
diferente que tampoco es algo tan complicado 00:22:25
o que entre rondas pues que a lo mejor todos los enemigos 00:22:28
los dos tipos que en la primera ronda se aparecieran 00:22:31
y luego que hubiera un poco de variación 00:22:34
para que no sea pues dar 5 rondas un poco lo mismo 00:22:37
porque en realidad 00:22:40
sí que tenía pensado añadir un par de cosas pero 00:22:43
es que no gestionaba el tiempo muy bien 00:22:46
no podía añadir todo lo que me gustaría 00:22:49
bueno yo eso 00:22:52
no me tranquiliza me gusta 00:22:55
que en parte este retraso en el proyecto y la previsión sea 00:22:58
porque también te has metido a indagar 00:23:01
o a usar funcionalidades más avanzadas 00:23:04
a nivel del proyecto para presentármelo no es lo mejor porque te ha retrasado más 00:23:07
que otras formas de hacerlo seguramente 00:23:10
por ejemplo el nummes ahora mismo no tiene sentido 00:23:13
sino a futuros el input system 00:23:16
pues tampoco pero bueno 00:23:19
sí que funciona pero el nummes se puede hacer 00:23:22
de formas más sencillas pero bueno eso también significa 00:23:25
que no te has quedado en lo básico entonces bueno por ese lado 00:23:28
lo que te quita un poco también te lo suma 00:23:31
por otro punto así que bueno 00:23:34
yo en parte haberme retrasado también 00:23:37
me ha servido bastante 00:23:40
me ha enseñado que hacer eso 00:23:43
hacer un juego no es más fácil 00:23:46
y sobre todo las expectativas de tiempo y de acabado 00:23:49
que siempre 00:23:52
te lo dije cuando empezamos 00:23:55
quieres abarcar muchas cosas sobre todo cuando me hablabas 00:23:58
de lo de hacer también la parte visual en blender 00:24:01
que luego también cuando te metieras en eso también 00:24:04
no sé tu dominio de blender pero también lleva bastante tiempo 00:24:07
bastante y luego meterlo en el motor 00:24:10
pero bueno 00:24:13
por supuesto en el proyecto lo importante es aprender 00:24:16
ya te digo me hubiera encantado a lo mejor que el juego hubiera sido 00:24:19
más acabado a nivel de mecánica y que no fuera todo el rato 00:24:22
un poco lo mismo que te acabo de comentar 00:24:25
pero bueno está entregado el proyecto 00:24:28
y veo que le ha servido para aprender 00:24:31
y además aprender cosas que habíamos visto en game por ejemplo 00:24:34
que seguramente algunas se quedan ahí en el tintero 00:24:37
y tú las has aplicado entonces bueno en ese sentido está bien 00:24:40
me ha servido varias 00:24:43
que hemos visto 00:24:46
pero y eso no solo que te ha servido de que las conocías sino que las has aplicado 00:24:49
entonces está bien 00:24:52
pues no sé si hay algo más que quieras aportar de conclusión 00:24:55
yo por mi parte 00:24:58
yo por mi parte creo que eso es todo 00:25:01
vale genial pues 00:25:04
pues gracias por la presentación 00:25:07
y lo que dice la tutoría que hasta el jueves que viene 00:25:10
que es la junta de evaluación nos compartiremos 00:25:13
casi con toda seguridad vuestra calificación 00:25:16
así que jueves, viernes o la semana que viene 00:25:19
pues si la tutorial vale 00:25:22
muchas gracias a ti 00:25:25
un saludo 00:25:28
Subido por:
Daniel M.
Licencia:
Todos los derechos reservados
Visualizaciones:
5
Fecha:
18 de enero de 2024 - 19:39
Visibilidad:
Clave
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
25′ 29″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
216.20 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid