[en] Procedural content generation is getting more and more relevant in areas such as level generation in video games, texture and particle generation in animation and visual effects... With development teams getting smaller in video game development, making successful titles in today's market when it comes to offering enough play hours, against big development companies, is impossible without using techniques that will save the team the effort of crafting the levels by hand. Here is where procedural generation engines come into play. This assignment aims to develop a procedural generation tool for terrains. It will be very customizable and simple to use, and it will be built for the web, thus allowing development teams to forget about the algorithms behind procedural generation and focus on their game. After deciding the goal for the product's first version and establishing all the essential details of the development, such as the appropiate algorithms and data structures, a functional prototipe is obtained, integrating some basic techniques of terrain generation. When deciding which algorithms should be implemented in this prototipe, we tried to keep development as simple and clear as possible. Even with this approach, the results were good and the performance was excelent. However, there were also some problems derived from following this approach of keeping it as simple as possible. These made the generated terrains feel less natural, or do not allow all the flexibility we were looking for. A good example is river generation, which is the most complex module of the project, and whose simplification brought errors common in many situations, and for example prevent the user from deciding not to generate oceans. The final thought is that the results obtained were good despite all the problems that all the simplifications brought, and, on the other hand, these simplifications have allowed us to implement a bigger number of modules than we had been able to if we had chosen to follow a more realistic and complex approach.

[es] La generación procedural de contenido toma cada vez más relevancia en campos como la generación de niveles en videojuegos, generación de texturas y partículas en animación y efectos especiales... Con equipos de desarrollo cada vez más pequeños en el mundo de los videojuegos, crear títulos competentes en el mercado actual a la hora de ofrecer horas de juego al usuario frente a juegos de grandes compañías es imposible si no se emplean técnicas que ahorren al equipo la creación de niveles a mano. Ahí es donde entran en juego los motores de generación procedural. Este trabajo pretende crear una herramienta de generación procedural de terrenos muy personalizable y simple de usar para la plataforma web, permitiendo a equipos de desarrollo abstraerse de los algoritmos de generación para centrarse en la creación de su juego. Tras decidir el alcance de la primera versión del producto y establecer los detalles cruciales del desarrollo del mismo, como los algoritmos y estructuras de datos más apropiados, se obtiene un prototipo funcional que integra algunas técnicas básicas de generación de terrenos. A la hora de decidir qué algoritmos debían implementarse en este prototipo, se ha seguido el enfoque de simplificar y clarificar lo máximo posible el desarrollo del producto. Aun así se han conseguido resultados muy aceptables y con un rendimiento excelente. Sin embargo, también se han encontrado problemas derivados de la simplificación, que hacen que los terrenos generados pierdan naturalidad y parezcan más artificiales, o que impiden obtener toda la flexibilidad que se busca. Un ejemplo es la generación de ríos, que constituye el módulo más complejo del proyecto, y cuya simplificación provoca imperfecciones comunes en muchas situaciones, e impiden que por ejemplo se decida no generar océanos en un mapa. La conclusión final es que los resultados son buenos a pesar de los problemas que acarrean las simplificaciones que se han llevado a cabo, y éstas han permitido por otro lado implementar un mayor número de módulos de los que habrían sido posibles si se hubiera intentado seguir un enfoque más realista y complejo.