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

#1
Cita de: raysan en 19 de Diciembre de 2013, 08:02:10 PMSoy profesor de desarrollo de videojuegos y el año pasado tuve que dar clases a alumnos con alto perfil artistico y que nunca habían escrito una linea de código;

Lo primero que enseñan en programación, antes de escribir una sola línea de código, es la creación y desarrollo del "diagrama de flujo" del programa: http://es.wikipedia.org/wiki/Diagrama_de_flujo

Realmente, es la "capacidad" que se necesita para programar. Plasmar las ideas del juego en un diagrama de flujo.

A continuación, es necesario un conocimiento mínimo de matemáticas.

Y después, y por último, un conocimiento mínimo de programación en algún lenguaje dentro de la lista de motores de juego y librerías que existen: https://www.google.es/webhp?hl=es&tab=ww#hl=es&q=free%20game%20libraries

¿Qué lenguaje es mejor? C, C#, javascript, python, ...  Creo que es una pregunta obsoleta viendo los IDE que desarrollan la programación directamente del diagrama de flujo.

-REDKIT: http://www.youtube.com/watch?v=wbmQ6xNxjgA
-uScript(Unity): http://www.youtube.com/watch?v=JxY9hYjF3HE
-Alice 3: http://www.youtube.com/watch?v=T3-7YrN3lpo
-Synapse: https://www.assetstore.unity3d.com/#/content/11701
-Antares Universe(VIZIO): https://www.assetstore.unity3d.com/#/content/495
#2
Crear un IDE visual, tipo REDKIT: http://www.youtube.com/watch?v=wbmQ6xNxjgA

O tipo uScript(Unity): http://www.youtube.com/watch?v=JxY9hYjF3HE

Una programación algo más comercial, tipo motores Construct 2: http://www.youtube.com/watch?v=XQe7p8Cr7nU pero en 3D.

Otros ejemplos obtenidos del asset store de Unity: https://www.assetstore.unity3d.com/#/category/110

-Synapse: https://www.assetstore.unity3d.com/#/content/11701
-Antares Universe(VIZIO): https://www.assetstore.unity3d.com/#/content/495
#3
Principiantes / Código vb .net 2008: Pizarra
22 de Septiembre de 2012, 08:28:51 PM
He retomado visual basic .net para crear una aplicación de dibujo/pintado por capas utilizado la funciones del GDI+. Anteriormente realicé otra aplicación, compuesta por 3 minijuegos o formularios, que implementaba una librería de sonido y una base de datos creada con acces: http://www.stratos-ad.com/forums/index.php?topic=14554.msg149416#msg149416

Durante el proceso, he descompuesto una imagen en blanco y negro (para colorear) en varias partes. De este modo logramos pintar o dibujar áreas específicas fácilmente.


Descargar: https://app.box.com/s/q2j5m4l1pfz7mp0g0dmf

Para obtener el alphaMask de cada capa o layer, he utilizado una pequeña parte del código creado por: http://www.codeproject.com/Articles/313143/VB-NET-Image-Filters

Para el dibujo, inicialmente utilizaba la función 'drawline', pero finalmente he utilizado el ejemplo de 'drawpath' utilizado en el código: http://www.codeproject.com/Articles/4634/A-Simple-VB-NET-Freehand-Drawing-method (aunque en este proyecto no dibujaba sobre un bitmap).

-------------------------

PROBLEMA SURGIDO: Superponer dos o más imágenes con canal alfa en VB.

En el ejemplo, dentro de la carpeta imágenes(que se encuentra dentro de la carpeta debug de la solución) encontramos la imagen principal -sin descomponer-. Las diversas partes de la imagen se encuentran dentro de la subcarpeta 'imgs' que comparten el mismo nombre y se encuentra numeradas desde cero.

En la primera imagen cero o capa/layer inicial, ubicamos las líneas o trazos en negro del dibujo junto a las partes del dibujo que no queramos colorear (por ejemplo el blanco de los ojos, alguna sombra, etc...).

En VB, las imágenes se muestras desde un objeto 'PictureBox'. Pero si superponemos dos o más 'PictureBox' las partes transparentes de la imagen se muestran opacas.

Para poder superponer varias imágenes (en el ejemplo utilizo 12 capas o layers), se debe superponer las imágenes desde un 'Bitmap' utilizando la GDI+ mediante la clase 'Graphics'. Después asociamos el bitmap generado durante la composición a un único 'PictureBox', actualizando la imagen mediante el método 'Refresh'.

Con este método, se podría crean las animaciones y composiciones necesarias para un juego 2D básico.

--------------------------------------------

La composición de pintado consta de:rellenar completamente del color seleccionado, dibujar alphaMask, hacer transparente color negro, montar encima el resto de capas no seleccionadas, y la composición del dibujo: mostrar capa con el área específica seleccionada, dibujar trazos, dibujar alphaMask, hacer transparente color negro, montar encima el resto de capas no seleccionadas.

En la composición,  utilizamos el evento click del ratón (para el pintado), y los eventos mousemove y mouseup (para el dibujo).

-----------------------------------------

También, en el primer proyecto que hice en vb, utilicé unas dimensiones fijas de ventana 1024x768 centrado. Me pareció muy complicado realizar un cambio de resolución de pantalla desde un proyecto WindowsForm con vb, lo que en los motores de juego se realiza sin mucha dificultad.

Este nuevo proyecto es completamente SIZEABLE. El formulario está diseñado desde una resolución de 800x600 (existente en todos o casi todos los equipos actuales), donde todos los controles (excepto la barra de menú) se ajustan a las dimensiones actuales del formulario. Para esto, he guardado en la propiedad de texto 'AccesibleDescription' de cada control 'sizeable' su localización y dimensiones separado por ;

Luego una rutina se encarga de separar cada dato y calcular la nueva posición y dimensión del control.
#4
Siguiendo algunos tutoriales de la web (aconsejo el excelente trabajo de Willy Dev: http://www.willydev.net/descargas/Cursos/vbnet/ ) y algunas muestra de código en foros, he conseguido finalizar un proyecto que tenía en mente.

El proyecto utiliza una base da datos de Access 2007, de donde obtiene la ruta de acceso de las imágenes, y el vocabulario compuesto por 5 idiomas (español, inglés, alemán, francés e italiano), junto a los archivos de sonido con las respectivas voces. En total, está compuesto por 494 términos en los diferentes idiomas que forman 2470 definiciones y 2470 voces.

Para realizar la base da datos, he preferido crearla desde Excel que tiene más opciones de "autocompletado" para después importarla desde Access.

En sistemas de 64-bits ADO.NET da problemas del tipo: El Proveedor 'Microsoft.ACE.OLEDB.12.0' no está registrado en el equipo local. Por lo que he realizado una segunda versión que funciona tanto en 32 como 64 bits, que utiliza un archivo binario como fuente de datos a través de una matriz del tipo 'string', después de volcar los datos de la base de datos Access mediante una pequeña solución o proyecto de Visual Basic.

Para obtener las voces en los diversos idiomas he utilizado el programa "Balabolka": http://www.cross-plus-a.com/es/balabolka.htm

Visual Basic soporta los archivos de sonido ".wav", mientras que los archivos de audio utilizados se encuentran en formato ".wma" (más ligeros), por lo que ha sido necesario utilizar la librería de sonido BASS ( http://www.un4seen.com/ ) junto a un plugin.

Para utilizar la librería de sonido BASS es necesario instalar su .NET API ( http://www.un4seen.com/download.php?z/4/Bass24.Net.zip
  ), para poder añadir una referencia a dicha API desde el menú Proyecto--> Propiedades 'nombre proyecto'--> Referencias--> 'Pulsar sobre botón -Agregar-'. Finalmente añadimos la línea de código 'Imports Un4seen.Bass' en la cabecera de nuestro código para poder utilizar la librería BASS.

El proyecto está compuesto por:

- Un módulo con variables y funciones genéricas (sobre todo las de sonido)

- Un cuadro de diálogo con el que, al inicio del programa, seleccionamos el idioma.

- Tres formularios que representan los 3 tipos de juego que son:

*DICCIONARIO*

*ABECEDARIO*

*JUEGO DE CARTAS*

-----------------------------------------------------------------------------------------------------------

Las descargas incluyen el proyecto completo, donde encontraréis tanto el diseño de las diferentes ventanas como el código generado para Visual Basic, para lo que será necesario tener instalado Visual Basic 2008 Express Edition: http://www.microsoft.com/visualstudio/en-us/products/2008-editions/express

También está disponible la versión 2010 Express Edition: http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express  Pero esta versión no la tengo instalada.

Para la primera versión que funciona sólo en 32 bits y utiliza una base de datos Access 2007, en el caso de no tener instalado Office 2007, también es necesario '2007 Office System Driver: Data Connectivity Components': http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23734

El enlace de descarga de la primera versión para sólo 32 bits que utiliza base de datos Access 2007: http://www.box.net/shared/szd9dktflrv2i8uz9ty3

El pequeño proyecto o solución que he utilizado para volcar el contenido de la base de datos Acces a un archivo binario ha sido este: http://www.box.net/shared/dxtocp8uj4jzlpu0o8u7

La versión final, que funciona tanto para 32 como para 64 bits, utiliza un archivo binario como fuente de datos (creado con la aplicación anterior) en lugar de la base de datos Acces, y además incluye la versión de 32 y 64 bits de la librería de sonido BASS y su plugin para archivos de sonido ".wma", donde mediante código detecta la plataforma existente y carga los .dll's requeridos.

Enlace de descarga de versión final 32-64 bits: http://www.box.net/shared/l8zb4qvhyarxye546dtf

En ambas descargas, encontrareis las carpetas de compilación donde se encuentra el archivo ejecutable '.exe', y sólo es necesario tener instalado el 'Framework 3.5': http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=21 (y para la primera versión, además, el 'Data Connectivity Components': http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=23734 si no tienes instalado Office 2007 )

Saludos.
#5
Proyectos / Re: iL-engine v2.0 Nueva demo
30 de Agosto de 2009, 10:27:00 AM
No suelo ver vídeos de demostración pero estos los he visto hasta el final, los dos.

Me gustaría saber que estudios o carrera universitaria has cursado, si ha sido en un centro público o privado, si ha sido necesario estudiar en el extranjero.

La razón de saber todo esto, es porque no entiendo por qué nadie hasta ahora ha desarrollado una aplicación de estas características y lo ha hecho público. Parece ser que en todos los centros no se estudia lo mismo.

Sobre el motor, me ha impresionado mucho, me gustaría saber si piensas comercializarlo en el futuro ( aunque has dicho que es un proyecto de fin de carrera ), incorporando físicas o editores, y si fuera así, si va a ser sólo en el ámbito profesional.

Saludos.
#6
Cita de: Hechelion en 13 de Julio de 2009, 01:54:00 AM
Agregar al comentario de Gorkin, que te leas detenidamente la licencia del juego

De acuerdo. Sólo añadir que para saber el tipo de licencia del juego en cuestión, debemos haberlo adquirido antes. No aparece ningún distintivo en la caja o envoltorio que sirve de recipiente al juego, y no se utiliza esa información para facilitar su venta. Quizás a alguien le pueda interesar saber que puede utilizar los recursos del juego, y no sólo jugar.

Pero, por muchas limitaciones que establezca la licencia creo que como mínimo podemos hacer lo que ha dicho Gorkin.

Cita de: Gorkin en 13 de Julio de 2009, 01:14:56 AM
No puedes usar o redistribuir material de otros videojuegos así como así, aunque sea gratis.

Cuando te refieres a gratis, incluyes a los juegos freeware y abandonware. ¿Con este tipo de sofware siguen habiendo limitaciones?.
Si no he entendido mal, ¿sólo se pueden hacer mods? ¿no se pueden utilizar en un motor de juego como ha dicho EX3?

Saludos.
#7
Hola.

Todos conocen el tema relacionado con el modding de juegos, donde podemos extraer los recursos del juego para ser modificados.

Si quisieramos utilizar esos recursos fuera de ese juego, en un nuevo proyecto desarrollado con un motor de juego ¿nosotros podríamos?.

Cuál es la normativa vigente (creo que cada país aplica normas diferentes, como Estados Unidos y España), o cuáles son las limitaciones de uso de estos recursos (modelos 3D, sonidos, texturas, ... ).

Creo que sería posible utilizar los recursos de un juego comercial para un proyecto personal y no comercial, pero no podríamos dejar un enlace de descarga de ese proyecto que incluye los recursos extraídos de un juego comercial.

Por último, sería posible, a base de ciertas modificaciones en el modelo 3D, poder ser utilizado libremente.

Saludos.




#8
Enlace de descarga:

http://www.box.net/shared/qyjycbidxo


Documento revisado, donde he realizado los siguientes cambios:

-Sustituido comentarios con la expresión '/0', por la expresión correcta '\0'.
-Añadido ejemplo, variabledatoMATRIZ en llamada y variable puntero en el parámetro de la función.
-Añadida nuevas formas de declarar matrices de dos, tres, cuatro o más dimensiones de memoria dinámica (con new), y ejemplo.
-Añadida definición de variable referencia. Diferenciando entre referencia, variable referencia y variable puntero.
-Añadido utilización de variable referencia y variable puntero en el tipo de variable de retorno (TvRetorno,cuando se utiliza return) de la función.

Como ejemplo de utilización de variables puntero en el TvRetorno de la función, he creado varias funciones que manipulan matrices de texto. En algunos motores de juego no podremos utilizar la librería string, y las funciones de este ejercicio nos vendrán muy bien pues producen los mismos resultados que strcpy o strcat por ejemplo, y además son totalmente compatibles con todos los motores de juego ya que utilizan solamente sentencias e instrucciones de c++. El código se encuentra en la página 44 y el nombre de las funciones son:

-dimension (similar a strlen)
-crearTexto. Copia parte de una cadena.
-copiarTexto (tanto de otra variable como de una cadena)
-mayusculas. Establece en mayúsculas los caracteres de la cadena
-minusculas. Establece en minúsculas los caracteres de la cadena
-Emayusculas. Escribe sin modificar en mayúsculas la cadena
-Eminusculas. Escribe sin modificar en minúsculas la cadena
-Unir (similar a strcat). No considera si existe suficiente espacio en la cadena de destino.
-Anyadir (como la anterior pero es capaz de redimensionar la matriz si es necesario).

Además de programación, también sería conveniente saber algo de modelado 3D. Yo he preferido Blender, que es gratuito y puedes encontrar bastante información en español. De todos modos, el tiempo que he empleado en el aprendizaje de esta herramienta lo he aprovechado para ampliar más si cabe la información disponible sobre la utilización de este modelador, en nuestro idioma. Aquí os dejo los enlaces de descarga, y espero que sirva de ayuda a alguien:

BLENDER Primeros Pasos
http://www.mediafire.com/?zmo0y0xnjzq

BLENDER Ejercicios Modelado y Animacion
http://www.mediafire.com/?lzmmywkn2zm

Apuntes de SOLIMAN en PDF
http://www.mediafire.com/?4jt5gizzz3l

BLENDER Animacion Bones & Action Editor
http://www.mediafire.com/?elmimtwklhe

BLENDER&PAINT.NET Terreno Game Engine Personalizado
http://www.mediafire.com/?t5d1mqwztoz

BLENDER - Mapear materiales con BAKE&UV Smart Projections
http://www.mediafire.com/?dkzhmfy15j5



En el tutorial sobre c++, también he incluido el código de un ejercicio en ESENTHEL donde podremos colocar en pantalla los diversos elemento del juego, incluso modificando sus parámetros, y así conocer las coordenadas o configuración necesarios. Algunas imágenes:


-



Saludos.
#9
También he comenzado hace poco con c++, y he realizado un tutorial que espero te sirva de ayuda. Aquí podrás encontrar el enlace de descarga:

http://mundovilla.foroactivo.es/foro/viewtopic.php?t=110

Saludos.
#10
Principiantes / TRIGONOMETRIA y juegos 3D
20 de Febrero de 2009, 03:00:21 PM
Saludos.

He realizado un pequeño ejemplo de código donde comento las diferentes funciones utilizadas en Esenthel para controlar la cámara: http://perso.orange.es/tomas_cg75/TallerCamara.html

En el ejemplo necesité calcular el angulo vertical y horizontal entre dos posiciones 3D (x,y,z), y al mismo tiempo hice otra función donde calcular la distancia.

La cuestión es que me puse a buscar información sobre trigonometría y sólo encontraba las fórmulas elementales pero ningún sitio donde se comentara la trigonometria aplicada sobre juegos.

Tal vez la razón de esto sea que los motores de física (PhysX, ODE, etc...) ya incorporan funciones que calculan estas cosas.

Quería preguntar al foro si conocen otras funciones que contengan fórmulas matemáticas (en c++ si es posible) útiles para realizar juegos 3D (movimiento, parábola al lanzar un objeto, trazar un camino (path) para la cámara a partir de una matriz de posiciones, simular el balanceo de un barco en el agua,....)   ???

También agradecería que echaran un vistazo a las funciones Yaw y Pitch del código de ejemplo.
#11
General / Re: ¿Existe algún game engine hispano?
30 de Enero de 2009, 06:09:46 PM
Cita de: josepzin en 30 de Enero de 2009, 05:42:16 PM
A mediados de los 80, TODO el material bueno era en ingles, a mediados de los 90 TODO el material bueno era en ingles. Me refiero a libros, los mejores libros eran los originales en ingles, los que estaban traducidos llegaban meses/años mas tarde y generalmente era pensando en los que no sabian ingles, o sea que tenian menos nivel de programacion, tipo "Guía para principiantes del 3D". En cambio el libro "Guía de C++ y Ensamblador avanzado chachiguay" estaba solo en ingles.

Ahora con internet es parecido, la ventaja es que la red es grande y buscando siempre algo se encuentra, pero es que en ingles está TODO.

Hay cosas en este mundo contra las que no se puede remar contra la corriente.

Para no tener que ir contra la corrientes hay que aprender ingles, si luego TU proyecto quieres hacerlo en la comunidad hispana/latina, asumiendo que los ingleses ni se asomarán a tu documentación, es tu decision. Pero si para aprender tienes la limitación de no saber inglés, irás mucho mas lento que el resto, que sí sabe ingles y puede acceder a muchos mas conocimientos que tu.

Las cosas son así.

Y lo dice alguien que de inglés hablado no entiende una y apenas si sabe escribirlo... Sólo entiendo ingles técnico escrito.

Estoy de acuerdo contigo.

Pero yo no dispongo del tiempo, ni interés para estudiar los documentos en inglés relacionados con los últimos avances en la programación porque no es mi profesión.

Sólo dedico parte de mi tiempo libre en desarrollar un poco de código o aprender a utilizar herramientas 3D como modeladores.

Tan sólo digo, que si hubiera un poco más de información o herramientas en mi idioma, que es el de muchos, quizás avanzaría más.

Saludos.
#12
General / Re: ¿Existe algún game engine hispano?
30 de Enero de 2009, 04:47:21 PM
Cita de: Buffon en 30 de Enero de 2009, 02:36:17 PM
Por otra parte, nunca me ha gustado utilizar la palabra demágogo si no es para políticos, pero tu aquí hiciste demagogia.

A mi entender, demagogia sería decirle a un barrendero que veas por la calle, que has creado un engine con la documentación en inglés para que al mismo tiempo que aprende a utilizarlo se 'culturalice', y se encuentre preparado para cuando en el cine pongan las películas en versión original (en inglés por supuesto), y de paso viaje por el mundo que cuesta dos duros.

Y que bueno, a caballo regalado....   lentejas.



PD: No se tomen los comentarios muy en serio.
#13
General / Re: ¿Existe algún game engine hispano?
30 de Enero de 2009, 02:05:31 PM
Cita de: H-K en 30 de Enero de 2009, 01:33:39 PM
Y ahora me sales con que existen comunidades que se dedican a traducir porque hay gente que no sabe inglés... es que eso no tiene que ver nada con lo que estamos hablando aquí. Pero naíta.

Esos enlaces a comunidades hispanas sobre creación de videojuegos, estan ahí para mostrar que sí hay gente interesada en el tema de los game engines y que no sólo los angloparlantes demuestran interés por estas cosas.

Muchos engines se han desarrollado sin ánimo de lucro y algunos han sido creados por hispanoparlantes que no han utilizado su idioma para documentar el engine (sus motivos tendrán), y no se entiende por qué no lo han hecho si no van tras un fin comercial, y ya existen multitud de engines en lengua inglesa y cero patatero en español (excepto Entidad-3D).

Pero es que además, al que pregunta por un game engine con documentación en español se le tacha de vago por no querer aprender o saber inglés (que no es mi caso), cuando realmente para su vida diaria no necesite un nivel avanzado de la lengua de Shakespeare, y aquí casi nadie conoce lo que es trabajar sólo 40 horas semanales.

Saludos.



#14
General / Re: ¿Existe algún game engine hispano?
30 de Enero de 2009, 12:19:09 PM
¿Para mí solito?  :D

http://www.mundovilla.es/inicio.html
y su foro: http://mundovilla.foroactivo.es/foro/

http://www.birneuhost.com/rfespanol/portal.php
y su foro: http://www.birneuhost.com/rfespanol/index.php


Allí se encuentra mucha gente, traduciendo textos en inglés al español para que la información llegue a mucha más gente. La mayoría de ellos programadores noveles o por ocio, mientras que aquí se debate si debemos utilizar sólo el inglés, o que salir al extranjero vale dos duros.

Ahora, no le pidas a esa gente que traduzca la documentación de tu engine, si comparado con decenas de engines en inglés no les salen las cuentas.

Valdrá dos duros salir al extranjero, si sales con el maletero del coche lleno de bolsas del carrefour con comida y bebida, porque  ¿haber quien tiene bemoles a pedir una cerveza por Francia o Alemania? cuando los franceses cruzan la frontera en manada para comprar tabaco, bebida y otras cosas.

Saludos.
#15
General / Re: ¿Existe algún game engine hispano?
30 de Enero de 2009, 07:44:10 AM
Cita de: seryu en 30 de Enero de 2009, 06:27:56 AM
la identidad cultural española es pelearse entre nosotros por los idiomas, los toros y la siesta (que pocos disfrutan). No lo voy a echar de menos.

Ahí ya te has pasado.

Primero recorre todo tu país, y conócelo bien, antes de visitar todo el mundo.

Al que no le salga las cuentas o no le apetezca desarrollar un sofware con la documentación en la lengua de su tierra natal, allá él.

Gracias a Dios, existe el libre mercado y una veintena de países más de habla hispana donde existe más universidades de informática y donde no se necesita tanto capital para desarrollar software.

Saludos.