Los edificios y su representación

Índice

Introducción

Este documento trata las necesidades relativas a la construcción, uso e interacción con los edificios en Legendarya, así como los problemas que estos ocasionan, principalmente de rendimiento aunque también de usabilidad y accesibilidad. Se mostrarán algunas alternativas y soluciones a los problemas anteriores, con el objetivo de abrir un campo de discusión que permita escoger la mejor opción en el futuro, a partir de las pruebas que se realicen.

Necesidades y alternativas

Las características del juego que se han ido desarrollando en otros documentos nos imponen unas necesidades a la hora de diseñar el sistema de edificios. Los edificios son construcciones divididas en estancias de distintos tipos (talleres, habitaciones, almacenes,...), cada una de las cuales da lugar a una serie de opciones del juego. Su papel se puede contemplar desde tres puntos de vista:

Para resolver estas distintas necesidades contamos con un amplio abanico de opciones para su almacenamiento y representación, de las que vamos a analizar tres:

De estas alternativas se va a detallar la última ya que por ser la mas completa prácticamente abarca a las dos anteriores. Pero hay que tener en cuenta que si por complejidad de diseño, facilidad de uso, accesibilidad o rendimiento resultase inapropiada, alguna de las otras dos podría ser utilizada en su lugar ya que todas cubren las necesidades mínimas.

Volver al índice

Representación

A continuación se muestra un ejemplo del sistema de representación de edificios: una casa vista desde fuera y el interior de la misma (Perspectiva ortogonal, superior con inclinación de 60º):

Para generar esta imagen hemos utilizado tres elementos. A continuación tenemos la misma casa descompuesta en varias partes:

El tejado (1), las paredes (2) y el suelo (3) son los tres elementos principales que van a formar cualquier edificio. Esta división responde a la necesidad de permitir la edición. Disponiendo de un número reducido de elementos distintos podremos combinarlos formando diferentes estructuras complejas:

La imagen anterior muestra el uso de varios elementos de suelo y pared que forman una gran sala. El suelo y las paredes son los elementos mas sencillos. Para el suelo será suficiente con un elemento por tipo de suelo (maderas, piedras,...). Las paredes son de dos tipos, las que miran hacia el sureste y las que miran al suroeste, iguales excepto por su orientación e iluminación. Además se les pueden añadir otros elementos, como puertas, ventanas, balcones, chimeneas, que combinar con los anteriores.

Los techos sin embargo son mas complicados. Como se puede ver a continuación para cada material van a requerir un gran número de imágenes (entre 30 y 40) e incluso serán posibles otras opciones como el uso de cúpulas:

También se dispondrán de otros elementos para la creación de la casa y su entorno, como escaleras, muros y verjas, estatuas, jardines, columnas,...

Volver al índice

Rendimiento

Para que el juego funcione de forma adecuada hemos de cuidar el consumo de tres recursos técnicos: el ancho de banda, la capacidad de proceso y la memoria del sistema. A menos que se incluyan cálculos sobre las ventajas de acceso a ciertas estructuras arquitectónicas (que serían interesantes ya que obligarían a planificar la ciudad y los edificios con cuidado) la capacidad de proceso consumida por este sistema no va a ser relevante.

Si serán importantes, y mucho, los otros dos factores. Comenzando por la memoria podemos contar con que tendremos un mapa con unas 9000 casillas en cada una de las cuales se podría construir hasta 10 fincas. Y habrá un total de 1000 ciudades, cada una hasta de 25 barrios. Tomando cada barrio como una tabla de 20x20, y cada finca de 10x10 y admitiendo hasta 4 pisos de altura en ambos casos, tendremos un total de hasta 76 millones de celdas. Aquí se puede jugar con los números en caso de necesidad, pero nos sirven para hacernos una idea.

Debido al gran número de celdas, toma una gran importancia la cantidad de información que haya que almacenar para cada una de ellas. Ya que tendremos que almacenar información para cada habitación y edificio, podremos almacenar con ellos algunos datos, como el tipo de pared y suelo. Por lo tanto cada celda solo tendrá que almacenar finalmente los siguientes datos:

En total 4 datos, de unos 4 bytes cada uno: 16 bytes, con lo que todas las tablas ocuparán en total unos 1.216 Mbytes.

No resulta un espacio en disco excesivo, sobre todo si contamos con que no necesariamente tienen que estar creados todos los barrios en cada ciudad, ni todas las fincas en cada territorio, y tenemos en cuenta además que los primeros edificios serán de una sola planta, luego no es necesario que se reserve siempre el espacio para los cuatro pisos.

Otros elementos que habrá que almacenar son la información de tejados, que puede suponer otra tabla por cada barrio y finca (pero únicamente con 8 bytes por celda). Además tenemos las estancias de los edificios, que puede haber hasta una por celda (aunque nunca se llegará hasta ese extremo), para cada una de las cuales será necesario almacenar bastante mas información (suelo y pared, a que edificio pertenecen, capacidad, estado, luminosidad, aislamiento, mobiliario, uso que recibe,...). Hay otros casos, como los edificios, pero su consumo de memoria es ya despreciable en este apartado.

Respecto al ancho de banda, esta es una de las actividades que nos puede consumir mayor cantidad de recursos. Una casa tan sencilla como la mostrada en el ejemplo de representación ocupa en SVG (el formato de gráficos vectoriales que vamos a utilizar) unos 256 Kbytes, por lo que resultaría impracticable enviar las imágenes tal cual. Para reducir los el consumo de ancho de banda dispondremos de varias estrategias:

Volver al índice

Usabilidad y accesibilidad

Con esta forma de representar edificios nos salimos del funcionamiento típico de los interfaces web. Esto significa que nos encontraremos con nuevas situaciones y se deben realizar múltiples pruebas de usabilidad y accesibilidad.

Uno de los problemas surge por que la representación que utilizaremos simula un espacio tridimensional, y por lo tanto unos objetos pueden quedar ocultos por otos en la pantalla. Para empezar los edificios tienen varios pisos. Cada uno oculta al de abajo, y el techo oculta al mas alto, con lo que no se podrían ver. La solución ya ensayada en otros juegos consiste en mostrar un piso cada vez, a petición del usuario mediante botones. En el interfaz del barrio las casas de delante ocultarán en parte a las de detrás. Para permitir la selección de un edificio completo se puede optar por utilizar únicamente el plano del suelo, que al ser bidimensional no presenta ningún problema. En este caso habría que ocultar las casas para mostrar únicamente la superficie, o al menos hacer que las casas transparenten.

Mas complicado va a resultar el modo de edición, en el cual además de la complejidad de la adición y eliminación de elementos (paredes, suelos,...) habrá que lidiar con diferentes reglas destinadas a ajustarse al modelo conceptual o a evitar representaciones incorrectas (casas con un segundo piso pero sin el primero...)

La accesibilidad es otro punto que va a presentar dificultades en este caso. De hecho no podremos trabajar con un lenguaje visual como SVG, teniendo que retornar a XHTML. En la selección de edificios o estancias podemos utilizar simplemente listas de enlaces, perdiendo gran cantidad de información visual (colores, estilos, posición,...) que se podrían facilitar después de la selección mediante un texto descriptivo. Pero en la edición de los edificios debemos trabajar con matrices. ¿Será correcto el uso de tablas HTML para la representación y edición de estas? Es algo que se debe estudiar.

Volver al índice

Construcción de edificios

Es una actividad compleja que requiere varios pasos: Adquisición del terreno, planificación del edificio, obtención de materiales y realización de la obra.

El terreno

El primer paso para construir un edificio es contar con el terreno necesario. Si se trata de una finca en el campo no presenta ningún problema. Teniendo unos terrenos allí podremos disponer de una superficie de 10x10 casillas.

Si por el contrario queremos obtener terreno en una ciudad deberemos recurrir a vallar un terreno libre, comprar las propiedades de otro o tomarlas mediante el uso de la fuerza.

Volver al índice

Arquitectos y planos

Al construir un edificio la persona encargada irá adquiriendo experiencia. Esta experiencia permitirá construir edificios de mejor calidad en menos tiempo. De esta manera algunas personas podrán especializarse en esta tarea, siendo contratadas como arquitectos para la construcción de las casas de personajes con menor experiencia.

Estos arquitectos deberán desarrollar primero un plano del solar o edificio para sobre él diseñar las reformas necesarias, que luego se llevaran a la practica. Para permitir el intercambio del plano entre varios trabajadores y poder trabajar así mejor con él, se va a tomar este como un objeto con una serie de opciones especiales:

Volver al índice

Materiales y estilos arquitectónicos

Para cada elemento de la casa se ofrecerá al arquitecto diferentes modelos que representarán distintos estilos arquitectónicos (clásico, nórdico, oriental,...). Estos permiten aumentar la diversidad del paisaje urbano, pero se pretende también que sean un referente geográfico de ese pueblo. De esta manera se va a dificultar el que todos los estilos se puedan construir en cualquier lugar mediante tres limitaciones:

Una vez se ha planificado la casa con un cierto estilo (o mezcla de varios) se informará al arquitecto de los materiales necesarios para su construcción. Estos materiales deberán estar a disposición de los obreros durante la obra, lo que se puede hacer de tres maneras:

Volver al índice

Obras

Para iniciar la obra necesitaremos el terreno, los planos, los materiales y mano de obra. El dueño de la casa debe poder delegar la tarea en un constructor especializado.

El tiempo necesario para su realización depende de varios parámetros:

La calidad del edificio resultante dependerá de:

La mano de obra y el desarrollo de calidad y cantidad es similar al tratado en el documento actividades económicas. Y también en el relativo a política se trata algo. Hay que unificar conceptos entre los tres en un nuevo documento.

La obra se puede detener y reanudar, voluntariamente o por falta de alguno de los requisitos para la construcción: materiales, mano de obra o terreno (puede ser embargado, o el dueño le puede retirar el permiso al constructor). Esto será negativo ya que se irá degradando la calidad del edificio ligeramente debido a las inclemencias del tiempo si se retrasa en exceso.

Volver al índice

Mantenimiento y reformas

El paso del tiempo afectará a los edificios según su calidad, sobre todo en los pisos altos, que deberán estar muy bien hechos para durar. Esto implica que el edificio va a requerir un mantenimiento periódico ya que sino su calidad final se verá reducida afectando a las labores realizadas en él, pudiendo derrumbarse en un caso extremo. El mantenimiento es una obra normal, que lo único que hace es eliminar el deterioro sufrido por el edificio. Va a requerir materiales y tiempo proporcionales al deterioro, y en esa misma proporción la calidad final del edificio puede sufrir cambios según los parámetros normales.

Las reformas son obras normales excepto por el hecho de que se pueden recuperar parte de los materiales de las partes de la casa que se vayan a eliminar o sustituir. La cantidad recuperada y el tiempo necesario para ello van a depender de los siguientes factores:

Volver al índice

Condiciones de las estancias

El diseño del edificio va a afectar a las estancias y su rendimiento según una serie de variables:

Volver al índice

Privacidad. Llaves y cerraduras

Las estancias estarán comunicadas por puertas, y desde cualquiera de ellas, pasando por una serie de puertas se debe poder llegar al exterior. Pero habrá ocasiones en las que no interese que cualquier persona pueda entrar en cualquier estancia. El último paso por tanto, después de la realización de una obra será definir que habitaciones estarán abiertas al público y cuales serán privadas. Lo mas sencillo consiste en crear cerraduras en las puertas de los recintos privados y dar llaves a las personas que se quiera que puedan acceder a ellos.

Volver al índice

Valid XHTML 1.0 Strict . ¡CSS Válido!