Google
 

miércoles, octubre 25, 2006

OCaml

OCaml es un extraño lenguaje que soporta tanto estilos de programación funcionales como imperativos u orientados a objetos.

Esta es una pequeña función de ejemplo que compara dos listas y retorna verdadero si son iguales:
1 let rec compara l1 l2 =
2 match l1, l2 with
3 | h1 :: t1, h2 :: t2 -> if h1 != h2 then false else compara t1 t2
4 | [], [] -> true
5 | _ -> false
Línea 1: Definimos la función compara con dos paremetros l1 y l2, además le indicamos que es una función recursiva (rec).
Línea 2: Match es algo parecido al switch del C pero mucho más potente, hacemos un match con las dos listas.
Línea 3: Comparamos si la cabecera de las dos listas (h1 y h2) son diferentes en cuyo caso devolvemos un falso. Si no, llamamos recursivamente la función con la cola de las dos listas (t1, t2).
Línea 4: Si las dos listas han llegado vacias hasta aquí es que son iguales.
Línea 5: Para el resto de casos (el tamaño de las listas es diferente) retornamos falso.

Espero que os haya entrado el gusanillo de mirar más cosas sobre OCaml.

lunes, octubre 23, 2006

2D vs 3D

Hay un interesante Top 10 del 2005 en la web de Game Tunnel (web sobre juegos indie). Lo que más me ha llamado la atención es que de los diez mejores juegos del año (según ellos claro) únicamente dos son 3D.

Creo que muchas veces la fiebre por lo 3D ciega a los diseñadores. Parece que sea obligado el hacerlo todo tridimensional. Hay muchas tipos de juegos que si se versionaran en 3D perderían mucha gracia. De igual forma, hay muchas juegos 3D que sería impensable pasarlos a 2D.

Hay que escoger lo mejor para la mecánica del juego y no basarse únicamente en la estética. Otra cosa a tener en cuenta es que bastante más facil el desarrollo de un juego 2D que uno 3D (salvo excepciones claro).