Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Alpha ops con spritebatch para conseguir luces en 2D

Iniciado por Hans, 01 de Marzo de 2011, 01:59:44 PM

« anterior - próximo »

Vicente

#75
Como te molesta lo de las quotes, pues respondo sin quotes (pero va para ti naranjo de igual manera).

No es que crea que haya que avanzar "ciegamente" hacia la abstracción, pero es que no se si te has dado cuenta que mi PC de hoy es el doble que mi PC del año pasado. Que hace unos años mis aplicaciones vivian en mi ordenador de un núcleo y ahora mismo acceden a servidores por todo el mundo, procesan datos en paralelo y mil flipadas más.

La informática avanza de forma imparable, y para seguir el ritmo uso todo lo que se me ofrece: librerías, automatizaciones, entornos de desarrollo,... Que para poder ejecutar en 16 cores tengo que abstraerme de como se particiona una colección en los diferentes núcleos? Pues bienvenido esa. Es mucho más importante el hecho de particionar el proceso que pensar que si me pusiera podría micro-optimizar como se realiza esa partición. Es más importante no preocuparme en que mi programa tenga memory leaks que en micro optimizar el manejo de la memoria.

Y de veras, entiendo que a veces hace falta llegar a esos extremos de "rendimiento", de veras que lo entiendo. Pero no en el 99.99% de los juegos. Más que nada porque no es que haya visto solamente 1 ó 2 AAAs donde mi Quadcore tiene 2 núcleos tocándose los huevos...

Además, no es que los GCs se inventaran ayer. Ya tienen bastantes años, mucha investigación, y muchas ostias detrás de ellos. Y seguro que mejorarán en el futuro. Al igual que tampoco son de ayer los conceptos de programación funcional que están invadiendo muchos lenguajes no funcionales como C# (o  C++ en breve). Y así suma y sigue. Joder, que .NET ya tiene 10 años como plataforma.

Y C# no se arrastra en el PC, ni mucho menos.

Edit: ya por curiosidad, he mirado y el GC se inventó para Lisp por el 1959.

MrK

Cita de: blau en 11 de Marzo de 2011, 12:52:51 AM

No habia que buscar ni linkar librerias raras para hacer cosas normales como trabajar con cadenas de forma sencilla, habia una class File que te daba toda la funcionalidad que necesitabas, pero es que habia una clase Path con todas las funciones para trabajar con cadenas de rutas,... y asi para todo.

Pero cuando me corri fue cuando probe a cambiar codigo durante la ejecucion y me lo permitio... dioooosssss....aaahhhh


después de estas dos frases mejor dejo el hilo por imposible :)

solo un apunte, con vc6 (del 1998 si mal no recuerdo) ya podias cambiar codigo durant la ejecucion.

blau

#77
:)

Yo era de borland y en borland habia que recompilar para cambiar codigo.

Y comprendo que se puede hacer lo mismo con C++ que con C#, (dios al final he roto mi promesa de no compararlos),  pero no solo hablaba de C#, hablo de la conjuncion con .net, que tb es aplicable a managed c++ o como se llame, simplemente la estructuracion que poseen las librerias .net hacen que sea muy comodo, y muy facil ponerte a programar. Y si ademas le unes xna para acceder a dirextx, las herramientas de depuracion, las herramientas de analisis, pues ... oye, que haya que tener en cuenta que tienes un sistema automatico de gestion de memoria tampoco es tanta molestia.

Sobre todo porque si la haceis manual, tendrias que hacer lo mismo que se necesita para que el garbage collector no moleste, en c++ es conjonudo hacerse un gestor de memoria y en C# no... no lo entiendo.

Yo todavia me acuerdo de la que habia que montar para programar un juego en directx en 1998 y te puedo decir que no era un entorno "amigable".

Mars Attacks

#78
Cita de: Hans en 06 de Marzo de 2011, 12:46:35 PM
std:vector<T> listaItems; // para definir la lista
listaItems.push_back(item); // para añadir cada item creado
for (int i = 0; i < listaItems.size(); i++) delete (listaItems[ i]); para eliminar cada item, si tienes bien definido el destructor
listaItems.clear(); //para limpiar la lista

Aquí estaría bien consultar una vez el tamaño de listaItems fuera para no consultarlo en cada paso del for. Nosotros, de paso, hacemos preincremento en vez de postincremento para prevenir creación de objetos indeseados en algunos casos (más para acostumbrarnos a prevenirlo en otros casos que para estos en concreto, que no lo generan).

De todas formas, el listaItems.push_back(item) tendrías que añadirlo por cada ítem creado después de haber consultado que era del tipo que te interesa, mientras que en la solución de Blau había una sola línea de consulta para hacerlo.

blau

#79
Se que no es la panacea para hacer scripts, pues solo mapea por reflexion la estructura  de una clase y no tiene instrucciones de control, lo bueno es que añadir y modificar funcionalidades esta chupao una vez que tienes mecanizado el proceso de reflexión.

pero ¿se puede hacer esto en C++?

http://www.youtube.com/watch?v=EhYIxoxxg8A

¿y en un dia?

;)

Edit: Por lo que veo en google me temo que si que se podra con artimañas del infierno aunque c++ no lo soporte nativamente... :)

Vicente

Y ya veras con C# 5 las virguerias que se van a hacer :p (ahora mismo con arboles de expresiones y dynamic se pueden hacer cosas bastante mas interesantes que con reflexion, pero en la Xbox no tiran :p).

MrK

Cita de: blau en 27 de Marzo de 2011, 01:37:21 AM
Se que no es la panacea para hacer scripts, pues solo mapea por reflexion la estructura  de una clase y no tiene instrucciones de control, lo bueno es que añadir y modificar funcionalidades esta chupao una vez que tienes mecanizado el proceso de reflexión.

pero ¿se puede hacer esto en C++?

http://www.youtube.com/watch?v=as13cdDGItA

¿y en un dia?

;)

Edit: Por lo que veo en google me temo que si que se podra con artimañas del infierno aunque c++ no lo soporte nativamente... :)

tio, dejalo... creo que no estas en posicion de decir que puede hacer C++ y que no puede hacer, cuando dos de las cosas por las cual dijistes que tanto amas C# se pueden hacer desde hace 10 años en C++.


blau

vale, vale,... ya esta... c# no le llega a c++ ni a la suela... todo se hace mejor, mas rapido, y con menos fallos en c++... y c# no se merece ni que le reconozcan sus méritos... porque es un hermano menor y bastardo que no debiera haber salido a la luz...
:P






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.