Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - Manu343726

#1
Principiantes / Re:C++ Por qué no funciona?
26 de Enero de 2014, 03:01:46 PM
Cita de: Gallo en 23 de Enero de 2014, 12:49:48 AM
Ambas cosas las puedes hacer utilizando clases de la c++ standard library, por ejemplo así:

    std::vector<std::vector<std::string>> tabla(5);
    tabla[0] = std::vector<std::string>(1);
    tabla[1] = std::vector<std::string>(1);
    tabla[2] = std::vector<std::string>(1);
    tabla[3] = std::vector<std::string>(1);
    tabla[4] = std::vector<std::string>(1);
   
    std::cin >> tabla[0][0];
    std::cout << tabla[0][0];

   

Ten cuidado al hacer asignaciones del estilo lvalue = llamada al constructor (En plan Java, vamos). Incluso en C++11 con move semantics, el rendimiento de ese tipoc de cosas es horrible. El compilador no es capaz de hacer RVOs (O el tipo de copy elision que se aplique en este caso) con ese tipo de cosas. Así que en el mejor de los casos (C++11 move semantics) tienes ésto:


Constructor call
Move assigment
Destructor call


Es decir, ese absurdo rvalue temporal no te lo quitas de encima.

Lo mejor es que uses construcción in-place. En el caso de std::vector, usando emplace_back():

   

constexpr std::size_t filas = 5;
constexpr std::size_t columnas = 5; //Por ejemplo

std::vector<std::vector<std::string>> tabla;

for( std::size_t i = 0 ; i < filas ; ++i )
    tabla.emplace_back( columnas );
   
    std::cin >> tabla[0][0];
    std::cout << tabla[0][0];




Aunque lo hicieras de la otra manera, piensa que no tiene mucho sentido: Has usado el constructor que inicializa el vector a n elementos (5 en tu caso), y luego creas instancias sueltas que asignas a dichos elementos. Éstas son el tipo de cosas que se hacen en java porque cambiar referencias es gratis y pedir memoria a la JVM es también gratis (No es lo mismo un new/malloc() que un new de Java/C#). Pero en C++ son horribles, ya que utiliza semántica de valor, no de referencia. Incluso con move semantics (Move es menos trabajo que copiar, pero es trabajo).
#2
Cita de: cyberon en 02 de Diciembre de 2013, 10:46:13 PM
No hace falta cruzar el charco para que te exijan experiencia en C++. Donde yo trabajo sólo trabajamos en C++ y no he tocado nada de motor, sólo código de gameplay y herramientas, y hay muchas más empresas en este país que, sobre todo para máquinas pequeñas, sólo utilizan C++.

Saludos.

Me alegro, de verdad. Me encantaría acabar trabajando con C++. A lo que me refería es que, comparado con otros lenguajes, está muy poco "solicitado".
#3
Yo también estoy estudiando, en mi caso el proyecto lo tengo el año que viene.

Que te obliguen a hacer el proyecto en C++ es bastante absurdo (Te lo dice uno que le encanta C++ y trabaja con él siempre que puede), ya que no es lo que vas a hacer en trabajos reales (Seamos realistas, salvo que tengas muchíiiiiiiiiiiiiiiiiiiiiiiisima suerte no vas a acabar en Valve programando un engine). Hoy en día como bien dices lo suyo es trabajar con herramientas tipo Unity, ya que la gran mayoría no tenemos ni tiempo ni dinero para implementar un motor propio, además de que el hecho de reinventar la rueda no tiene mucho sentido.

Sinceramente pienso que la gente de la universidad debería salir de vez en cuando de su despacho para conocer como funciona el mundo real. Créeme, no digo esto a la ligera, he tenido (Y sigo teniendo) bastantes problemas con profesores respecto a este tema. Son gente que, para nuestra desgracia, en la mayoría de los casos hicieron un doctorado y según salieron acabaron en una facultad dando clase, vamos que nunca han trabajado en el mundo real.
#4
Proyectos / Re:Programador Unity 3D para proyecto indie (Madrid)
23 de Septiembre de 2013, 01:25:57 PM
Cita de: webmastah en 20 de Septiembre de 2013, 11:56:32 PM
Por cierto, el proyecto carece de financiación inicial. Se intentará conseguir por medio de crowdfunding, pero no hay garantía de conseguirla. Así pues, los únicos beneficios serán los que genere el juego. Lo bueno es que tampoco habrá pérdidas más allá del tiempo invertido

Así mal empezamos. No puedes pedir a una persona que gaste seis meses de su tiempo y dinero(sí dinero, la gente tiene que comer. Trabajar en algo que no da dinero es igual a perder dinero. Así que si hay pérdidas) en algo que no tienes la más absoluta garantía de ganar un duro (y visto como van estas cosas, lo más probable es que efectivamente no ganéis un duro).

Y sobre el juego:
Cita de: webmastah en 20 de Septiembre de 2013, 11:56:32 PM
Por otra parte, ya hemos confirmado varios aspectos del proyecto en una serie de reuniones que hemos mantenido:

Tipo de juego: Aventura gráfica (con un toque de arcade)
Plataformas: Windows, Mac y Linux
Distribución: Greenlight / Steam
Editor / Motor gráfico: Unity 3D
Financiación: Autofinanciado con posibilidad de crowdfunding
Plazo: 6 meses (1 de Octubre hasta 31 de Marzo)
Horario: mañanas (por confirmar)
Lugar: Coworking Villa (Villaviciosa de Odón, Madrid

Siento decirlo, pero eso es igual a no tener nada.

Ante todo no te lo tomes como un ataque o algo personal. Todos los días vemos ofertas de este estilo, y aún así se siguen cometiendo los mismos errores una y otra vez.
En resumen lo que siempre hay que tener en cuenta con estas cosas es que básicamente estas pidiendo a una persona que invierta tiempo y dinero en tu proyecto. Para qué alguien invierta lo mínimo es darle garantías, y que el tema parezca serio y que ya está rodado. Decir que el juego es "una aventura grafica con un toque arcade" no es tener el proyecto rodado. Lo que tenéis es una idea. Yo también tengo ideas. Muchas. Todos tenemos ideas. Lo que una oferta debe hacer es dar razones (convincentes, en línea de lo que he mencionado antes) para convencer a alguien de porque debe perder el tiempo en tu idea en lugar de la suya. Y desde luego si no hay garantías la persona de turno se quedará con su idea.
#5
General Programadores / Re:Control de codigo fuente
17 de Septiembre de 2013, 04:14:09 PM
Acabo de ver que han puesto una introducción al control de código fuente en los foros de discusión de codecademy.
Parece que está bastante bien. La pongo aquí por si a alguien le interesa: http://www.codecademy.com/groups/html-projects/discussions/5177d3a1758e99b46e003d6a
#6
General Programadores / Re:Control de codigo fuente
16 de Septiembre de 2013, 10:37:36 AM
Tal y como ha dicho julen26, git puede ser complicado en un principio, pero a a larga es el más potente y flexible.
Esta es una buena web para aprender git: http://pcottle.github.io/learnGitBranching/
Es un tutorial interactivo que te enseña paso a paso las features de git. Personalmente siempre que voy a hacer algo raro con mis repos (Algún rebase extraño o algo por el estilo), siempre lo pruebo ahí primero (Tiene un modo libre) xD

Sobre clientes de git, creo que el más cómodo con diferencia es el cliente de github para windows: http://windows.github.com/

Para hacer cosas normalitas, véase commits, subir commits al repo, crear repos, clonar repos, gestionar ramas, etc tiene una interfaz gráfica muy sencilla y cómoda. Por supuesto siempre te deja abrir la consola. Offtopic: Este cliente es un buen ejemplo de lo que puede ser Metro cuando se hacen las cosas bien.

De todas maneras la mayoría de IDEs de hoy en día traen algún tipo de integración con git. En mi caso siempre uso netbeans para C++/Java, el cual trae git y mercurial integrados "de fábrica". Y las herramientas de diff que trae son sencillamente maravillosas:




Igualmente creo recordar que había un buen plugin de git para eclipse. Te pongo el cliente de github para eclipse, es muy cómodo: http://eclipse.github.com/ Si no usas github instala EGit directamente: http://www.eclipse.org/egit/

Espero que todo esto te sea útil
#7
Proyectos / Re:Proyecto Pirates!
14 de Septiembre de 2013, 02:18:30 AM
Podrías describir más en profundidad tu oferta?

Una descripción general de que va el proyecto (El juego vamos), cual es el estado de este, en que consistiría exactamente el trabajo, etc.

Gracias

PD: No vendría mal que le echaras un vistazo al modelo de petición de colaboración (http://www.stratos-ad.com/forums/index.php?topic=10181.0) para que veas a lo que me refiero.
#8
Proyecto dx_lib32 / Re:Dibujar Circunferencia
24 de Agosto de 2013, 10:47:11 AM
Dibujar tartas, tomo nota :P
#9
Proyectos / Re:pasar juego de mesa a movil o web
05 de Agosto de 2013, 08:04:32 PM
Cuando Gorkinovich arremete contra algo, en algún lugar del mundo muere gente súbitamente... xDDDD
#10
jajajaja a mi también. Creo que lo voy a poner en mi currículum
#11
Proyectos / Re:pasar juego de mesa a movil o web
02 de Agosto de 2013, 12:52:14 PM
No huele a quemado por aquí? xD


Panreyes, estoy totalmente de acuerdo contigo, ese es el párrafo en cuestión. Es como si los desarrolladores de videojuegos fueramos unos frikis autistas que no salen de su cueva, y que no pueden hacer su trabajo por si mismos, necesitan ayuda para trabajar en lo que les gusta.

Y si, me parece insultante.
#12
Igual hubiera sido más sencillo portarla a C# usando mono... Pero ya tarde. Soy un masoquista
#13
Si no fuera porque hay que usar vb6...
#14
Precisamente porque pone bien claro que es una petición de colaboración, no parece que tenga nada malo. El problema de la oferta en cuestión era que te lo intentan vender como una oferta de trabajo.
#15
Y ya que estás, si lo consigues hacer no estaría mal que lo incluyeras en la dx_lib32. Seguro que en un futuro a alguien más le hará falta.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.