Skip to content

Estructura de un juego en Unity al estilo Frontend Web 👨‍🍳 - Desarrollo de videojuegos #3 ▶️ | God of Programming

Notifications You must be signed in to change notification settings

carlossalasamper/unity-web-style-project-structure

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

unity-web-style-project-structure

Estructura de un juego en Unity al estilo Frontend Web 👨‍🍳 - Desarrollo de videojuegos #3

Una forma sencilla de crear un juego en Unity con una estructura similar a la que utilizamos en el desarrollo frontend web con los frameworks de actualidad: Vue.js, Angular y React.

1 - Estructura de carpetas

Tenemos que recordar que por cuestiones de convención de nombres en C# y en Unity como framework los nombres de todas las carpetas tienen que comenzar por mayúscula preferiblemente.

Vamos a explicar cada una de las carpetas de la estructura de directorios del proyecto:

1.1 - /Resources

Utilizaremos la carpeta /Resources para guardar, como su nombre indica, todos los recursos de nuestro juego. Podemos crear una subcarpeta por cada tipo de recurso para mayor organización. Dentro de esta carpeta podríamos tener, por ejemplo, estas subcarpetas: Materials, Images, Fonts, I18n, etc...

1.2 - /Source

En esta carpeta /Source es donde irá todo el código que escribamos para el juego. Actua como la carpeta /src que utilizamos en desarrollo web muchas veces, pero por cuestiones de convención en C# es más correcto nombrarla así.

1.2.1 - /Source/Components

En esta carpeta podemos guardar los componentes UI y de elementos del juego que vayamos desarrollando. Recuerda que el namespace de cada script vendrá dado por el alias elegido para el proyecto más la ruta hasta el script desde la carpeta /Source. Por ejemplo, para un supuesto script /Source/Components/UI/SuperButton.cs tendríamos el namespace: WebStyleDemo.Components.UI

1.2.2 - /Source/Models

Dentro de la carpeta /Source/Models guardaremos todas las clases serializables e interfaces que vayamos a utilizar en nuestro juego.

Preparar los modelos de los datos nos ayudará a tener una visión más clara del sistema antes de comenzar a implementar los componentes. A su vez, las interfaces son una forma de abstraer las dependencias que favorece la preparación de tests o la implementación de patrones que requieren de un código desacoplado como es por ejemplo la inyección de dependencias que podemos utilizar en Unity gracias al proyecto Zenject/Extenject.

1.2.3 - /Source/Scenes

La carpeta /Source/Scenes contiene los scripts de cada una de las escenas de nuestro juego. Para no perder la analogía con el desarrollo web, su equivalente sería la carpeta /src/views o /src/pages de cualquier framework de desarrollo frontend web.

1.2.4 - /Source/Services

Como su nombre indica, en la carpeta /Source/Services alojaremos los diferentes servicios que vamos a utilizar en nuestro juego. Herramientas o utilidades que tienen una funcionalidad concreta como: Serializar o deserializar JSON (JsonService), hacer peticiones HTTP (HttpService que sería como el axios de javascript) o el CRUD de las partidas de los jugadores (GameDataService).

2. Vídeo demo ▶️

He preparado un vídeo explicando el flujo y funcionamiento del proyecto paso a paso:

Deja un comentario con un tema que te gustaría que tratase en un vídeo!

3. Sobre mí

¿Te ha resultado útil este contenido? Sígueme en redes sociales:

YouTube ▶️ Instagram 📸 Twitter 🐦 Facebook 👍

God of Programming 💚

About

Estructura de un juego en Unity al estilo Frontend Web 👨‍🍳 - Desarrollo de videojuegos #3 ▶️ | God of Programming

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages