Improve Inventory-Aware Pathfinding with Map Preprocessing Jun 13, 2017 _This article has been originally published on Gamasutra._ In the last article we introduced a basic approach for Inventory-Aware Pathfinding (IAP), a pathfinding algorithm capable of interacting with obstacles and not just avoiding them. If you have not read it, I encourage you to go back and read it to understand the basic challenges and the main ideas behind the proposed solution. For instance, we can have a pathfinding algorithm that can solve small plans and “puzzles” involving reasoning like “before passing this door, I need to get that key”. ...
Typescript Unit Test for Web Applications May 26, 2017 You know, I quite enjoy TypeScript. It is not my favorite language ever, I am more a functional type of guy, but it is the best way to bring order into the JavaScript mess without too many hassles. Moreover, it is the language in which I prototyped my Astronomical Calendar Generator. Now that I’m working on extending it, I want to keep using TypeScript and stop falling in my usual decision paralysis. ...
I needed to trust my gut feelings: Kotlin and Android May 19, 2017 In this year top-5 promising languages list, I put Kotlin in fifth place among the languages that you should definitely check in 2017. This week Google I\O announced that Kotlin is now an officially supported language for Android Development. I like to be right in my forecast. However, I need to be honest. Back then, I didn’t know well why I put it there. I just had some kind of ethereal intuition. ...
How to build rusqlite on Windows May 2, 2017 Yesterday I spent way more time than needed for compiling this dependency on Windows. The problem is that the error was not informative enough and hard to google, and, mostly, that there is no standardized way to look for installed libraries in Windows. Just to be clear, there is no reliable way to use pkg-config on Windows as in Unix-like systems. The problem The rusqlite crate is an ergonomic binding of SQLite in Rust. ...
I am killing comments. I will not kill discussion. Apr 25, 2017 I am removing comments from this blog. There are several reasons for this decision. First, it is hard to find value in comments anymore. In 3 years I think I have collected something like 10 comments. Most of my interaction with readers and other people happens on Twitter, in the Facebook comments or in the Reddit threads. Second, the existing main solutions for comments are unappealing. The default WordPress comment system is very spam prone and hard to manage. ...
Randomness in PCG is about the result, not the parameters Apr 21, 2017 I feel the urge of stating the obvious: randomness in Procedural Generation refers to the perceived randomness of the outcome; not the randomness of the input parameters. In some sense this is “obvious” but, at the same time, is one of the most common mistake I see when developers tackle procedural content generation in their games. It is an understandable mistake, though. There are two assumptions we subconsciously make when we approach randomness: 1) we think that uniformly random parameters produce uniformly random outputs (that’s blatantly false), and 2) we think that uniformly random outputs yield to uniformly random perception in the human (even more false). ...
Random calendar generation from planet orbital parameters Mar 27, 2017 In this article I want to show you a small proof of concept where we generate from scratch an alien calendar. The difference from other random calendar generators that just put random days and random month is that, in this tool, we can specify as input the orbital parameters of the planet and satellite and generate a calendar that makes sense. How could be the calendar for that planet orbiting a super-massive star? ...
Any news from Clojure front? Mar 20, 2017 Some days ago, I was cleaning my Code folder from old snippets and test projects when I found an old Clojure package I did to test some Clojure feature. I remember that I kept the project sleeping in my Code folder because I thought that it would come in handy when Clojure 1.9 would be released. However, I left that project stub back in February 2016, more than a year ago. ...
Most Promising Programming Languages of 2017 Dec 28, 2016 Another year, another 5 promising programming languages you should keep an eye on in 2017. As usual, I’d like to write the warning I put here every year: in this list, you will not find programming languages for hiring purposes, but for very long-time investments and for pure programming fetish. So, now that you know what I am talking about, here we go with the top 5 for 2017. ...
PCG without a Computer: Combinatorial Literature Dec 20, 2016 For us computer scientists and game developers, Procedural Content Generation is directly connected with computers and algorithms. It seems such a modern thing! In reality, the exploration of the “combinatorial nature of art and human thoughts” is a much older concept. Probably, the most interesting and early writing on “PCG” is the doctoral dissertation of Gottfried Leibniz, De Arte Combinatoria (On the Combinatorial Art) (1666) in which he exposed the main idea that “all truth are nothing but combinations of a relatively small number of simple concepts. ...