jueves, 22 de abril de 2010

QYK Development (I): Architecture

(-- English Below --)

¿Como estamos estructurando el código de QYK? 
Pues como dijo un gran sabio, un sitio para cada cosa y una cosa para cada sitio.

El código lo tenemos divido en librerías, las cuales tienen un manager que son las fachadas de estas librerías.
Las librerías tienen que ser claramente diferenciables entre ellas por su función en el código, así tenemos:
  • Eventos: Se encarga de todo el input.
  • Render: Es la librería gráfica. Utilizamos OpenGL para facilitarnos la tarea.
  • IA: Aqui definiremos todas las funciones que tengan relación con la Inteligencia Artificial. Ejemplos de estas funciones pueden ser el pathfinding A* o el comportamiento de los enemigos (PNJs).
  • Internet: Es la librería donde declararemos las funciones de comunicación entre los clientes y el servidor para el multijugador.
  • Animación: Aqui implementamos los timers que usamos para las animaciones así como otras utilidades. 
  • Sound: Utilizando la librería FMOD creamos las clases necesarias para tener música y efectos sonoros.
  • Fisica: Gracias a la ODE hemos creado una librería de fisicas útil para detectar colisiones y rebotes.
  • Helper: Librería especial en la que hay todas aquellas clases útiles para simplificar el trabajo de las demás librerías como puede ser una clase Vector3, o Coord2D.
  • MAIN: Y finalmente la lógica del juego. Personajes, escenarios, etc.
Como hemos comentado antes, los managers son clases fachadas que nos permiten utilizar sus respectivas librerías sin tener que preocuparnos de como estan implementadas por dentro, así tendremos la RenderManager, SoundManager, etc. donde cada uno de estos managers estan implementados con el patrón singleton.

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

How we are structuring the QYK code?
Well, as said a great man, a place for each thing and a thing for each place.
The code is divided into libraries, which have a manager that are the facade of these libraries.  
The libraries must be clearly distinguished between them for their role in the code, so we have:
  • Events: Responsible for all the input.
  • Render: Is the graphics library. We use OpenGL to do this task.
  • IA: Here we define all the functions that are related to Artificial Intelligence. Examples of these functions may be the A* pathfinding and the enemies's behavior (NPCs).
  • Internet: Is the library where we declare the communication's functions between clients and server for the multiplayer.
  • Animation: Here we implement the timers to use it for animations and other utilities.
  • Sound: Using the FMOD library, we create some classes to have music and sound effects.
  • Physics: Thanks to the ODE library we have a physical library useful for detecting collisions and rebounds.
  • Helper: Special library in which there are all those useful classes to simplify the work of other libraries such as a Vector3 class or Coord2D.
  • MAIN: And finally the game logic. Characters, settings, etc..
As we said before, managers are classes that we use as facades of their respective libraries without having to worry about how they are implemented, so we have the RenderManager, SoundManager, etc. where each of these managers are implemented with the singleton pattern.

martes, 20 de abril de 2010

¿Qué tipo de juego será QYK?

(---English Below---)
Con QYK: 18 Faces of Pure Amusement queremos crear una experiencia de juego multijugador divertida, accesible y que a la vez suponga un reto para los jugadores más avanzados. Pondremos mucho empeño en conseguir sobretodo una gran jugabilidad, tratando de que sea fácil manejar a los personajes e interactuar entre ellos pero metiendolos en situaciones más complicadas a medida que el juego avance.

El videojuego mezclará varios géneros: puzzle, plataformas y, en menor medida, acción. Por el momento todos los niveles se desarrollarán en 2.5D (gráficos en 3D pero el movimiento siempre en 2D) y tratarán de plantear una serie de situaciones en las que sea indispensable colaborar entre los tres jugadores para encontrar la solución y seguir avanzando. Estas situaciones a resolver pueden ir desde conseguir saltar una serie de obstáculos, o encontrar la forma de abrir la puerta que nos impide el paso, hasta acabar con un pequeño contingente de enemigos, siempre necesitando la participación de los tres personajes y sus respectivos poderes.

Espero que haya explicado bien que tipo de juego va a ser QYK, si quereis preguntar o proponer algo gustosamente responderemos y escucharemos vuestros comentarios.

Saludos!

--------------------------------------
With QYK: 18 Faces of Pure Amusement we want to create a fun multiplayer experience, accessible but challenging for advanced players. We will put much effort to get a great gameplay, trying to make it easy to manage characters and interact with each other but putting them in more complicated situations as the game progress.

The game will mix several genres: puzzle, platform and, to a lesser extent, action. For the moment all levels will be developed in 2.5D (3D graphics but 2D motion) and will try to raise lots of situations in which it is essential to collaborate between the three players to find the solution and keep moving. These situations will vary from jumping a number of obstacles, or find the way to open the door that blocks our way, to finishing a small contingent of enemies, always needing the participation of the three characters and their respective powers .

I hope I have explained well what kind of game will be QYK, if you want to ask or propose something, we will be glad to read and reply your comments.

Greetings!


lunes, 19 de abril de 2010

Characters (III): The Spiritualist

(-- English Below --)

Y finalmente, el último personaje que se podrà escoger es la Espiritualista.
Sus habilidades especiales son:
  • Curar el alma: Aumentando la vida actual de sus compañeros a costa de su propia fuerza vital.
  • Proyección Astral: Separando su alma de su cuerpo, lo que le permite traspasar temporalmente paredes y puertas.

Y si puede curar a los demás con su vida, ¿como recupera ella su salud? Regeneración. ¿guay eh?
 
------------------------------------------------
 
And finally, the last character that you can choose is the Spiritualist.Her special abilities are:
  • Heal the Soul: Increasing the partners life at expense of his own life.
  • Astral Projection: Separating his soul from his body, allowing overstep walls and doors.
And if you can heal others with your own life, how she regains her health? Regeneration. Pretty cool, isn't it?

miércoles, 14 de abril de 2010

Characters (II): The Elementalist

(-- English Below --)

El segundo personaje que os queremos presentar es el Elementalista.

Sus principales habilidades son:
  • Bola de fuego: Puede lanzar una poderosa y destructiva bola de fuego.
  • Bloque de hielo: Puede crear un gran cubo de hielo, que permitirá acceder a lugares inaccesibles.
Como nota adicional, comentar que todos los personajes se diseñaron a mano, y luego se dibujaron en Flash.

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


The second character that we want to present you is the Elementalist.
His main skills are:

  • Fireball: Throws a powerful and destructive fireball.
  • Ice Block: He can create a big ice cube, which will provide access to inaccessible locations.
As a side note, all characters were designed by hand, and then were drawn in Flash.

jueves, 8 de abril de 2010

Characters: Mentalist


(--English Below--)

La foto de la derecha es el mapa de texturas de nuestro primer personaje, el Mentalista.

Sus habilidades especiales consisten en:
  • Telekinesis: Mover objetos con la mente.
  • Hipnotismo: Poder controlar a los enemigos usando el encanto de su voz.
Como podeis ver, esta hecho para crear un personaje al mas puro estilo cubeecraft.
¿Por que? Pues aunque en la actualidad se apueste por los graficos de última generación y el realismo, nosotros nos hemos decantado por una ambientación cómica y simplista. Eso y que no tenemos grandes dotes de modeladores. Si hay alguno por ahí que quiera participar en nuestro proyecto, que se ponga rapidamente en contacto!

PD: Os animamos a que imprimais vuestro propio Mentalista, que lo monteis y nos envieis fotos de vuestras creaciones!

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

The picture of the top-right is the texture map of our first character, the Mentalist.

His special abilities include:

* Telekinesis: Moving objects with his mind.
* Hypnotism: Controling the enemies using his charming voice.

As you can see, is made in a cubeecraft
style.
Why? Everybody is using the latest graphics techniques, but we have decided a more simplistic and comic atmosphere. In addition, we haven't great modeller's skills.
If there is anyone out there who wants to participate in our project, contact us!

PS: We encourage you to print your own Mentalist, and send us photos of your creations!

miércoles, 7 de abril de 2010

¿QYK 18 Faces Of Pure Amusement?

(--English below--)

¿De que va esto?

Este es el blog de desarrollo del nuevo videojuego "QYK: 18 Faces Of Pure Amusement".
Pondremos capturas de pantalla del desarrollo así como algunas partes interesantes del código.

Pero, ¿Que tipo de juego es QYK: 18 Faces Of Pure Amusement?

Es un juego en el que 3 personas tendrán su respectivo personaje con habilidades especiales y deberán ayudarse entre ellos para resolver los puzles planteados.

¿Como se esta desarrollando?

Se esta haciendo en C++, utilizando OpenGL para el apartado gráfico y ODE Physics como librería física.

¿Alguna duda, idea, sugerencia?

Escribenos un comentario y estaremos contentos de contestarte.

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

What is this?

This is the development's blog of the new video game "QYK: 18 Faces Of Pure Amusement".
We will post screenshots as well as some interesting parts of the code.

But, what kind of game is QYK: 18 Faces Of Pure Amusement?

Is a game where 3 people will have their respective character with special abilities and should help each other to solve the puzzles.

How are we developing it?

We are programming in C++, using OpenGL for the graphics and ODE Physics.

Any questions, ideas, suggestions?

Write a comment and we will be happy to answer it.