lunes, 9 de septiembre de 2013

Anatomía de un juego adictivo



Hace apenas un par de días me senté a jugar Candy Crush vía Facebook. Me llamaba la atención cómo es que un juego como éste pudiese tener 100 millones de usuarios que juegan cotidianamente. ¿Qué es lo que hace este juego especialmente adictivo? ¿Cómo se puede escribir el siguiente juego exitoso? He aquí las conclusiones a las que he llegado:
  • Antes que nada, haga su juego gratuito. No quiero decir con esto que haga una versión recortada para que ésta se distribuya gratuitamente. No. El juego completo, sin restricciones, debe ser gratis. Más de uno ya se estará preguntando ¿cómo entonces el programador hará dinero? Siga leyendo.
  • Haga un juego con cientos de niveles. Esto es para que el usuario no deje de jugar. Imaginen que el PacMan hubiese sido así. Imaginen que cambiaran los laberintos, que hubiese otra clase de perversos personajes diferentes a los fantasmas, imaginen que de acuerdo al nivel adquirido, hubiese otro tipo de pastillas para obtener poderes, etcétera. Otro ejemplo: Tetris: sí, se juega contra el tiempo (salen cada vez más rápidamente los ladrillos) y contra el que no llenes la pantalla de ellos. Qué tal darle un giro, buscar alternativas al juego original, poner otro tipo de ladrillos, por ejemplo, algunos que fuesen invisibles, o que tuviesen premios, o que explotaran al caer al piso, qué sé yo. Las posibilidades son ilimitadas.
  • Los niveles siempre deben ser un reto mayor o diferente al anterior. Me sorprende que Candy Crush tiene no sé cuantos cientos de niveles. ¿Pues qué tanto han pensado estos programadores?
  • Evidentemente el juego debe ser agradable a la vista. Candy Crush tiene -aparte de buenos programadores-buenos diseñadores gráficos y los efectos de sonido y de video son estupendos. Es importante este punto porque un juego puede ser muy bueno, pero si es poco atractivo visualmente, posiblemente no sea muy exitoso.
  • Contrate a alguien para que le haga la música del juego. Esta debe ser relativamente repetitiva para enfatizar que se está en el juego. La música de Candy Crush no me parece particularmente pegajosa, pero es claro que eso le da además, identidad al juego.
  • Y ahora la parte monetaria: si quiere hacer dinero, limite la vida del jugador. En Candy Crush hay cinco vidas (oportunidades, pues), para pasar de un nivel a otro. Cuando uno falla y se acaban las vidas el sistema le da las siguientes opciones: i. esperar una serie de minutos para obtener vidas extras o bien, ii.pedirle a los amigos que le concedan vidas (dentro del mismo Facebook) o incluso, iii. comprar por cantidades menores, 1 dólar, 92 centavos de dólar, etcétera, más vidas. Suena extraño que esto pueda convertirse en un ingreso considerable, pero piénsese: si hay 100 millones de usuarios y sólo el 0.1% compra vidas o lo que el juego ofrece, estámos hablando de 100,000 personas que contínuamente están comprando beneficios para jugar. 100,000 dólares (¿cuánto tiempo le gusta por semana?), no le caen a nadie mal. Y que conste, estoy haciendo un cálculo muy conservador.
  • Ataque todas las plataformas posibles: Candy Crush se puede jugar en Android, en iOS, en el navegador, etcétera. Si quiere tener millones de jugadores se requiere que su gran juego esté en las más plataformas posibles.
  • Si su juego empieza a tener éxito, venda los derechos para que salgan camisetas, balones, juguetes, pijamas, calcomanías por sumas módicas. Seguramente ganará mucho dinero y además, su juego estará mucho más presente en la vida cotidiana de las personas.
Si usted programador tiene una buena idea para un juego y quiere vivir de esto créame, estas recomendaciones podrían hacerlo salir de un salario menor y entrar a “las grandes ligas”. Desde luego que el problema es hacerse de una idea con la que se pueda jugar y que sea lo suficientemente atractiva para que la gente le entre. Ningún juego -de la noche a la mañana- cobra fama instantánea. Angry Birds fue un gran éxito, pero seguro pasó por una temporada de “sensibilización” por decirlo de alguna manera, para que los potenciales jugadores le entraran. Así que ya sabe qué hay que hacer.

martes, 3 de septiembre de 2013

Componente RibbonControl de DevExpress para NET

Contextualizar

El tipo de menú Riboon fue una de las principales innovaciones visuales desarrolladas para aplicaciones de escritorio (y más tarde adaptado para aplicaciones web). Hasta entonces, solían utilizar una estructura simple al menú principal de las ventanas, que consistía en una barra superior y sin muchos detalles gráficos de los que derivan las barras verticales con los elementos que eran sólo de texto, a veces, un pequeño cuadro en la esquina.

La figura 1 muestra un ejemplo de un menú, con el primer elemento resaltado.

Estructura común del Menú Principal
Figura 1: Estructura del Menú Principal Común

En el estilo de menú Riboon, los elementos comenzaron a ser agrupados en pestañas que contienen grupos que se pueden insertar en varios tipos de elementos, tales como botones y cuadros de texto. El ejemplo más conocido de este modelo es el uso de Microsoft Office, como se muestra en la Figura 2.

Menú de Office 2007 a la cinta
Figura 2: menú de Office 2007 a ​​la ribbon

Esto rápidamente se convirtió en uno de los diseños más "deseables" en el medio de la programación del menú, y los desarrolladores han llegado a adoptarlo en sus nuevas aplicaciones y migrar los viejos.

El RibbonControl de DevExpress

En este contexto, algunos fabricantes de componentes comenzaron a desarrollar sus soluciones para diversas plataformas y comercializarlos (o distribuirlos de forma gratuita). Mientras IDEs no proporcionaron un componente nativo para cumplir con esta nueva "ola", empresas como DevExpress incluyen este componente en sus bibliotecas, haciendo más fácil el acceso a este modelo de interfaz.

Aquí se presentarán este componente de DevExpress para Visual Studio, destacando sus principales características y dar las bases necesarias para que cualquier desarrollador con conocimiento de la herramienta puede incluirlo en sus aplicaciones.

Así que para empezar, creamos una aplicación de Windows Forms en Visual Studio (en este caso se utiliza la versión de 2010, pero puede utilizar otra versión, pero teniendo en cuenta que puede haber diferencias debido a las diferentes versiones de la biblioteca).

En el formulario principal, vamos a añadir un RibbonControl desde la pestaña "Navegación y Diseño" en la caja de herramientas de DevExpress.

El aspecto inicial se muestra en la siguiente figura, que pone de relieve algunos elementos de la cinta.

RibbonControl en forma con elementos resaltados
Figura 3: RibbonControl en forma con elementos resaltados

Miembros en comisión son:
  • 1 Barra de acceso rápido: es posible insertar elementos de los que se accede con más frecuencia, lo que facilita el acceso por parte del usuario. Más adelante se explicará cómo agregar elementos a la "Barra de herramientas de acceso rápido" (Barra de herramientas de acceso rápido).
  • 2 pestañas de ribbon: la estructura principal de ribbon está dividida en páginas con pestañas (páginas de ribbon), que se insertan en los grupos con diversos elementos. Un menú que utiliza alusión anteriormente, las páginas podrían representar los puntos de menú más alto nivel (esos son siempre visibles en la parte superior de la ventana).
  • 3 Ribbon Grupo de Páginas: dentro de las páginas son la cinta son los grupos de páginas cinta, en la que se insertan los elementos reales de menú (botones, submenús, cuadros de texto, etc.) Sólo con hacer una referencia rápida de las aplicaciones comerciales, podríamos imaginar que la página era el "registros", mientras que los grupos subdivididos en "acciones", "Personas", "seguridad", etc. Artículo proporcionado a lo largo de la cinta se incrementará para facilitar la comprensión de los conceptos.

Estilo del Ribbon y "utilizar" con los formularios

Ejecutando el proyecto, tenemos un resultado similar a la figura 4, donde vemos que la Riboon se encuentra dentro de formulario. Sin embargo, si se compara con las aplicaciones como Word y Excel, en tales casos, Riboon se "fusiona" con el formulario.

Forma de correr con la cinta interna
Figura 4: Formulario de correr con la cinta interna

Para conseguir el efecto de "fusion" con el formulario, dando la impresión de que él es parte de la estructura de "cerrar" la ventana, se debe utilizar una forma de tipo RibbonForm, situada en espacio de nombres DevExpress.XtraBars.Ribbon.

Para ello basta con cambiar la clase del formulario principal de la aplicación. Visualización del código de la forma, cambiamos la declaración de la clase de la siguiente manera:

Listado 1: Modificando el formulario para RibbonForm
public partial class Form1: DevExpress.XtraBars.Ribbon.RibbonForm
{
public Form1 ()
       {
        InitializeComponent ();
}
}
Ejecutando el proyecto de nuevo, el resultado es diferente, como se ve en la siguiente figura. En tiempo de diseño, ahora es posible ver los cambios estéticos.

RibbonForm fusionó con la cinta
Figura 5: RibbonForm fusionó con la cinta

También puede cambiar el diseño general de Riboon con uno de los tres modelos disponibles: Office 2007, Office 2010 y Office Mac. Para esta configuración, basta con cambiar la propiedad RibbonStyle de Riboon. Los resultados obtenidos son los siguientes:

RibbonStyle Office2010
Figura 6: RibbonStyle Office2010

RibbonStyle MacOffice
Figura 7: RibbonStyle MacOffice

El Office2007 es un patrón de estilo, que se puede ver en la Figura 5.

En las figuras 6 y 7, vemos que hay una flecha en la parte superior derecha de la cinta. Este pequeño botón se puede utilizar para ocultar el área principal de la cinta (donde están los grupos). El mismo efecto se puede lograr haciendo doble clic sobre la solapa.


Adicionando páginas, grupos e items de forma rápida

Para aumentar a Riboon, utilizamos los siguientes procesos:
  • Para agregar páginas: Haga clic en la pestaña de la página y seleccione la opción "Add Page".
  • Para agregar grupos: haga clic en la pestaña de la página en la que se agrega el grupo y seleccione la opción "Add PageGroup".
  • Para añadir elementos: haga clic en el grupo al que desea agregar los elementos y escoger una de varias opciones disponibles.
Estos son los principales procedimientos en la estructuración de Riboon, que forman dan forma al menú rápido.

Para ilustrar, vamos a crear dos páginas con algunos grupos, como se muestra en la Figura 8 ..

Ambos grupos tienen las páginas como la propiedad Text, que representa el texto que aparece en la cinta.

Cinta con páginas y grupos añadidos
Figura 8: Cinta con páginas y grupos añadió

A continuación, añadir algunos botones dentro de los grupos. Los botones tienen varias propiedades, entre las que cabe destacar en este punto:
  • Caption: texto que aparece en el botón.
  • Glyph: pequeña imagen, que aparece junto al texto.
  • LargeGlyph: imagen grande sobre el texto que se muestra en el botón para hacer un "botón grande".
En la siguiente imagen se define con dos botones con Large Glyph una con Glyph y otra sin ninguna imagen.

Botones con y sin imágenes
Figura 9: Los botones con y sin imágenes

Una vez añadidos, los botones funcionan como cualquier otro botón en términos de la interacción del usuario. Para activar el evento click, tome dos clicks en cada uno.


Añadir elementos a la barra de herramientas de acceso rápido y el menú de la aplicación


Para agregar elementos a la barra de herramientas de acceso rápido es necesario utilizar el diseño de la ventana de edición de Riboon,  que se puede hacer desde la "etiqueta inteligente(Smart Tag)" (pequeña flecha aparece en la esquina superior derecha del componente para seleccionarlo) seleccionando la opción "Run Design".

En la ventana que se abre, debe acceder a la opción "Quick Access Toolbar" en el lado izquierdo, como se muestra en la siguiente figura.

Edición de cinta de la ventana
Figura 10: Ventana para editar el diseño de ribbon

Como podemos ver en el lado derecho con los elementos ya creados de la ribbon (sólo los botones). Para agregar a la barra de herramientas de acceso rápido, basta con arrastrar a la región en blanco en el centro de la pantalla.
Para ilustrar esto, vamos a arrastrar el enlace "Productos" y cierre la ventana de edición de diseño. A continuación, compile el proyecto y obtendra el siguiente resultado.

Artículo añadido a la barra de herramientas de acceso rápido
Figura 11: Artículo añadido a la "Barra de herramientas de acceso rápido (Quick Access Toolbar)"

También puede insertar elementos en la cabecera de la cinta, en la región donde las fichas son las páginas. Para ello, de nuevo en la ventana del editor de diseño, seleccione la opción "Elementos PageHeader Ribbon", y, como en el caso de la barra de herramientas de acceso rápido, arrastre los elementos a la región central. En este caso, también insertar el botón "Productos", como se muestra en la Figura 1.

Para añadir elementos a la cabecera de la cinta
Figura 12: Agregar elementos a la cabecera de ribbon

Ahora, el botón aparece en la esquina superior derecha, como se muestra a continuación.

Botón en la cabecera de la cinta
Figura 13: Botón en la cabecera de ribbon

Por último, para completar la personalización básica de Ribbon, podemos insertar elementos en el menú de la aplicación, el que se muestra al hacer clic en el icono bola superior izquierda.

A esto hay que añadir un componente ApplicationMenu en el toolbox del formulario y haga clic en smart tag, seleccionando la opción "Run Design". Esto abrirá la ventana de edición de ribbon, ya conocida por nosotros, y sólo tienes que arrastrar algunos artículos para la región central, como en los casos anteriores. En el ejemplo, se inserta en dos de los botones dibujados creado anteriormente y el resultado se muestra a continuación.

Los elementos del menú de la aplicación
Figura 14: Los elementos del menú de la aplicación

Conclusiónes

Las propiedades, métodos y posibilidades de personalización de RibbonControl son muchas y que tomaría algunos artículos para explicar en detalle.

En esta publicación, sin embargo, el objetivo era dar una visión general del componente, lo que permite a los lectores a empezar a usarlo en sus aplicaciones.

Con la información que se presenta aquí es posible construir una estructura razonable con ribbon para formar el menú principal de los formularios, con las divisiones en pestañas y grupos que a su vez contienen varios elementos.


El presente contenido no es de mi propiedad, si deseas ver el documento original se encuentra en portugues y este es el enlace 
http://www.devmedia.com.br/conhecendo-o-componente-ribboncontrol-da-devexpress-para-net/25945