Peticion a SplinterGU

Started by folken, March 31, 2010, 01:26:50 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

folken

Hola SplinterGU  :), antes que nada aprovecho para saludarte y agradecerte por tu ayuda en tu foro y felicitarte por tus increibles aportes(Bennu) y conocimiento de programacion de video juegos.

Quisiera pedirte permiso para hacer Bennu.NET, para mi juego de Xibalba, actualmente no soy un experto en codigo Nativo, pero mis habilidades estan el el codigo manejado del lado del Framework, y debido al juego que quiero desarrollar veo factible hacer esta herramienta, dando el codigo fuente a la comunidad como GPL con la misma filosofia de Bennu.

Ese seria mi humilde aporte a tan grandiosa obra que estas haciendo, mi grano de arena al mar de cosas que es Bennu hoy en dia.

Estoy a tu respetable consideracion, y si no se pudiera bueno ya ni modo, programare el Xibalba solo con Bennu3D (Yeti3D e IrrLicht).

Afectuosos saludos y en lo que pueda ayudar(No soy bueno para codigo nativo, le doy mas al administrado), escribir algun tutorial o manual dime y con gusto lo hago.

Si quieres que tenga otro nombre la herramienta tu me dices, estoy a tus ordenes.

Atte.
Tu amigo Folken...





Where reality ends, life begins!

folken

puse los detalles en el post de Xibalba.  :)
Where reality ends, life begins!

SplinterGU

No veo ningun problema, adelante...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

folken

#3
OK, muchas gracias no te voy a decepcionar  :), me estoy apurando para tener la primera DEMO en unos 20 a 30 dias, cuando menos el cargador y el primer nivel 3D ya en linea, me tarde un poco en continuar por que me puse a estudiar los mapas BSP y el modelado en blender, y buscando amigos para armar el mini equipo de desarrollo) andube preguntando en el foro y gracias a las respuestas pues ya entendi como trabajarlos, es que antes usaba el viejo bennu3d el que usaba yeti3D pero si cambio mucho al nuevo que usa el Irrlicht, mejor pero mas complicado.

antes de la Demo iremos publicando avances tanto en el juego como en el motor de .NET

para el juego xibalba somos 3 personas:(Aunque no se han registrado aun en el foro, los menciono para no quitarles sus creditos)

-Bhiotek     = Diseño grafico 3D
-OzoMatli   = Modelos 3D, Base de datos
-Folken      = Motor .NET para BennuGD/Bennu3D



Where reality ends, life begins!

FreeYourMind

#4
Cuando hablas de Bennu .NET te refieres a funciones definidas como las de Bennu que tiren de Bennu para programar en el entorno .NET y así poder usar más cosas de ese entorno en conjunto ?

La base seria en C++, VB.NET o C# ?

Yo tengo algo parecido en estado beta, pero con funciones de DIV Games Studio, en el cual puedo programar un exe en .NET con c++ tirando de un prg de DIV, algo parecido a lo que fué CDIV en su día, en que usas una cabecera .h con las funciones de DIV.


Edit:
Por cierto tenia una función de ese esperiemento posteada por otros lares que aprovecho para poner aqui a modo de ilustración :), a ver si miro de nuevo el proyecto y ya os enseño algunas capturas para los que tengan curiosidad:

PROCESS *DIV_init_process(DIV_SPRITE *fpg, DWORD x, DWORD y, WORD graph, BOOL flags, DWORD size, BYTE layer, BYTE ctype, void (* process_func) (PROCESS *))
{
BOOL done= false;
WORD i= 0;

while (!done)
{
if (process[i].free)
{
process[i].incx= process[i].incy= 0;
process[i].process_func= 0;
process[i].fpg= fpg;
process[i].flags= flags;
process[i].free= false;
process[i].graph= graph;
process[i].size= size;
process[i].x= x;
process[i].y= y;
process[i].layer= layer;
process[i].process_func= process_func;
process[i].ctype= ctype;
process[i].angle= 0;
return &process[i];
}
if (++i>= DIV_MAX_PROCESSES)
{
done= true;
printf("process not initiated: increase CONST DIV_MAX_PROCESSES\n");
}
}

return 0;
}

folken

Esta interesante tu modelo, gracias por tu comentario

1. El lenguaje base de Bennu.NET es C++ (còdigo Administrado framework 3.5)

2. El Bennu.NET trabaja con la Arquitectura Vista-Controlador parecida a la de Windows Presentation Foundation (WPF), donde se usan los DataBindings(Codigo Scripting C# Autoinsertado en XAML para ejecutar la misma aplicacion tanto en Web como Desktop), asi nacio la idea de hacer esto con Bennu.

Para ver mas detalles de la Arquitectura los pusimos en ->Proyectos -> Xibalba, en ese post se describe un poco mas.


Ejemplos de programa en Bennu.NET


PROGRAMA EN C#: clsJuego1.cs
=========================================

// Actualmente no hay soporte para vista en ventana, la ejecucion es FullScreen
// Gracias al modelo Vista-Controlador podemos pasar datos entre Codigo del
// lenguaje que estamos usando por ejemplo C# y el codigo del DataBinding. que
// es el Scripting de BennuGD.


using System.Windows;
using System.Draw;

using Bennu.NET.Runtime.Core;
using Bennu.NET.Runtime.Exceptions;
using Bennu.NET.Data;
using Bennu.NET.Network;
using Bennu.NET.Downloader;
using Bennu.NET.World;
using Bennu.NET.Engine;
using Bennu.NET.Windows;


namespace MiJuegoBennuNET
{
    public static class Juego
   {

    //Constructor
    //...Aqui todo lo necesario para la construccion
    //Destructor
    //...
    //Propiedades de la clase, etc.
    //...

    BennuGD_Core_Device  objBennuGD = new BennuGD_Core_Device();
    Bennu_NET_ENGINE_SHOOTER objEngine = new Bennu_NET_ENGINE_SHOOTER objEngine();
    BennuGD_Exceptions objError = new BennuGD_Exceptions();
    BennuGD_GUID objGUID = new BennuGD_GUID();

    // aqui configuraciones de resolucion, pantalla, sonido, carga de Md2, Bsp, etc. pero desde el core de Bennu.NET

    //Metodo DataBinding diseñar tu nivel con la potencia y sencillez de BennuGD
   objEngine.Source = @" PROCESS PERSONAJE(INT X,INT Y)
                                  BEGIN

                                       ...
                                       ...
                                       FRAME;
                                  END";
                                  //Todo el còdigo BennuGD que quieras para tu Nivel 100% bennu, hay pequeñas reglas del ENGINE a seguir.

   objBennuGD.Engine = objEngine;

    try
    {
        objBennuGD.play();
    }
    catch(BennuGD_Exceptions objEx)
    {
        objError.ExceptionTYPE = objEx;
        objGUID.ShowMessageBox("Error en juego Bennu.NET debido a " + objError.Text );
        throw new objError;
    }
    finally
    {
        objGUID.ShowMessageBox("Juego ha terminado");
    }



   }

}


PROGRAMA EN VB.NET: clsJuego1.vb
=========================================

' Actualmente no hay soporte para vista en ventana, la ejecucion es FullScreen
' Gracias al modelo Vista-Controlador podemos pasar datos entre Codigo del
' lenguaje que estamos usando por ejemplo VB.NET y el codigo del DataBinding. que
' es el Scripting de BennuGD.


Import System.Windows
Import System.Draw

Import Bennu.NET.Runtime.Core
Import Bennu.NET.Runtime.Exceptions
Import Bennu.NET.Data
Import Bennu.NET.Network
Import Bennu.NET.Downloader
Import Bennu.NET.World
Import Bennu.NET.Engine
Import Bennu.NET.Windows


Namespace MiJuegoBennuNET

    Public Shared Class Juego
   

    'Constructor
    '...Aqui todo lo necesario para la construccion
    'Destructor
    '...
    'Propiedades de la clase, etc.
    '...

    BennuGD_Core_Device  objBennuGD = new BennuGD_Core_Device()
    Bennu_NET_ENGINE_SHOOTER objEngine = new Bennu_NET_ENGINE_SHOOTER objEngine()
    BennuGD_Exceptions objError = new BennuGD_Exceptions()
    BennuGD_GUID objGUID = new BennuGD_GUID()

    'aqui configuraciones de resolucion, pantalla, sonido, carga de Md2, Bsp, etc. pero desde el core de Bennu.NET

    'Metodo DataBinding diseñar tu nivel con la potencia y sencillez de BennuGD
    objEngine.Source = " PROCESS PERSONAJE(INT X,INT Y)
                                  BEGIN

                                       ...
                                       ...
                                       FRAME;
                                  END"
                                  'Todo el còdigo BennuGD que quieras para tu Nivel 100% bennu, hay pequeñas reglas del ENGINE a seguir.

   objBennuGD.Engine = objEngine

    Try
   
        objBennuGD.play()
   
    Catch objEx As BennuGD_Exceptions
   
        objError.ExceptionTYPE = objEx;
        objGUID.ShowMessageBox("Error en juego Bennu.NET debido a " & objError.Text )
   
    Finally

        objGUID.ShowMessageBox("Juego ha terminado")

    End Try



   End Class

End Namespace


======================================================0
Cual es la idea de Bennu.NET = No importa que lenguaje de .NET ocupes, tu codigo
BennuGD y Bennu3D nunca cambiara ya que se encuentra dentro del DataBinding, y
puedes pasar datos(Variables, otras cosas mas...) entre el codigo manejado por el framework( C#, VB, C++)
y el Scripting de BennuGD.

Al usar todos los ensamblados del Bennu.NET puedes hacerte de un juego en linea, 2D, 3D, facil y rapido en
Visual Studio., si preocuparte de conexiones remotas complejas, gestores de errores, manejadores de puertos, etc, etc...

La proxima semana subire el primer Motor .NET, a ver si ya con algunos avances del Xibalba, ya que en la medida del juego esta saliendo el Motor.

por ahorita no me animo a subirlo tiene muchos bugs(millones), pero la prox semana subiere una demo ya mas depurada.

Hay  mucho que desarrollar si alguien quiere apoyarnos es bien recibido, tanto para el motor como para el Xibalba.

Bennu.NET sera distribuido con su codigo fuente completito, licencia GPL, Que Viva BennuGD x Siempre!!!!!!








 
Where reality ends, life begins!

FreeYourMind

Usar C# con Bennu .NET será brutal, ya que actualmente es mi lenguaje preferido y el que uso en el curro, así que me siento como pez en el água, incluso ya lo siento tan facilón que hasta me parece mucho más fácil que los div-like :)
Karma Up, te lo mereces  ;)

SplinterGU

Veo que en los demos corres con el codigo metido en una variable... pensa la opcion tambien de levantar un dcb directamente, ya que muchos programadores no quieren tener el codigo abierto en texto claro en sus distribuciones...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

folken

Ok, SplinterGU, tratare con el DCB, creo que mas adelante te estare molestando con ayuda y preguntas del codigo de Bennu, Gracias por tu Apoyo  :D
Where reality ends, life begins!

SplinterGU

no digo que quites tu opcion, pero que agregues tambien cargar un dcb...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

folken

Si voy a incluir las dos formas de ejecutar el programa bennuGD, modo codigo y por el archivo .dcb directo.

El proximo martes espero subir la primera prueba On-Line del motor, con el primer nivel del Xibalba en 3D, lanzado desde la pagina web del servidor, sera un recorrido simple ya que el Bennu.NET.Engine.dll todavia no esta terminado y es quien proporciona la logica de juego a los niveles.

pero podremos probar el modelo Cliente - Servidor de un juego Bennu.NET, con los siguientes ensamblados:

AxBennuNET.dll
=  ActiveX .NET que es el AutoLaucher (Arquitectura Bennu.NET)

xibal32.exe     
=  ensamblado .net de 32 bits, creado en BennuGD con la  arquitectura Bennu.NET (Juego xibalba) .

underworld.xib
= El primer nivel del juego comprimido en formato .xib (Compresion propia de Arquitectura Bennu.NET), incluye videos divX, ogg, bsp, md2, etc.


Y estos ensamblados que consumen los componentes anteriores para poder operar:

Bennu.NET.Runtime.Core.dll
Bennu.NET.Runtime.Exceptions.dll
Bennu.NET.Data.dll
Bennu.NET.Network.dll
Bennu.NET.Packages.dll
Bennu.NET.3D.World;




Where reality ends, life begins!

folken

Como lo prometido es deuda de honor  :), ya puse avances de Bennu.NET con links de descarga y una pantalla del primer demo corriendo dentro del Browser Internet Explorer 8.0, en breve se podra ya disfrutar del primer recorrido on-line con BennuGD usando el juego de Xibalba. ;D

ver detalles en el post:

http://forum.bennugd.org/index.php?topic=1215.0
Where reality ends, life begins!