Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Futuro De BGL

Iniciado por sés, 10 de Febrero de 2005, 09:15:38 AM

« anterior - próximo »

sés

 Hace tiempo que no pongo noticias de mi última ida de olla: BGL

He estado trasteando con ella y, como dije hace un tiempo, estoy haciendo un programa que la utilice para ir viendo lo que falta, lo que sobra...

Hace tiempo que tengo una idea en mente, similar a esa especie de SO de lo que ya se habló por aquí no hace mucho. Algo así como BGL con un GUI y una clase Application en la que se basen todos los programas.

El caso es que ahora me ha surgido una duda ^_^: ¿C ó C++?
En C sería fácil de utilizar... y siempre se puede hacer un "wrapper" en C++, pero es más difícil de mantener y de ampliar.
En C++ es más sencillo de implementar y de extender, pero "deja fuera" a C.
En C con un "wrapper" en C++... no me convence.

Personalmente estoy considerando las tres primeras opciones, pero toda opinión es bien recibida.
Soy indeciso... ¿o no?

nsL

 Yo creo que todo en C++, quizas porq me acostumbre a programar asi y ya lo vea mas "comodo" por decirlo de alguna manera...
Si bien es cierto q es mas facil de entender en C, al menos para mi.
No se, la opcion de 2 versiones , una C y otra c++ tb es buena, todo depende de las ganas y tiempo que tengas ;)

Lo dicho, yo vote solo C++ :D

Saludos!  B)  
Yo no muero hasta la muerte -

sés

 A mí casi que me convence más dejar la base en C puro, que siempre lo podrá utilizar cualquiera, tanto en C como en C++. El resto, desde luego, creo que sería mejor en C++.

Ya veremos.
Soy indeciso... ¿o no?


Pogacha

 La verdad es que aun no veo el sentido de BGL ... no entiendo la ventaja entre hacerlo uno y usar esta libreria. Sin malas intenciones, tan solo no entiendo.
Por ahora veo solo un armazon de una aplicacion de windows, ¿la idea es portarlo a muchas plataformas?, ¿que mas piensa incorporar?
Saludos

sés

 A lo mejor es porque no está terminada ^_^. La intención es funcione en varios SO.

La función de BGL es proporcionar lo básico (eventos, modo de video, etc.) sin preocuparte del SO. Pero ojo, sin añadir más cosas.

SDL hace eso, pero tiene montones de funciones que mucha gente no usa. Gente que, como yo, inicia el modo de video y recogen eventos, pero que usan sus propias rutinas gráficas... y tienen que cargar con una DLL de 200Kb para lo que cabe en bastante menos (mira lo que ocupa BGL).

Cierto, ahora mismo no es demasiado útil. La idea es que funcione, por lo menos, en Window y Linux. Dentro de poco conseguiré un portátil baratito al que pondré Linux y me pondré con ello.

Así cualquiera podrá usar BGL para hacer sus programas en varios SO.


P.D.: Aquí está el hilo dónde explicaba mi idea: Librería Básica Para Programar Videojuegos



-= EDIT =-
Vaya, has editado mientras respondía :P
Como ves, sí, la idea es portarla a más plataformas.
Luego hacer varias capas por encima, pero OPCIONALES, no como en SDL, que te comes todo para 3 funciones (a no ser que te pegues con el montón de fuentes que tiene y quites lo que te sobra).
Soy indeciso... ¿o no?

Pogacha

 La verdad es que aun así, no lo veo  :( ... te pido disculpas si encuentras ofencibo el reply, pero en en realdad cualquier libreria que sea portable viene con su estructura basica, y en tu propuesta habria que adaptar la librerias a  BGL, no veo la utilidad fuera de fines educativos que pueda traer tu libreria, si en cambio trayera un grupo de clases y funciones basicas en c++ ( o sea un estandart y una implementacion de la misma todo como para heredar), en una libreria donde el codigo sea optimizable en tiempo y tamaño, con el fuente , bueno ahí estamos hablando de algo ...
Tal vez con el tiempo me demuestre su utilidad y vea mi error ...
Saludos

sés

 Hombre pueden estar pasando dos cosas:
1) Que no termines de entender lo que quiero.
2) Que realmente a ti te parezca una chorrada o poco útil, que también podría ser :P

Veamos... entiendes las ventajas de SDL, ¿no? Vale, ahora pongámonos en el caso de gente como yo, que solo usa SDL para inicializar el modo de video, recoger eventos y hacer el flip y usar mis propias funciones gráficas.

SDL se me hace bastante pesada para solo utilizar esas cuatro cosas. Yo no quiero utilizar sus "Surfaces", ni sus "blit"... ni sus funciones de sonido...

Pues BGL viene por esto, es lo mínimo necesario para olvidarte del SO: eventos, poner el modo de video... sin más extras. Sí tengo pensado hacer más cosas, pero no son obligatorias. Cada parte serán unas pocas Kb y se podría utilizar por separado (dependiendo solo de la base).

En SDL también hay otros módulos para ampliarla (SDL_Image, SDL_Mixer...), pero la base, para mi gusto, incluye demasiadas cosas.

Si alguien utiliza todo lo que tiene SDL, es normal que vea BGL algo inútil. Pero yo creo que hay bastante gente que utiliza SDL igual que yo.

Si ves BGL, comprobarás que apenas ocupa, cuando esté portada a varios SO, podrás hacer programas para varias plataformas por solo unas Kb. Además, al ser tan simple, cualquiera puede coger el código fuente y meterle mano.
Recordemos que son dos cabeceras y dos .C, uno común y otro específico del SO (solo Windows de momento). Y si alguien les echa un vistazo verá lo sencillo que es.


Bueno, espero haberme explicado bien y que por lo menos entiendas la idea, aunque siga sin parecerte útil :P


----------

Por cierto, he estado mirando el  Code::Blocks y me ha gustado bastante, voy a intentar utilizarlo en la siguiente versión... sí, en C++
Soy indeciso... ¿o no?

TheAzazel

 Ses, y porque no utilizas los blit de SDL? lentos no son y encima, son completamente portables. Para mi entender, SDL tiene todo lo necesario e indispensable para poder hacer cualquier cosa generica... no creo que la sobre nada... es mas, la gente se queja de lo contrario... q podian incluir (por ejemplo) SDL_mixer o SDL_image dentro del nucleo..a lo que muchas veces, han respondido q na nai de la china, que eso son extensiones y tienen toda la razon.

Entiendo BGL como algo que te va a servir para aprender UN HUEVO(eso lo se yo jeje) y si encima la portas a Linux aprenderas otro HUEVO mas y si consigues que tenga lo que has dicho y pese poco... podras atrapar a la gente que busque exactamente eso, una lib pequena, sencilla, con lo indispensable y en win32 y para linux.

Ses, no se si al final echaste un vistazo a CRM32Pro, en ella la filosofia es distinta que BGL, es una lib que lo tiene todo(o casi) para ponerse con ella y ale, olvidarte de todo. La dll final ocupa 700kb pero es lo de menos :)... y bueno, el puerto a Linux esta al 95%... la verdad que ya sabia yo que iba a ser facil, me falta probarlo todo para que funcione bien y resolver un par de cosas con los drivers de video que utiliza SDL (alguno sabe cual es mejor? dga para fullscreen? x11 para modo ventana? que pasa con aalib y svgalib?). La verdad, q si consigo el objetivo, cualquier podra escribir aplicaciones para win32 y con SOLO recompilarlas en Linux y copiar la libreria ale, tirando, no hara falta saber mucho de linux. Y el proximo port sera solaris jeje.

Y por ultimo, creo q no se trata de entender o no entender a ses, el se ha marcado un objetivo y nos puede gustar mas o menos, le podemos ver mas o menos sentido pero... y lo que se aprende? encima lo dejara libre para que todo aquel que lo quiera utilizar o curiosear lo consiga... en fin, q no veo nada que achacar y solo darte animos para que sigas con ello :).

sés

 Ehm... sí uso el blit de SDL ^_^', fallo de escritura.
De SDL utilizo los eventos, poner el modo de video y volcar a pantalla (lo que incluye un blit). Pero para dibujar los sprites (y todo lo demás) uso mis propias funciones.

E insisto, BGL está pensada para los que hacen como yo. Si solo uso cuatro funciones, no me apetece cargar con 200Kb de DLL.

Si encima incluyen, por ejemplo, DSL_Mixer... me terminan de hacer la pascua. Yo para sonido uso FMOD... ¿tengo que cargar con una DLL más pesada aun para no utilizarla? <_<

¿Quiero lo básico? Incluyo bgl.h y enlazo con bgl.lib
¿Quiero además funciones gráficas? Incluyo bgl_video.h y enlazo con bglvideo.lib
etc, etc, etc...

Pero bueno, es lo de siempre, cada uno tiene sus gustos. Yo personalmente odio tener que cargar con DLLs enormes para usar una función. Odio que me vendan un montón de cosas juntas cuando solo quiero una parte.


De todas formas hay una cosa que me hace gracia.
Mucha gente critica a Microsoft hacerte tragar ciertas cosas con su SO (Outlook, IE...), que les fastidia tenerlo ahí porque ellos usan Mozilla o el navegador que sea...
Y esa misma gente hace una DLL (véase SDL) que te hace tragar ciertas funcionalidades que cierta gente no quiere ni necesita...


Para mí es lo mismo.

*sale corriendo*.. ..... .......^_^
Soy indeciso... ¿o no?

TheAzazel

 De todas formas...tambien puedes compilar el codigo de SDL y decir que sistemas quieres que se incluyan.... jeje.

A mi las DLL me gustan, estan bien... lo que me marea es q haya mil! de ahi la filosofia de mi lib...
"una sola DLL para gobernarlos a todos" jajaja

y ses, tu sigue desarrollando BGL que tiene buena pinta, ya me iras contando como va avanzando el tema, un saludo

vicho

 pues si no quiere usar las funciones de video de SDL,simple no las uses :P yo la libreria la compile yo y como es para un programa servidor, me servian los timers los threads el video lo deje aparte

sés

 Ye tengo un esqueleto básico de la nueva versión en C++. Aun no es definitivo y faltan cosas, pero el "hola mundo" queda algo así:
#include "BGL.h"

int main( int argc, char **argv )
{
   bgl::System *system = bgl::getSystem();
   
   system->createWindow( "Hello BGL!", 320, 200 );
   
   bool done = false;
   bgl::Event event;

   do {
       if( system->getEvent( event ) ) {
           switch( event.type ) {
               case bgl::Event::APPCLOSE:
                   done = true;
                   break;
           }
       }
   } while( !done );
}
Soy indeciso... ¿o no?






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.