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

Temas - mi-go

#41
Programación gráfica / Resoluciones en un juego sencillo
11 de Febrero de 2009, 05:17:02 PM
Buenas!
Tengo una cuestión general sobre resoluciones para un juego.

Una de las cosas por las que me gusta Flash es porque no hay que preocuparse por las resoluciones que tenga la gente en su pc o móvil (flash lite).
Sólo basta con indicar si quieres que se mantenga visible lo que era visible en su formato original o si quieres que se muestre o se oculten cosas por culpa del cambio de aspecto (de 4:3 a 16:9 o 14:9).
Al no indicarle una resolución, si le decimos que se ejecute a pantalla completa realmente estaremos jugando a la resolución que teníamos puesta en el sistema operativo, por ejemplo 1400 pixels de ancho. Como un juego en Flash en 2D no suele estar demasiado cargado visualmente en la mayoría de los casos funcionará a la perfección.
Esto, en mi opinión, facilita mucho las cosas, libra al jugador de tener que seleccionar algo que igual no sabe lo que es y además en un TFT se verá siempre bien (si es que tenías puesta la resolución adecuada, que en la mayoría de los casos suele ser).

Bueno pues ahora me pregunto si no existe esa posibilidad en los motores 3D, para poder leer la resolución que tiene puesta en el sistema y poner esa del tirón.
He visto que muchos juegos sencillos no-flash lo que hacen es poner por ejemplo 800x600 o algo así (por ejemplo kukoo kitchen o World of Goo) sin importarles que se desproporcione en pantallas panorámicas o que se vea algo borroso en algunos TFTs.
Entiendo las razones para hacer eso, además de que creo que esos juegos están hechos con gráficos bitmaps y no vectoriales.

Pero ¿y en un juego 3D sencillo?
Si es un juego sencillo en 3D aunque lo pongamos a 1400 en la mayoría de pcs con acelaradora irá bien.
¿Sabéis si Irrlicht u Ogre tienen alguna función para leer la resolción del sistema (ya sea Win, Linux o Mac) antes de iniciar el modo de pantalla?
¿Creeis que es buena idea hacer eso o habría muchos juegos que no irían bien aunque fueran medianamente sencillos gráficamente?
#42
Programación gráfica / OpenGL + Glut o Glow o que ?
18 de Diciembre de 2008, 08:38:58 PM

Buenas!!
Vuelve el pesado de las preguntas  :P

Hace tiempo estuve metiéndome con OpenGL desde cero siguiendo principalmente este libro que tengo:
http://www.casadellibro.com/libro-open-gl-incluye-cd/2900001032046

Me gusta mucho el libro, pero trata OpenGL usando la librería Glut y cuando estuve haciendo algo más complicado que simples pruebas me vi obligado a usar Glow.
Glow es una adaptación de Glut a C++, pensado mejor para la POO.
http://glow.sourceforge.net/

El tema es que quiero volver a ponerme pero otra vez desde el principio con OpenGL, ahora que entiendo más cosas y me veo mucho más preparado para entederlo todo mejor desde el principio.
Pero tengo la duda de si volver a usar Glow o si habrá alguna otra cosa mejor.
En el libro hacen uso de Glut, por eso veo bien usar Glow, que tiene detrás todas las fuciones igualmente.

Pero ¿realmente este es buen método para empezar ahora o está demasiado desfasado?
¿O como es para aprender OpenGL sigue valiendo?

gracias!!
#43
Parte 1 => Programación: Introducción
Parte 2 => Programación: Estructura, POO, Timers
Parte 3 => Programación: Tweens, Sonido, Colisiones
Parte 4 => Mercado: Métodos para ganar dinero


4. Uso de Tweens para animaciones sencillas

4.1 Tofus en movimiento con Tweens

El movimiento automático de los tofus en el juego es sencillo: se desplazan de izquierda a derecha, subiendo un poco, como si flotaran, y cuando son destruidos descienden.

En Tofu Hunter para controlar este movimiento incluyeron un Listener al MovieClip del tofu en su evento ENTER_FRAME.
La función que ejecuta el Listener cada vez que es llamada se encarga de incrementar la coordenada X y disminuir la coordenada Y del tofu.
Esto hubiera sido una buena práctica si se hubiera llamado a la función con un Timer y no con el evento ENTER_FRAME como ya expliqué en apartado 2. Timers para controlar el juego.
Además tampoco tiene sentido estar incrementando los valores X e Y del MovieClip en un movimiento tan sencillo como es un desplazamiento lateral y vertical que no varía su trayectoria porque el juego no tiene elementos que así lo hagan cuando existe la clase Tweens.

Para movimientos sencillos en AS3 tenemos la clase Tween, que se encarga automáticamente de variar una propiedad de un objeto de forma progresiva según le digamos. Así, por ejemplo, podemos variar progresivamente las coordenadas de un objeto.


En Tofu Hunter 2, para el desplazamiento lateral añadiremos el siguiente Tween una vez es creado el tofu:
this.oTweenLateral = new Tween(this, "x", Regular.easeIn, this.x, this.mcJuego.originalWidth + 100, nRandom, true);

Para eliminar el tofu cuando haya salido del juego por la derecha añadiremos un Listener al Tween que se ejecute cuando termine la animación y que se encargue de eliminar el tofu del juego:
this.oTweenLateral.addEventListener(TweenEvent.MOTION_FINISH, TweenLateralHandler);

Para hacer que también vaya subiendo poco para que parezca que flotan, como en Tofu Hunter, incluiremos otro Tween:
this.oTweenVertical = new Tween(this, "y", Regular.easeIn, this.y, this.y - 50, nRandom, true);

Con el movimiento de caer y girar un poco cuando es destruido haremos algo muy parecido:
this.oTweenVertical = new Tween(this, "y", Strong.easeIn, this.y, this.mcJuego.originalHeight + 100, 1, true);

//Para eleminarlo cuando termine
this.oTweenVertical.addEventListener(TweenEvent.MOTION_FINISH, TweenVerticalHandler);

//Lo hacemos girar un poco cuando es destruido, como Tofu Hunter 1
this.oTweenLateral = new Tween(this, "rotation", Regular.easeIn, this.rotation, this.rotation + 100, 1, true);





4.2 Clases Tweens que no son de Adobe

En TofuHunter2 hemos usado la clase Tween de Adobe por ser fácil de usar y por no tener que incluir el uso de otra clase externa, pero la clase Tween de Adobe no funciona correctamente y es muy aconsejable usar otras clases externas Tween que no son de Adobe.

La clase Tween de Adobe tiene dos problemas muy importantes:

  •    Las animaciones se detienen sin ninguna razón.
    Si la usamos para modificar varias propiedades de un mismo objeto  a la vez (por ejemplo para moverlo, girarlo y ampliarlo) acabaremos teniendo problemas porque habrá veces que las animaciones se detengan sin ninguna razón.
  •    El rendimiento no es bueno.
    Si ejecutamos muchos tweens sobre muchos objetos el rendimiento es muchísimo menor que con otras clases Tween que no son de Adobe.


Las clases Tween más usadas que no son de Adobe son:

  •    Tweener.
    Gratuita.   http://code.google.com/p/tweener/
    Personalmente es la que menos me gusta a la hora de programar porque no puedes crear objetos de la clase y tratarlos por separado, si no que añades y quitas animaciones a la clase principal.
    Puede que tenga esta estructura por ser una adaptación de la clase Tween de ActionScript 2.
  •    TweenLite y TweenMax.
    Gratuitas sólo para fines no comerciales.   http://blog.greensock.com/
    Según un test hecho por su creador son las de mejor rendimiento. TweenLite puede resultar muy útil para la creación de baners por su tamaño más reducido.
  •    gTween.
    Gratuita. http://www.gskinner.com/libraries/gtween/
    Actualmente en desarrollo, pero funciona sin errores.

Ventajas de usar cualquiera de estas clases:

  •    Funcionan.
    No se detienen sin razón como lo hace la clase Tween de Adobe.
  •    Rendimiento mayor.
    El rendimiento es mayor cuando ejecutamos muchos Tweens sobre muchos objetos.
    Puedes ver una coparativa de redimiento hecha por el creador de TweenMax: http://blog.greensock.com/tweening-speed-test/
  •    Código más legible.
    Con la clase Tween de adobe tenemos que crear un objeto de esta clase por cada propiedad que queramos cambiar en otro objeto.
    Con cualquiera de las otras clases Tweens una instancia y en una sola línea de código podemos lanzar cambios en tantas propiedades como queramos.
  •    Más tipos de suaviazados.
    Estas otras clases de Tweens incluyen más variedad de tipos de suavizados en la animación o variación de una propiedad.





5. El sonido de un Tofu

En Tofu Hunter 2 incluiremos en la función tofuClickHandler un par de líneas para que cada vez que destruimos un tofu se reproduzca un sonido que previamente hemos agregado a la biblioteca del proyecto:

var sndExplosion:Explosion = new Explosion();
var channel:SoundChannel = sndExplosion.play();






6. Colisiones de una estrella

Tofu Hunter 2 tiene un nuevo elemento en el juego: una estrella que si toca alguno de los Tofus los elimina del juego.

Cada instancia de la clase Tofu tendrá un Timer que comprobará constantemente si está colisionando con la estrella.
En la función IniciaTofu:
this.oTimerColision = new Timer(10);
this.oTimerColision.addEventListener("timer", TimerColisionHandler);
this.oTimerColision.start();

Y para comprobar si colisiona crearemos la siguiente función que es llamada por el Timer:
   private function TimerColisionHandler(event:Event){
      if (this.hitTestObject(this.mcJuego.oEstrella))
      {
         this.Eliminar();
      }
   }


En ActionScript existen dos tipos de detección de colisiones:

  • hitTestObject – Evalúa la colisión de dos objetos tratándolos como cuadrados que rodean al objeto, sin tener en cuenta la figura real del objeto.
  • hitTestPoint – Evalúa la colisión entre un punto en concreto con la figura real de un objeto.


#44
Parte 1 => Programación: Introducción
Parte 2 => Programación: Estructura, POO, Timers
Parte 3 => Programación: Tweens, Sonido, Colisiones
Parte 4 => Mercado: Métodos para ganar dinero


1. Estructura del código AS3 para un videojuego

1.1. Una clase principal


En Tofu Hunter 1 todo el código del juego se encuentra en la capa "actions" del proyecto Flash.
Esto sería correcto sólo si el código de nuestra película Flash fuera algo muy sencillo, y en el caso de un videojuego no es así.
Es algo habitual encontrar esta forma de programar en flash en muchos de los ejemplos que hay en Internet, pero de esta forma el código se vuelve menos legible y menos reutilizable.



En Tofu Hunter 2 crearemos una clase principal del juego en un archivo ".as" externo a nuestro proyecto Flash, y un archivo .as por cada clase que creemos.
De esta forma el código queda separado de la parte de diseño de flash, y cualquier clase se podrá reutilizar en otro juego tan sólo copiando su archivo .as

Para crear la clase principal del juego y especificar al proyecto flash cual es:
1º- Creamos el archivo ".as".

2º- Una vez abierto el nuevo documento AS lo guardaremos en la misma carpeta de nuestro proyecto Flash.

3º- En las propiedades de la película Flash en "Clase de documento" escribimos: "TofuHunter2".

4º- En nuestra capa "actions" sólo introduciremos una llamada a nuestra función encargada de hacer iniciar el juego.




1.2. Programación organizada

En el código Tofu Hunter se mezclan las declaraciones de variables con las ejecuciones de instrucciones y las declaraciones de las funciones.

Parece que se ha programado con una visión lineal de un lenguaje estructurado, pero AS3 es un lenguaje orientado a objetos y esto nos posibilita tener una programación mucho más organizada y reutilizable.


En Tofu Hunter 2 tendremos nuestra clase principal del juego en la que declararemos nuestras variables globales (que son los atributos de nuestra clase principal) y que tendrá una función que se encargará de iniciar el juego y llamar al resto de funciones del juego, que podrán ser de la clase principal o de otras que creemos.

Por ejemplo, en vez de crear y programar el comportamiento de nuestro puntero en la línea principal del tiempo (como se hace en Tofu Hunter), haremos una clase "Puntero" de la que crearemos un instancia en nuestra clase principal del juego.
Dentro de la clase "Puntero" es donde programaremos el comportamiento de nuestro puntero, que será seguir el movimiento de la posición del ratón.
Finalmente en la clase principal tan sólo escribimos algo que queda mucho más claro:
var oPuntero:Puntero = new Puntero();
oPuntero.Inicio(this);


En Tofu Hunter 2 tendremos la siguientes clases:
-   TofuHunter2: la clase principal del juego.
-   Puntero: controla el comportamiento del puntero en el juego.
-   Tofu: todos los tofus serán objetos de esta clase.
-   EstrellaMalvada: estrella que nos servirá de ejemplo para las colisiones.
-   Utils: agrupa funciones genéricas que nos podrán servir en otros juegos.

Cada clase irá en un archivo .as distinto y todos deberán estar en la misma carpeta del proyecto Flash.





2. Tofus orientados a objetos

Como vimos en el apartado 1.2 Programación organizada, Tofu Hunter no utiliza el potencial de la programación orientada a objetos. Antes nos referíamos a la estructura del código en general, ahora veremos como se debería utilizar para la creación de instancias de una nueva clase Tofu.

En Tofu Hunter, en la clase principal del juego se crean nuevos Tofus de esta manera:
switch (randomTofu) {
         case 1:
            thisMC = new tofu1_mc();
            break;
         case 2:
            thisMC = new tofu2_mc();
            break;
         case 3:
            thisMC = new tofu3_mc();
            break;
         default:
            return;
            break;
      }
Y a continuación se cambian propiedades de thisMC y se le asignan ciertos Listeners. En total unas 70 líneas de código aproximadamente.


En Tofu Hunter 2 crearemos la clase Tofu, donde que será donde programaremos las propiedades con la que se tiene que iniciar un Tofu y los Listeners que le queramos asignar, ya sea en el propio constructor de la clase o en una función propia para iniciarlo.

Al iniciar el objeto de la clase Tofu también le añadiremos como hijo uno de los tres tipos posibles de MovieClips que son los dibujos de los Tofus.

En nuestra clase principal tan sólo escribiremos esto:
var oTofu:Tofu = new Tofu();
oTofu.IniciaTofu(this);



3. Timers para controlar el juego

En Tofu Hunter, una vez iniciado el juego, la mecánica básica se ejecuta cada vez que la película Flash dibuja una imagen de la animación (frame).
Incluyeron un Listener para el evento ENTER_FRAME:
stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);

La function enterFrameHandler es la que se encarga de generar los tofus que aparecen en pantalla.

Esto es algo peligroso porque estamos basando la velocidad de la mecánica del juego en la capacidad de mostrar imágenes del ordenador.
Si tenemos configurada la película Flash a 30 imágenes por segundo puede que en un ordenador antiguo, o en un juego Flash muy complejo, la cantidad de imágenes por segundo que el ordenador consiga mostrar sean 20. Con lo que la velocidad real del juego se está reduciendo también y realmente a 20 imágenes por segundo se podría haber seguido jugando con una suavidad visual de movimientos aceptable.


En Tofu Hunter 2 crearemos un Timer para controlar la creación de Tofus.
Un Timer que se ejecute cada 33 milisengundos es equivalente a llamar a una función en cada frame de una película configurada a 30 imágenes por segundo:
private var oTimerCreaTofu:Timer = new Timer(33);
oTimerCreaTofu.addEventListener("timer", TimerCreaTofuHandler);
oTimerCreaTofu.start();

De esta manera aunque en algún momento nuestro PC no fuera capaz de llegar a pintar 30 imágenes por segundo y viéramos las animaciones con menos de fluidez de imágenes, el desarrollo real del juego seguiría ejecutándose a la misma velocidad.

Cabe pensar aquí el caso en el que la lógica del juego fuera muy compleja y al no estar sincronizada con el pintado de las imágenes se mostrara una imagen con algún elemento en una situación no coherente con el resto de la escena, pero en la mayoría de los proyectos que realicemos que se de esta situación será algo más raro que el inconveniente explicado anteriormente por haber escrito la lógica en el evento Enter_Frame; y aún así siempre podremos crear un sistema para controlar esto.
#45
Parte 1 => Programación: Introducción
Parte 2 => Programación: Estructura, POO, Timers
Parte 3 => Programación: Tweens, Sonido, Colisiones
Parte 4 => Mercado: Métodos para ganar dinero


Introducción

En este tema de la semana voy a repasar algunos métodos de programación recomendados para la creación de un videojuego en flash con ActionScript 3 (AS3).

Tomaré de ejemplo el juego Tofu Hunter que Adobe da como ejemplo de programación en su web y explicaré como desarrollar un nuevo juego, Tofu Hunter 2, mejorando el anterior en cuanto a estructura y forma de programación haciéndola más adecuada para la creación un videojuego en AS3 e incluiré la reproducción de sonidos y la detección de colisiones.

Puedes ver Tofu Hunter 2 en mi web:
http://www.javiermairena.net/videojuegos/tofuhunter/tofuhunter.html

Principalmente veremos:
-   Estructura del código AS3 para un videojuego.
-   Timers para controlar la mecánica del juego.
-   Programación orientada a objetos en AS3.
-   Uso de Tweens para animaciones sencillas.
-   Reproducción de sonidos.
-   Detección de colisiones.

En los post sólo trataré los conceptos de forma general, para ver su implementación real es necesario consultar el código fuente de Tofu Hunter 2 que está disponible en mi web:
http://www.javiermairena.net/videojuegos/tofuhunter/tofuhunter.zip


Nota: no quiero desvalorar el trabajo que ha hecho Adobe al dar Tofu Hunter como ejemplo de programación en AS3, soy consciente de que Adobe dio este ejemplo para que se entendieran algunos conceptos de programación, dejando a un lado otros para un mayor entendimiento.

En Tofu Hunter 2, para simplificar el ejemplo yo he preferido dejar de lado el sistema de control de puntuaciones de Tofu Hunter y dar un paso más explicando otros conceptos importantes a la hora de programar un videojuego en AS3.





Antes de Empezar

Necesitaremos tener instalado Flash 9 o superior.
Puedes descargar una versión de evaluación de la versión 9 (CS3) en:
https://www.adobe.com/cfusion/tdrc/index.cfm?product=flashpro&loc=es_es

Después, en mi web se encuentra el código fuente de Tofu Hunter y Tofu Hunter 2.
http://www.javiermairena.net/videojuegos/tofuhunter/tofuhunter.zip


Nota: Originalmente el código fuente de Tofu Hunter 1 se encuentra en el conjunto de ejemplos que nos da Adobe sobre programación en AS3 en Flash:
http://livedocs.adobe.com/flash/9.0/main/samples/Flash_ActionScript3.0_samples.zip

Hay también una referencia a este archivo en:
http://www.adobe.com/support/documentation/en/flash/samples/

Tofu Hunter 1 tiene el nombre animation dentro del archivo Flash_ActionSript3.0_samples.zip






Elegir entre Flash o Flex

Para programar un videojuego podemos elegir entre usar Flash o Flex, los dos generan la misma película flash y el resultado será el mismo.

Aunque a la hora de programar, un programador se sentirá más cómodo en Flex porque tanto FlashDevlop como FlexBuilder (los dos entornos de trabajo con los que podemos trabajar con Flex) están totalmente orientados a la programación, muy parecidos a otros entornos de programación; FlexBuilder de hecho es una versión del Eclipse para Flex.

Otra ventaja de usar Flex es que las librerías de Flex son gratuitas al igual que el entorno de trabajo FlashDevelop, aunque seguiremos necesitando usar Flash si queremos importar gráficos creados por nosotros mismos.

En este tutorial usaremos Flash por ser un ejemplo sencillo y para no tener que explicar el uso de otro entorno.


ANEXO: Instalar y configurar Flex/Flash Develop
#46
Programación gráfica / matemáticas 3D
03 de Diciembre de 2008, 01:52:18 PM

Buenas!!

En algunos libros que he visto sobre programación 3D se incluía un capítulo resumen sobre las matemáticas más usadas en la programación 3D.

¿Me podéis recomendar algún libro en que os haya gustado espacialmente por el contenido de este apartado?


Gracias!!  ;)
#47
Flash/Flex / API para puntuaciones
01 de Noviembre de 2008, 11:35:20 AM
Buenas!!

Viendo que hay varias APIs gratuitas para puntuaciones me gustaría saber cual recomendáis los que ya habéis probado algunas.

Me gustaría que fuera de las que se pueden mostrar directamente las puntuaciones en el juego, no que abra otra página web.
Y también, si es posible, que no incluya publicidad.

Gracias!
#48
Programación gráfica / Mac, Linux, Windows...
29 de Octubre de 2008, 01:58:42 PM
Buenas, esto es una pregunta general.

No estoy seguro, pero tengo entendido que los juegos que salen para Mac utilizan OpenGL.
Sabiendo esto... y viendo que Linux va tomando un poco de terreno (aunque muy poco a poco), se me plantea una duda:

Si estás haciendo un serius game donde los gráficos son algo muy importante supongo que se tratará de un juego para PS3, XBOX y Windows (con DirectX).
Pero si estás haciendo un juego casual, educacional, o cualquier otro tipo (que ahora mismo son la mayoría ¿no?) para PC lo deberías hacer usando un motor de los que te abstraen de DirectX y OpenGL y que con sólo cambiar una línea tienes el juego en OpenGL o DirectX. ¿no?

Así cubrirías a todos los usuarios de PC, ya que la potencia de OpenGL te da de sobra para el tipo de juego que es.

Esto es sólo una idea / pregunta, espero vuestras respuestas!!
#49
Flash/Flex / Flash 10 (CS4)
11 de Octubre de 2008, 12:31:31 PM
Buenas!
Hace unos 20 días que se presentó CS4, con la versión 10 de Flash!!!
He estado mirando un poco las características y  ^_^'

Todavía no hay versión definitiva del player, pero hay un prerelease y una demo de una aplicación aquí:
http://labs.adobe.com/technologies/flashplayer10/

Resumo un poco:
-3D Effects. Fast, lightweight, and native 3D effects
- Custom Filters and Effects - same technology used for many After Effects CS3 filters. Shaders in Flash Player are about 1KB and can be scripted and animated at runtime.
- Advanced Text Layout
- Enhanced Drawing API. 3D APIs,
- Visual Performance Improvements – Applications and videos will run smoother and faster with expanded use of hardware acceleration.
- Enhanced Sound APIs


Y las versiones del flash player son:
# dlDownload Plugin for Windows (EXE, 1.76 MB)
# dlDownload Plugin for Macintosh (DMG.ZIP, 5.45 MB)
# dlDownload Plugin for Linux (TAR.GZ, 3.78 MB)
# dlDownload Plugin for Linux (RPM, 3.84 MB)
# dlDownload Plugin for Solaris-x86 (TAR.BZ2, 4.06 MB)
# dlDownload Plugin for Solaris-Sparc (TAR.BZ2, 4.39 MB)

Linux !!!
¿antes no había versión oficial de un flash player para linux, no?


Con el soporte nativo de 3D y aceleración por hardware Flash 10 se convierte en una alternativa muy a tener en cuenta para hacer juegos en 3D también!!!
Me encanta Flash porque hacer juegos en 2D es muy rápido,  y ahora encima con 3D...  y con versiones para todos los sistemas operativos...
#50
Flash/Flex / Micrófono sin LoopBack
11 de Octubre de 2008, 01:02:27 AM
Buenas!!

Estoy haciendo pruebas con el micro y tengo un problema.
Si ejecuto el código que pongo más abajo, que lo he sacado directamente de la ayuda de flash, me funciona todo bien.

Pero si quito lo de: mic.setLoopBack(true);
Porque no quiero escucharme a mi mismo...  ya no me sale la ventana que me pide permiso para usar el micro y no pasa nada. No salta el evento ACTIVITY ni nada.

Según he leído en la ayuda nada más hacer Microphone.getMicrophone(); debería saltar la ventana que pide permiso, pero a mi no me salta y supongo que por eso después el micro no va.

¿Alguien sabe como hacerlo sin el LoopBack?


código del ejemplo:

import flash,events.ActivityEvent;
import flash,events.StatusEvent;
import flash.media.Microphone;

var deviceArray:Array = Microphone.names;
trace("Available sound input devices:");
for (var i:int = 0; i < deviceArray.length; i++)
{
trace(" " + deviceArray);
}

var mic:Microphone = Microphone.getMicrophone();
mic.gain = 60;
mic.rate = 11;
mic.setUseEchoSuppression(true);
mic.setLoopBack(true);
mic.setSilenceLevel(5, 1000);

mic.addEventListener(ActivityEvent.ACTIVITY, this.onMicActivity);
mic.addEventListener(StatusEvent.STATUS, this.onMicStatus);

var micDetails:String = "Sound input device name: " + mic.name + '\n';
micDetails += "Gain: " + mic.gain + '\n';
micDetails += "Rate: " + mic.rate + " kHz" + '\n';
micDetails += "Muted: " + mic.muted + '\n';
micDetails += "Silence level: " + mic.silenceLevel + '\n';
micDetails += "Silence timeout: " + mic.silenceTimeout + '\n';
micDetails += "Echo suppression: " + mic.useEchoSuppression + '\n';
trace(micDetails);

function onMicActivity(event:ActivityEvent):void
{
trace("activating=" + event.activating + ", activityLevel=" +
mic.activityLevel);
}

function onMicStatus(event:StatusEvent):void
{
trace("status: level=" + event.level + ", code=" + event.code);
}
#51
Flash/Flex / TofuHunter 2 - juego tutorial de iniciación
08 de Octubre de 2008, 09:43:07 PM
Buenas!!

Aquí traigo un pequeño tutorial para los que están empezando a programar en ActionScript 3.
Para los más expertos no creo que ya les sirva de mucho  :P   pero a mí me hubiera venido muy bien tener esto cuando empecé...

Se trata de una nueva versión de un ejemplo de un juego que tiene Adobe en su web: TofuHunter.

El zip incluye el código fuente comentado de ambos juegos, TofuHunter y TofuHunter 2, y además un documento que trata estos puntos:
- Estructura del código AS3 para un videojuego.
- Timers para controlar la mecánica del juego.
- Programación orientada a objetos en AS3.
- Uso de Tweens para animaciones sencillas.

Si veis algo que esté mal avisadme para cambiarlo, yo no soy un megaexperto de flash...  todavía   :P
Es posible que en el futuro vaya aumentando el código del juego para tratar otros temas básicos como el sonido y las colisiones, pero de momento creo que esto ya puede servir de ayuda a los que empiezan.

Podéis descargarlo desde aquí: http://www.javiermairena.net/videojuegos/tofuhunter/tofuhunter.zip

TofuHunter 2 sirvió también para la realización del DevSpace#2 de DeSEA:
http://www.desea.es/index.php/2008/10/08/resumen-devspace2/

Saludos!!!
#52
Flash/Flex / Resolución juego Flash para publicar
15 de Septiembre de 2008, 10:46:07 AM
Buenas!!

Vengo con otra pregunta para los que ya han publicado juegos en páginas de sponsors y demás...

¿Piden que el juego esté en alguna resolución en concreto? ¿o a alguna relación de aspecto?

¿los haceis que se puedan escalar, o lo dejais siempre a la resolución fija sin permitir estiramientos?

Gracias!!
#53
Flash/Flex / Flash vs Flex para juegos
11 de Septiembre de 2008, 09:37:06 AM
Buenas!

Bueno, aquí viene la pregunta que surge del título de esta sección del foro.
¿Qué es mejor para programar juegos, Flash o Flex?

Ya existe una discusión sobre este tema aquí:
http://www.gamedev.net/community/forums/topic.asp?topic_id=472009

Yo soy programador y hasta ahora había usado Flash.
Según todo lo que he leído sobre Flex:
- Flex es mejor para hacer grandes aplicaciones, sobre todo que si son aplicaciones y no juegos.
- Los programadores suelen preferir Flex porque en Flash se sienten perdidos.
- Parece que cuando hay muchos programadores es mejor Flex...

Yo ahora sí me siento cómodo programando en Flash. Es verdad que cuando ves algunos códigos de ejemplos que hay en internet que tienen todo el código en una capa de la película no mola mucho... y que cuando empecé a programar en Flash empecé así...
Pero ahora no escribo nada en ninguna capa de flash, todos son clases en archivos .as y todo me parece muy organizado.
Lo que supongo que pasa en Flex es que te obligan a ser organizado, no tienes la libertad de hacerlo mal como en Flash.

La cosa es que ¿realmente es necesario usar Flex para juegos?
Las razones de usar Flex creo que pierden un poco de sentido si piensas en pequeños juegos Flash casuals:
- En un juego no vamos a necesitar usar miles de controles típicos de una aplicación de base de datos.
- Si programas bien, organizado, te sientes cómodo. Por lo menos yo.
- En un pequeño juego casual flash no suele haber muchos programadores.

Bueno, opinad que yo Flex sólo he leído sobre él pero no he trabajado con él todavía.
Saludos!


#54
Proyectos / AudioDisco 2.0
21 de Julio de 2008, 05:09:22 PM
Hola a todos!!

Os presento AudioDisco 2.0
AudioDisco es un juego accesible para personas con problemas de visión, incluidos ciegos totales.

Podéis bajar la versión para windows con instalador aquí (no hace nada más que descomprimir y crear iconos):
http://www.audiojuegos.net/audiodisco.exe

Y la versión en .swf para los que tengan mac o linux:
http://www.audiojuegos.net/audiodiscolinux.zip

El objetivo del juego es lanzar un disco a nuestro adversario intentando marcarle un tanto.
Cada movimiento del disco tiene un sonido característico.
Dentro del juego hay un tutorial donde se explica todo el funcionamiento del juego.

Básicamente es como un Pong limitado a 3 posiciones y accesible para ciegos.
Es recomendable jugar con auriculares o con altavoces bien separados.

Algunos ya conocisteis la versión 1 en el EDVS2 y me alegró que inspirara ideas para hacer más juegos accesibles, y por eso mismo vuelvo a presentarlo por aquí.

Muchos de los juegos que hacemos para practicar al final no son disfrutados por nadie, la gente lo prueba un rato y lo deja. Son muchas horas de curro para que después nadie las disfrute.
AudioDisco 1 fue una satisfacción muy grande para mí, porque había mucha gente que estaba disfrutando de él y que todavía siguen jugando con su familia.

Después de probar mi juego, si queréis probar más juegos accesibles para ciegos podéis ver lo poquito que hay en español en una web que empecé hace poco:
http://www.audiojuegos.net

Y lo que hay en inglés (que está algo mejor la cosa):
http://www.audiogames.net

Sobre accesibilidad en general en los videojuegos tenéis esta página:
http://www.game-accessibility.com/

Existe un grupo de google en el que participan muchas personas con problemas de visión hablando sobre lo poquito que hay y que fue gracias a ellos como pude ir probando el juego y hablar sobre la idea.
http://groups.google.com/group/tiflo-juegos

Muchos de los juegos que veréis son sin imágenes, porque el desarrollo es mucho más rápido y fácil (esa fue mi idea primera también); pero hacer un juego con imágenes y accesible es mucho mejor porque puede servir como medio socializador porque al tener imágenes resulta atractivo para los videntes como nosotros, jeje.
Cuando empecé a hablar con ciegos a raíz de mí idea, muchos me comentaban que los videntes normalmente no querían jugar con ellos a juegos sin imágenes.

Y bueno, así incluso puede jugar un sordo contra un ciego  xD

Espero inspirar a alguien y animaros en este tema


:wink:
#55
Proyectos / AudioDisco 2.0
21 de Julio de 2008, 05:07:05 PM
Hola a todos!!

Os presento AudioDisco 2.0
AudioDisco es un juego accesible para personas con problemas de visión, incluidos ciegos totales.

Podéis bajar la versión para windows con instalador aquí (no hace nada más que descomprimir y crear iconos):
http://www.audiojuegos.net/audiodisco.exe

Y la versión en .swf para los que tengan mac o linux:
http://www.audiojuegos.net/audiodiscolinux.zip

El objetivo del juego es lanzar un disco a nuestro adversario intentando marcarle un tanto.
Cada movimiento del disco tiene un sonido característico.
Dentro del juego hay un tutorial donde se explica todo el funcionamiento del juego.

Básicamente es como un Pong limitado a 3 posiciones y accesible para ciegos.
Es recomendable jugar con auriculares o con altavoces bien separados.

Algunos ya conocisteis la versión 1 en el EDVS2 y me alegró que inspirara ideas para hacer más juegos accesibles, y por eso mismo vuelvo a presentarlo por aquí.

Muchos de los juegos que hacemos para practicar al final no son disfrutados por nadie, la gente lo prueba un rato y lo deja. Son muchas horas de curro para que después nadie las disfrute.
AudioDisco 1 fue una satisfacción muy grande para mí, porque había mucha gente que estaba disfrutando de él y que todavía siguen jugando con su familia.

Después de probar mi juego, si queréis probar más juegos accesibles para ciegos podéis ver lo poquito que hay en español en una web que empecé hace poco:
http://www.audiojuegos.net

Y lo que hay en inglés (que está algo mejor la cosa):
http://www.audiogames.net

Sobre accesibilidad en general en los videojuegos tenéis esta página:
http://www.game-accessibility.com/

Existe un grupo de google en el que participan muchas personas con problemas de visión hablando sobre lo poquito que hay y que fue gracias a ellos como pude ir probando el juego y hablar sobre la idea.
http://groups.google.com/group/tiflo-juegos

Muchos de los juegos que veréis son sin imágenes, porque el desarrollo es mucho más rápido y fácil (esa fue mi idea primera también); pero hacer un juego con imágenes y accesible es mucho mejor porque puede servir como medio socializador porque al tener imágenes resulta atractivo para los videntes como nosotros, jeje.
Cuando empecé a hablar con ciegos a raíz de mí idea, muchos me comentaban que los videntes normalmente no querían jugar con ellos a juegos sin imágenes.

Y bueno, así incluso puede jugar un sordo contra un ciego  xD

Espero inspirar a alguien y animaros en este tema


:wink:
#56
Modelado / busco modelo 3D de espada laser
02 de Junio de 2008, 09:07:57 AM
Hola a todos!

Soy programador y llevo todo el fin de semana buscando un modelo 3D de una espada laser con pocos polígonos (es para cargarlo en un juego) y no encuentro nada que sea gratuito y con textura!!

He perdido mucho tiempo buscando y sólo encuentro modelos pagando o modelos sin textura. Y los que son pagando tienen pinta de tener muchos polígonos.

He probado cargando otro tipo de espada, pero no pega nada con lo que quiero hacer, otros objetos me da igual que varíen de mi idea principal del juego, pero la espada tiene que parecer una espada laser.


¿Alguien sabe donde puedo encontrarla con textura y en formato .obj o .3ds o algún otro que cargue el motor Irrlicht?

Gracias!!
#57
Programación en red / Conexión pc a pc con Flash
01 de Abril de 2008, 12:11:02 AM
Buenas!!

Tengo un juego hecho en flash y quiero añadirle un modo online 1vs1.

He estado mirando libros y por internet y no veo la forma de hacerlo conectando pc a pc directamente por la IP sin que tenga que haber un servidor por en medio, o sin que uno de ellos tenga publicado vía http un archivo .xml de seguridad cargándolo así: Security.loadPolicyFile("http://....

Mi juego se descarga, y cada uno tiene una copia en su disco duro; quiero hacer que se conecten pc a pc directamente por la IP como un juego normal de to la vida.
Pero parece que flash no admite eso...

Por favor ayuda!!!





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.