¿Cómo organizar proyecto con 2 personas?

totespare

Buenas a todos, os cuento:

Estoy haciendo, junto con un compañero de clase, un proyecto de juego para final de curso. Es un juego en Unity en 2D muy sencillito, estilo Contra (de gba), con algunas cosas diferentes y tal. El tema es que me gustaría saber cómo organizarnos para dividir la implementación de todas las partes del juego. ¿Qué orden deberíamos llevar para desarrollarlo? Más o menos puedo tener una idea, pero me gustaría saber qué opiniones y consejos podéis darme.

Otro tema es qué software usar para unificar proyectos, y cómo hacer para trabajar por separado. ¿GitHub? ¿Clonamos un proyecto de forma local (cada uno en nuestro pc) y los componentes que creemos los subimos al git, y que sólo uno de nosotros unifique todo lo nuevo? No se muy bien cómo proceder con esto sin que se pueda liar parda y que perdamos parte del progreso.

Y bueno, todo lo que podáis ofrecer para aconsejarme en mi primer proyecto con otra persona, lo agradeceré mucho ^.

Un saludo!

legent

Sobre el tema de unificar proyectos o poder trabajar los 2 a la vez, lo mejor es que utilices un SVN.

2 respuestas
Jastro

#1 A la hora de crear proyectos en conjunto, lo suyo es crear un repositorio, clonarlo e ir trabajando cada uno. Lo unico complicado de esto, es que si tocan los mismos archivos, tienen que toquetear de forma manual, con cual quedarse, pero para ello hay programas que te lo gestionan de forma facil.

Te recomiendo Sourcetree para gestionar los repos, subir los cambios y demas

1 respuesta
totespare

#2 pero es gratis? Porque creo que necesitabas la versión de pago de Unity, no?

#3 genial, me quedo con Sourcetree. Lo uso con GitHub? O con algún otro? Sólo he usado ese, pero si me recomiendas algún otro, soy todo oidos.

2 respuestas
Jastro

#4 yo uso bitbucket. Pero lo uso porque puedo crear repos privados. Si eso te da bastante igual, pues github esta de pm

3 respuestas
totespare

#5 echando un ojo, los privados valen €, así que no me interesa excesivamente xD (tampoco me importa que sean públicos, la verdad). De momento prefiero simplicidad, cuál de los dos es más fácil de manejar? (aunque a fin de cuentas use Sourcetree).

KoRMuZ

#4 lo que te ha dicho #5. Bitbucket, repositorios git -si los quieres por algo en particular- ilimitados y privados con hasta 5 usuarios cada uno. Si invitas gente a que se registre en la web, te dan creo que 3 slots más, así que podrías tener hasta 8 personas.

Sourcetree es de los mismos creadores de bitbucket, así que la integración es perfecta. Es el combo que uso siempre (sea o no para juegos)

2 respuestas
totespare

#7 genial, pues voy a probar con Bitbucket y Sourcetree, a ver qué tal. Por cierto, al seleccionar el lenguaje del git, pongo UnityScript o C#? U otra cosa?

1 respuesta
KoRMuZ

#8 pon C# que será seguramente l oque estés usando no? Yo lo uso para trabajar con web, que llevan php, html, y javascript, y lo único para lo que me ha servido -o que yo me haya dado cuenta- poner el lenguaje, es para el icono del repo xD

1 respuesta
Camperito

#2 Svn, bienvenido al mañana , hoy, por favor dejar de usar esa mierda que es cancer

4 1 respuesta
totespare

#9 uso C# sí. Si es para el icono sólo, no me preocupo. No sabía si quizá administraba las cosas un poco diferente en función del lenguaje que marcases o si se la pelaba o qué jaja.

1 respuesta
KoRMuZ

#11 sinceramente no me he molestado ni en mirarlo, pero en lo que administración se refiere, no he hecho nada distinto, ni he tenido ninguna condición sea cual sea el que haya sido el lenguaje que le he puesto ahí.

legent

#10 En mi curro aun lo utilizamos. Te crees que aquí cada año tenemos que cambiar el sistema porque resulta que sale algo mejor?

Y el dinero que cuesta reestructurar todo?

2 respuestas
Camperito

#13 Hablo de proyectos pequeños / personales no de grandes empresas

1 respuesta
legent

#14 A ok. Si claro, para proyectos pequeños, un github es lo mejor q puedes utilizar yo creo,

totespare

Y para el tema de división de funciones y orden de desarrollo? Alguna idea o consejo?

1 respuesta
Yandr0s

#16 Miraros un poco los 3 o 4 puntos principales de metodologia SCRUM

La division de las funciones las tendreis que hacer segun las capacidades de cada uno , pero para organizaros, podeis plantear pequeños "sprints" , ( 2-4 semanas) en las que asignaros X tareas cada uno de manera que vayais completando objetivos medianamente acotados.

Para no caer en el abandono de proyecto, mi consejo es ir haciendo un desarrollo incremental sobre "minimo jugable" . Es decir, plantear objetivos realizables y sobre todo que podais visualizar el resultado, e ir trabajando sobre eso ampliandolo cada vez mas. Porque trabajar sobre algo grande que no vas a poder ver en funcionamiento hasta un futuro, acaba por desmotivar mucho

Para organizar tareas podeis usar herramientas super simples y claras como:

www.trello.com

o una version parecida pero especializada en proyectos de videojuegos:

http://hacknplan.com/

2 respuestas
MTX_Anubis

Una buena metodología de trabajo con git es gitflow que además encaja perfectamente con scrum o kanban.

Clicspam

#13 Pero es que #1 va a empezar ahora xD

marod

#5 #7 Dos dudas

  • Bitbucket es privado, sí, pero no tiene un limite de 2GB de archivos? Por lo menos cuando yo lo usaba a principios de este año en la empresa de practicas, si tenia este problema.

  • Github tiene repositorio privado también y gratuito que yo sepa no? por lo menos para la Ludum Dare yo he utilizado Github en privado

1 respuesta
yukiHime

Tal y como #17, para division de tareas, Trello es la leche

KoRMuZ

#20

Respecto a lo de bitbucket, nunca he llegado a ese límite y no lo he leído en el faq, o me lo he saltado, no tengo conocimiento de eso. Pero según esto todos los repos de después de junio de 2014 tienen ese límite.

Así que, tratándose de un juego, no se si sería lo más adecuado. O si se pueden tener los assets en otra carpeta -tipo dropbox, drive, etc- y dejar el repositorio solo para el código.

Hablo desde el desconocimiento, no se si un juego normalito puede llegar a 2gb en código.

1 respuesta
B

#22 2 gb en código? si te refieres a código en texto plano, 2gb es impensable...

1 respuesta
Deoxys

Los privados de github cuestan dinero, lo ponéis público y ya. No os van a 'robar la idea' ni nada xD

Si queréis además ir a lo guay podéis usar taiga, aunque la verdad es que es un poco overkill para algo pequeño

KoRMuZ

#23 es a lo que me refería, pero no se si también se meten los assets, por eso lo decía.

crazyguy

Nosotros usamos Sourcetree + github. El límite de 2GB lo pasamos en un proyecto mediano con carga de assets (3D + texturas) y varias ramas en un par de ocasiones. Para proyectos pequeños, con 2GB tienes de sobra. El problema es que git no está pensado para binarios/assets, así que en cuanto le metas algo diferente a texto/código, pierde parte de su potencial.

Hoy en día, SVN para código evítalo. Un merge con git (o mercurial) es mucho más fácil, no tardas na en hacer ramas, y el flujo de trabajo lo agradece.

Por si te "inspira", mi planteamiento en futuros proyectos será tratar de quitar los assets de git y sacarlos a Dropbox, por ejemplo, o SVN incluso. Dropbox porque para los artistas es más cómodo (sincronización automática, no hay que preocuparse de ramas ni leches, y así la culpa es sólo de ellos :p)

Para dividir el curro: creo que tu pregunta no va por cómo dividir el repo, si no el trabajo en sí. Depende del equipo, pero veo importante que, si tenéis la idea del flujo del juego, lo implementéis antes, y luego os centráis en el núcleo del juego.

Es decir, uno hace el menú principal, con el botón para empezar a jugar, que carga una escena en "blanco" y luego se carga el final de partida y se vuelve al menú (ciclo completo). Otro se pone a hacer la pantalla de juego, que es un paisanín que se mueve y gana automáticamente al llegar a una caja a 2 metros a la derecha. Integráis y ya tenéis un "juego completo" cuando pulséis en crear la build.

Luego, os ponéis los dos con el juego. Decidís cómo estructuraréis la interacción jugador-enemigos (capas que se utilizan para plataformas, para enemigos y el personaje y otros aspectos generales del juego). Uno pule los controles para el prota, y otro hace el enemigo más básico que haya en el juego, aunque esté quieto. Integráis, lloráis con los primeros problemas de conflictos si los hay, y váis avanzando teniendo desde el primer punto un flujo completo de juego, que creo que lo agradeceréis más adelante.

Ya nos cuentas qué tal te fue. Saludos!

1 respuesta
totespare

#17 hoy mismo miro el trello y el hacknplan, y también SCRUM. Ya estoy toqueteando Sourcetree con BitBucket.

#26 respecto a lo de dividir el trabajo, efectivamente era en relación al trabajo en sí, nada relacionado con el repositorio. Entiendo entonces que te refieres a hacer el "cascarón" del juego primero, por así decirlo, y luego el juego en sí, empezando por lo básico, no?

Por cierto, tengo que forzar que los assets se guarden en texto y no en binarios o algo así en Unity, para que funcionen bien los repos y tal? No se cómo es exactamente lo que habría que hacer x).

1 respuesta
crazyguy

#27 Eso es, primero el cascarón, que así te ayuda a ir pensando en el juego como demo completa y no como prototipo de nivel jugable únicamente. Y luego, vas cubriendo las necesidades básicas para que, al acabar la jornada, tengas algo lo más estable posible. Para eso te ayudará una metodología ágil, como te comentaron otros compañeros ;)

Lo de forzar a utilizar los assets en texto o no, nunca lo probé en proyecto vacío, y cuando lo intenté cambiar en un proyecto empezado, la armé. Quizás con un proyecto recién empezado no tengas problemas, aunque entiendo que esto va más enfocado a mezclar escenas y prefabs. Mi único consejo, muy genérico, es que tengáis buena comunicación. Si podéis dedicar un horario común para hacer el juego, aunque sea hablando por Skype, mejor.

1 respuesta
totespare

#28 lo de los assets, es porque me habían comentado que no funcionaban bien como binarios en los git, y que o bien los gestionaba por otro lado, o los forzaba a texto. Estos días probaré con proyectos vacíos a ver si nos manejamos bien y conseguimos usarlo todo a la perfección.

En cuanto me mire lo que me falta por ver (trello etc.) os comento a ver qué dudas tengo y tal. Por el momento, muchas gracias a todos :D

totespare

Me quedo con Trello, me ha molado, es simple y limpio. He mirado el tema de SCRUM y parece muy efectivo, veré cómo puedo adaptarlo al trabajo con mi compañero.

El tema de usar almacenar los assets como texto y no como binarys, para poder subirlos al repositorio, alguien puede iluminarme un poco?