RSS Icon GitHub Icon LinkedIn Icon RSS Icon

Any news from Clojure front?

Header image for Any news from Clojure front?

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. That raise the question: where is Clojure 1.9?

Most Promising Programming Languages of 2017

Header image for Most Promising Programming Languages of 2017

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.

Top 5 Promising Programming Languages for 2017

Rust

PCG without a Computer: Combinatorial Literature

Header image for PCG without a Computer: Combinatorial Literature

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.”

How to manage a Videogames Bibliography in LaTeX

Header image for How to manage a Videogames Bibliography in LaTeX

There is a common question in academia for people working on videogames: “Is there a consensus on how to cite videogames in academic papers?”. Obviously not, there is no consensus and probably never will. However, I will try to show you a solution to this problem that I enjoyed a lot in the last months. It is clear, it is customizable and it is the most formal way I’ve found to do that.

THREE.js Shader Loading from External File

Header image for THREE.js Shader Loading from External File

As usual, trying to nicely separate into different files the various application parts in JavaScript is a titanic challenge. This time, I wanted to separate the “.frag” and “.vert” shader programs into different files that I can load at runtime (instead of putting them into the HTML like a savage).

For some reason, there is no easy out-of-the-box way to do that. On the internet, there is a small library, but it depends on JQuery and I think it is insane to load JQuery on top of THREE.js just to load a couple of files. Therefore, I wrote a function to do that using the THREE.js integrated generic loader function.

Announcement: Procjam's Seed #1

Header image for Announcement: Procjam's Seed #1

This is just a small announcement. Some days ago the first issue of Seed, the official ProcJam magazine, has been released. If you are interested in procedural generation you really should give it a shot. It is colorful 106 pages long magazine, full of experiences, ideas and interesting contents on PCG.

Moreover, there is also an article of mine on the Ouvroir de littérature potentielle (Oulipo), a mid ‘900 literary movement that it is really connected with the PCG. If you want to read about people developing PCG stories in the pre-information era, take a look.

How to build a Telegram SpyBot

Header image for How to build a Telegram SpyBot

Internet/Tech literate people continuously talk about privacy. The majority of people, however, do not care. This is hard to digest for the first group of people, but it is the truth and we should start considering this fact to make things better in the future.

Why I’m talking about this? Because, in the last weeks, I’ve found an extremely easy way to spy any Telegram group. It is not a dark market secret (in fact it is perfectly documented in the Telegram Bot API), but works perfectly because nobody cares. While every internet and privacy activist is talking about how Google, Facebook and Yahoo are spying on our email, telegram bots that are actually logging all the messages in all the groups in plain text. They are bot, by unknown programmers, without ToS, without anything, reading all your messages and potentially storing them who knows where.

So, I will explain to you how to build a Telegram SpyBot. Hopefully you can use it to teach some privacy lesson to your friends.

Procedural Generation in the Post No Man's Sky Era

Header image for Procedural Generation in the Post No Man's Sky Era

I think the time is ready to talk about Procedural Contents Generation (PCG) in the post No Man’s Sky era. I’m talking about “era” for a good reason: No Man’s Sky huge failure will definitely mark an era in the history of PCG, and not for a good reason. Players’ perception on PCG has been severely hurt by how badly NMS delivered its contents. Probably, this will be the end of PCG as a marketing buzz-word.

Python for Practical Statistics

Header image for Python for Practical Statistics

These days were a bit busy. I want to break the silence with an interesting link to a video. This is an interesting and fun to watch talk coming from the last PyCon. It talks about “practical statistics”, that is, how you can try to produce (or validate) a model when you can not compute the analytic model of a phenomenon. Many of the technique he describes can be used to any language, so it is suitable even if you do not program in Python. Anyway, look that, it is worth it. Moreover, this is just an excuse to suggest you to look around all the other videos from PyCon. They are well made and there are some interesting talk that should be watched.

On Designing Games for Infinite Players

Header image for On Designing Games for Infinite Players

When you design a game, one of the most important aspect to take into account is the number of players. Games can be designed for a single player, two players, four players or thousands of player (like in MMOs) and this decision has a huge impact in the technical and design requirements.

But it is not just choosing a number. The “number of players” parameter cannot be arbitrarily moved at will. The more we increase the value, the more the designing task becomes harder and harder. Look around you. We have thousands of single-player games, we can find a huge amount of games for 2 to 4 players, we have party games that can go to 10 players or team sport games such as rugby and football that can be played up to 20 or 30 players, but after this amount of players, how many good games there are?