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 - raysan

#1


Hola a todos!

Tras 6 meses de trabajo llega una nueva versión de raylib con increíbles mejoras!

- Más de 30 nuevas funciones añadidas a la libreria: control de ventana, utilidades para archivos, dibujado de lineas con grosor, detección de colisiones 3d detallado, simulador VR y mucho más.

- Soporte de flags para configurar cada módulo de raylib de manaera independiente. Los usuarios avanzados pueden escoger en tiempo de compilación que features desean que incluya la librería, evitando featues no deseadas.

- Sistema de build mejorado en todas las plataformas (Windows, Linux, OSX, RPI, Android, HTML5) con un único Makefile para compilar el código fuente. Añadido soporte para compilación Android con custom toolchain y nuevos flags de compilación.

- Nuevos ejemplos y juegos añadidos a la colección. Todo el material ha sido revisado y mejorado, adaptándolo a la nueva versión y testeado en múltiples plataformas. Sistema de build mejorado para ejemplos.

- Mejorada consistencia y organización de la librería, algunas funciones y parámetros han sido renombrados y muchas partes de la librería han sido revisadas, con código más claro y mejores comentarios. Partes de la librería han sido simplificadas ofreciendo una implementación más genéricas.

- Otras muchas features: Soporte para gamepad en HTML5, soporte pantalla tactil en RaspberryPi, soporte audio 32bit, mejoras en el timming de frames, soporte para formato de datos custom rres, grabación automática de animaciones GIF...

Tal vez el añadido más interesante para muchos estudiantes sea la posibilidad de generar automaticamente un GIF de su juego, simplemente pulsando CTRL+F12 para grabar/parar en cualquier momento.

Como siempre, todo apoyado con nuevos ejemplos de código y un instalador pre-configurado con todas las herramientas necesarias para empezar a desarrollar desde el primer minuto!

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

También podéis acceder al foro donde consultar dudas y enseñar vuestros juegos: http://forum.raylib.com
#2
nueva versión de raylib disponible! Commemorando el tercer aniversario de la libreria llega raylib 1.6 con un monton de novedades:

- Binding completo a LUA. Toda la funcionalidad de raylib desde LUA! Incluyendo +60 ejemplos de código portados a LUA.

- Modulo de audio completamente rediseñado, mucho más versatil, facil de utilizar y con soporte mejorado para procesado de audio y streaming de musica (+20 nuevas funciones).

- Physac, nuevo módulo de físicas 2D, completamente reescrito desde cero por @victorfisac! Gravedad, fricción, coeficientes de restitución, rotura de poligonos... Realmente impresionante!

- Módulos camera y gestos revisados, simplificados y portados a librerias header-only para máxima portabilidad y flexibilidad.

- Soporte de gamepads mejorado en plataformas de escritorio y Raspberry Pi, con la inclusion de nuevas funciones para configuraciones de gamepads custom.

- Soporte de fuentes de texto mejorado, incluyendo soporte para ASCII extendido (idiomas europeos) y generación de fuentes desde ficheros TTF. Filtrado de texturas configurable!

- Sistema de build mejorado con soporte para compilación a librería dinámica (raylib.dll) e inclusión de múltiples proyectos para Visual Studio C++ preconfigurados.

Como siempre, todo apoyado con nuevos ejemplos de código y un instalador pre-configurado y autocontenido con todas las herramientas necesarias para empezar a desarrollar desde zero!

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

También podeis acceder al foro donde consultar dudas y enseñar vuestros juegos: http://forum.raylib.com
#3
Muchas gracias Gallo! Muy interesante la librería! Sin duda me sera muy útil para cálculos de iluminación más complicados. :)

Como aportación adicional, una librería que justo he encontrado hoy y me parece increíble: https://github.com/ands/lightmapper
#4
Gracias Gallo! Esta nueva versión ha supuesto bastante trabajo de rediseño para adaptar la librería al sistema de materiales/luces y al render estéreo para VR! A partir de aquí, espero que sea más sencillo añadir soporte para PBR.

Actualmente el sistema de materiales es fijo a nivel de usuario pero se puede modificar fácilmente a nivel de desarrollador. Simplemente tengo un shader standard (similar al de Unity) que soporta un número de parámetros configurables, básicamente determinados por las structs Mesh (atributos de vertices soportados: position, texcoords, texcoords2, normal, tangent, color)  y Material (parámetros soportados: color diffuse-ambient-specular, mapas diffuse-normal-specular). Todos estos datos los recibe el shader (solo si estan activos, es decir si han sido asignados) y el shader hace todos los cálculos pertinentes, incluyendo iluminación (según luces activas).

Cualquiera puede modificar el shader (o crearse el suyo propio) para hacer cálculos de iluminación más complejos o custom.
#5
Hola a todos!

Parece mentira que ya han pasado 2 años y medio desde que empece esta aventura llamada raylib... y sigo rescatando este post... :P

No mas esperas! Tras 5 meses de trabajo desde la última versión, hoy llega raylib 1.5! Esta nueva versión supone un gran rediseño de la librería y llega con increibles novedades:

- Soporte para Oculus Rift CV1 y VR simulado. Probablemente una de las pocas librerías del mercado que permite programar en C de manera sencilla para Oculus Rift CV1, incluyendo soporte para VR simulado; es decir, si no dispones de un dispositivo de VR, simplemente se genera un render en estereo con distorsión simulando las especificaciones del dispositivo seleccionado. Y funciona en todas las plataformas, incluyendo HTML5 y Raspberry Pi!

- Nuevo sistema de materiales. Soporte de materiales para modelos 3D, similar a otras herramientas del mercado, incluyendo soporte para color diffuse-ambient-specular y texturas diffuse-normal-specular.

- Nuevo sistema de iluminación, con soporte para 8 luces configurables de 3 tipos diferentes: point, directional y spot.

- Soporte de gamepad mejorado en Raspberry Pi. Multiple gamepads configurable soportados, realizando la lectura de datos en modo raw en un segundo thread.

- Sistema de físicas 2D mejorado, mucho más sencillo de utilizar y eficiente.

- Soporte para módulos de audio (.xm, .mod) y mezcla de multiples canales de audio.

- Otras mejoras como un sistema de cámara 2D, render a textura y soporte para OpenGL 2.1 en escritorio.

Todo apoyado con nuevos ejemplos de código y un instalador pre-configurado y autocontenido con todas las herramientas necesarias para empezar a desarrollar desde el minuto zero!

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

También podeis acceder al foro donde consultar dudas y enseñar vuestros juegos: http://forum.raylib.com

Como siempre, todo feedback es bienvenido! :)
#6
Hey Gallo! Muchas gracias por el interés! Si necesitáis cualquier tipo de información adicional solo tenéis que pedírmela!

#7
Hola XÑA! Me alegro que te guste!  :)

Si, raylib soporta la compilación del código C directamente a asm.js (http://asmjs.org/). Para ello utilizo emscripten (http://kripken.github.io/emscripten-site/), es la misma tecnología que utilizan otras herramientas como Unity o Unreal en las últimas versiones, aunque raylib es mucho más libiano. Además, en raylib me he limitado a utilizar solo algunas de las funciones de OpenGL ES 2.0 para evitar capas de emulación al transformarse el código a WebGL y obtener así el máximo rendimiento.

En la Wiki de raylib https://github.com/raysan5/raylib/wiki/Compile-your-game-for-Web hay algo más de explicación de como configurar y utilizar emscripten.

Evidentemente, todos los juegos y ejemplos están preparados para compilarse también en Escritorio, Android o Raspberry Pi. ;)
#8
Hola a todos,

De nuevo, rescato el post original para anunciar raylib 1.4. De nuevo, tras muchas horas de trabajo llega una nueva versión de raylib. Algunas de las novedades de esta versión:

- Una gran novedad es la inclusión de un set de funciones para manipular imagenes: cortar, escalar, coloreado, flip, dithering e incluso dibujado de imagen sobre imagen o texto sobre imagen, todo ello en la CPU y antes de convertir la imagen a textura.

- El sistema de SpriteFonts ha sido mejorado añadiendo soporte para fuentes AngelCode (.fnt) y fuentes TrueType. Ahora el SpriteFont se genera automáticamente a partir del fichero .ttf.

- Nuevo módulo para físicas 2D (physac). Todavía en fase experimental pero completamente funcional, un par de ejemplos incluidos para un plataformas 2D y un sistema de aplicación de fuerzas.

- El módulo raymath ha sido revisado y transformado en un fichero .h (header-only) para mayor portabilidad. Se ha añadido la posibilidad de usar las funciones como inline.

- El módulo de detección de gestos (gestures) ha sido completamente rediseñado para soportar cualquier touch-event, incluso los provenientes de ratón. De este modo podemos crear juegos multiplataforma con la misma base de código.

- El sistema de inputs para Raspberry Pi tambien ha sido rediseñado para utilizar eventos genericos de Linux. Tambien se ha añadido soporte experimental para gamepad.

- Otros añadidos importantes incluyen funciones de raycast para 3D picking incluyendo detección de colisiones entre rayo y esfera/cubo; un par de funciones para guardar/cargar datos desde disco e incluso se ha añadido un pequeño módulo para easings (animación de valores).

- Sin duda, el añadido que más va a interesar a los usuarios van a ser los 8 nuevos ejemplos de código (http://www.raylib.com/examples.htm) y más de 10 ejemplos de juegos (http://www.raylib.com/games.htm) para aprender, incluyendo juegos clásicos como Arkanoid, Asteroids, Missile Commander, Snake, Pang o Tetris.

Muchas horas de trabajo han concluido en esta nueva versión de #raylib.

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

También podeis acceder al foro donde los estudiantes consultan sus dudas y enseñan sus juegos: http://forum.raylib.com

Como siempre, todo feedback es bienvenido!

Saludos,

Ray
#9
Hola megamarc!

Muchas gracias por tus palabras y enhorabuena por Tilengine, un trabajo impresionante! Recuerdo haber visto el post en algún momento por el foro pero no había podido verla con detalle... Como comentas, el enfoque es diferente a raylib pero veo que tiene similitudes y que hay mucho esfuerzo puesto en ella; los ejemplos son muy espectaculares, que nostalgia cuando los veía! La web y la API reference están genial!

Solo un detalle sobre los samples, al intentar ejecutarlos directamente desde samples/win32 me pedía Tilengine.dll y SDL2.dll (era de esperar), pero casi todos los ejemplos se quedaban colgados; he deducido que no encontraba los recursos necesarios en la misma carpeta. También he echado de menos el código fuente de la librería... ;)

Sobre lo que me comentas de la compilación de raylib para Android, utiliza los mismos src que la versión escritorio, raspberypi o html5. Simplemente facilito el proyecto (o llamale makefile) C:\raylib\raylib\src_android\jni\Android.mk que hace referencia a las fuentes de C:\raylib\raylib\src y genera la librería que puedes encontrar en C:\raylib\raylib\templates\android_project\jni\libs\libraylib.a.
Ese mismo proyecto en templates: C:\raylib\raylib\templates\android_project\jni\basic_game.c es un proyecto de android que se puede compilar utilizando el NDK para generar directamente el .APK. Al instalar raylib, se instala Notepad++ portable preconfigurado con un monton de scripts (F6) para recompilar la librería o el proyecto Android.

Si, conozco Python aunque hace años que no lo utilizo... Escogí C para educación porque me parece básico, atemporal, multiplataforma (incluso microprocesadores) y su conocimiento se puede aplicar a muchísimos otros campos a parte del diseño de videojuegos, sin duda es el primer paso para dar luego el salto a C++ y C#... y básicamente porque creo que todo el mundo debería aprenderlo. Se que el proceso de compilación no es fácil, por eso a mis alumnos les facilito una serie de scripts con Notepad++ ya preparados. Respecto la depuración, creo que si el alumno aprende a convivir sin ella y es capaz de buscar sus errores, luego todo es infinitamente más sencillo.

Llevo 2 años utilizando raylib con más de 150 alumnos y hasta ahora ha funcionado excelentemente bien; la mayoría de alumnos, en apenas 40h de clase y empezando desde cero (sin haber escrito una linea de código en su vida), han sido capaces de crear un videojuegos programando a pelo (Notepad++), incluso algunos se han presentado a la Global Game Jam y han finalizado sus juegos con raylib... me parece increíble... y es una muestra de que raylib funciona para educación.

No me había planteado un wrapper para Python (tampoco se como hacerlo) pero todo añadido a raylib es muy bienvenido. :D

Respecto Linux, al parecer había un pequeño error en el makefile que ya esta resuelto en la rama develop de github.

De nuevo, muchas gracias por tu respuesta y tu feedback y enhorabuena por Tilengine!

Saludos,

Ray
#10
Hola a todos,

Rescato este viejo post para anunciar una nueva versión de raylib.

Tras 8 meses de trabajo, he publicado raylib v1.3. Sin duda es la mayor actualización de la librería desde su creación e incluye un montón de novedades:

- Soporte para Shaders: Aplicables a modelos 3d o a postprocesado, con una sencilla interfaz de uso. Además se incluye una pequeña colección de shaders de postprocesado listos para usar (tanto en version GLSL 330 como version 100).

- Soporte múltiples formatos de Texturas: El módulo de texturas ha sido enormemente mejorado, no solo se pueden cargar nuevas extensiones.dds, .pkm, .ktx, .astc, .pvr; demás se puede escoger el formato interno de las texturas: GRAYSCALE, R5G6B5, R5G5B5A1, R4G4B4A4... DXT1, DXT3, DXT5, ETC1, ETC2, ASTC, PVRT...

- Módulo de Cámaras: Un nuevo módulo que incluye una serie de cámaras predefinidas para su uso: FREE, ORBITAL, FIRST_PERSON, THIRD_PERSON

- Módulo de Gestures: Un nuevo módulo que incluye soporte de múltiples gestos para dispositivos táctiles (Android, HTML5). Util para detectar TAP, DOUBLE-TAP, HOLD, DRAG, SWIPE_RIGHT...

- Modulo raygui: Un nuevo módulo para la creación de GUIs en modo immediato (IMGUI). Util para la creación de tools multiplataformas sin dependencias externas. Todavía en fase experimental pero totalmente funcional.

- Cientos de cambios y mejoras por todo el código

Además se han revisado y añadido +20 nuevos ejemplos de código mostrando todas las nuevas funcionalidades (http://www.raylib.com/examples.htm).

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

También se ha añadido en la web un nuevo foro donde los estudiantes pueden consultar sus dudas y enseñar sus juegos: http://www.raylib.com/forum/index.php?p=/categories

Como siempre, todo feedback es bienvenido!

Saludos,

Ray
#11
Hola Gallo! Feliz año nuevo para ti tambien! :D

Ya me encontre con la falta de VAOs al portar raylib a RaspberryPi; raylib detecta automaticamente si estan disponibles y si no lo estan hace fallback al uso de VBOs. Con emscripten fuerzo el uso de VBOs, de este modo compila a WebGL nativo, sin ninguna capa de emulacion, obteniendo el máximo rendimiento posible. He hecho varias mejoras en raylib en ese sentido...

Ya hace tiempo que estuve probando raylib en OSX con un amigo, funciona muy bien pero hay algunas cosillas que se tienen que tener en cuenta, como las rutas de carga de recursos (texturas, sonidos...); tengo un pull-request en GitHub con una primera version de la pipeline para OSX pero tiene algunos conflictos y todavía no he hecho el merge... igual me pongo esta noche... :P De todos modos, toda ayuda y colaboración es bienvenida! Si, me gustaría que todo pudiese funcionar con un único makefile, simplemente definiendo la 'platform'... pero aun no tengo claro como hacerlo... De momento raylib compila a 32bit, opción para 64bit estaría genial!  ;)

Tema iOS? Lo estuve mirando en su día pero a diferencia de Android, requiere una parte de código en Objective-C y no me parecio sencillo adaptar raylib para compilar en iOS... supongo que también por falta de tiempo...
#12
Hola de nuevo!

He publicado una nueva version de raylib! Esta nueva version añade algunas funciones y corrige algunos bugs pero su mayor añadido es el soporte para web! Es decir, ahora puedes compilar tus proyectos en C con raylib directamente para web (html5).

Podeis ver un ejemplo de ello junto con las principales funcionalidades de raylib aqui: http://www.raylib.com/raylib_demo.html

Podeis descargar raylib desde: http://www.raylib.com/
o desde GitHub: https://github.com/raysan5/raylib

Ahora ya no hay escusa para aprender a programar videojuegos!

Un saludo,

Ray
#13
Hola Battyhal,

Muchísimas gracias por tus halagos, realmente me ha llevado bastante trabajo crear raylib y hacerla una librería eficiente y fácil de utilizar.

Respecto lo que comentas del software libre, raylib puede funcionar en prácticamente cualquier plataforma que soporte alguna versión de OpenGL y el lenguaje de programación C; sobre todo en plataformas como Windows, Linux y OSX. En la web ofrezco un instalador para Windows que, a parte de raylib, incluye el editor de código Notepad++ y el compilador de C MinGW, pero puedes utilizar raylib desde cualquier sistema operativo. De hecho esta semana pasada un alumno estuvo trabajando desde OSX con Xcode. Trabajar desde Linux es todavía más facil!

En las próximas semanas intentaré preparar algún pequeño paquete e instrucciones para instalar y utilizar raylib en esos sistemas operativos, de veras que no es dificil.

Doy clases de programación de videojuegos en un centro privado, mis alumnos tienen un perfil altamente artístico y la mayoría no han escrito una linea de código en su vida. Todos ellos acaban programando (y entendiendo) un videojuego sencillo... para eso creé raylib! :D
#14
Battyhal, ¿por qué no pruebas a utilizar raylib (www.raylib.com)?

Yo mismo la he creado y funciona excelentemente bien con mis alumnos.

Además, puedes descargarte el instalador de raylib que te lo configura automaticamente todo.

Saludos!
#15

Con raylib siempre puedes aprender más que su simple utilización para pequeños test. La libreria esta pensada de tal modo que ella misma sea una herramienta de formación; es decir, la estructura en modulos es sencilla de enteder y el código fuente contiene un monton de comentarios i anotaciones para poder entenderlo todo.

Cualquier tipo de feedback siempre es bien recibido, como te comentaba, la librería ha evolucionado gracias al feedback de mis alumnos. Un soporte básico para networking es una gran idea, aunque ahora mismo necesitaría bastante investigación en ese campo...

No tengo ni blog ni foro y se que debería pero no tengo tiempo para ocuparme de todo... Si que tengo twitter y raylib tiene página de facebook donde se muestran algunos trabajos de alumnos pero me faltan muchas cosas por subir...






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.