Mastodon Icon RSS Icon GitHub Icon LinkedIn Icon RSS Icon

Category GameDev

Procedural Contents Generation in Modern Videogames

Header image for Procedural Contents Generation in Modern Videogames

8th September 2016 Update: I uploaded these slides on SlideShare. You can see them here. Hi guys! In the last month I’ve prepared a presentation on Procedural Contents Generation history and techniques in commercial videogames. I did this presentation for a Game Jam some time ago and for a series of meetings in our university. I think it is a nice summary of the main elements of PCG in commercial games, so I think it is worth to share this presentation with you!

Weekly Inspirational #2

Header image for Weekly Inspirational #2

Here we are again! For five brand new inspirational articles found on the web (mostly on Reddit to be honest, but who care). This time we will see a lot of Procedurally Contents Generation algorithms, another emulation related article, and the smallest academic paper of all time! Let’s start!

Global Game Jam 2015 Postmortem

Header image for Global Game Jam 2015 Postmortem

First of all, some time ago I stated that I would like to start writing more. Unfortunately, a combination of personal issues, flu and other psychological breaks did not allow me to respect this promise. But I’ll be back soon. I swear.

Second, it is now time to talk about the game we developed for the Global Game Jam 2015 (and obviously valid as a January entry for my One Game A Month challenge!) I’m very happy with this game also if it is not a real “game” because (little spoiler) it is an online game who require a big amount of users to be interesting. I’ll never have so many users connected at the same time, so it is useless in practice. The good thing is that it was a big technical challenge and to be able to complete everything in less than 30 hours was really exciting. But first things first.

The most promising languages of 2015 - Part 2

Header image for The most promising languages of 2015 - Part 2

UPDATE: There is a new version of this article for 2016!

In the the previous post we have seen what are the general trends of the previous year with regard to the fascinating world of programming languages. To summarize, we can say the there are two strong trends: 1) more functional-inspired elements in programming languages 2) more statically strong typed languages that can be compiled in machine code.

Now, in the current article, I want to list all the languages which have attracted interests in the last years and that represent the implementation of these trends. Obviously, as I said in the previous article, these are not languages on which to bet their careers: these are new trendy languages but the real world does not work on “trends”, but on software, oil, commerce, health care and an hundred of categories in which the actual programming languages are doing great with an huge amount of per-existing codebase.

However, it is nice to explore the “future”, so, let’s take a look.

One Game A Month - December 2014

Header image for One Game A Month - December 2014

The new year is come, full of good resolutions and appealing feelings of renovation. For my part I have two main target. The first one is to write a bit more. I always feel that I have a lot to say but, for some reason, I usually get stuck in a kind of writer’s block every time I finally found time for writing. So, because the only way to beat a writer’s block is to write, and write and write, I decided to spend at least January into a more strict scheduling. Maybe there will be a good impact in the blog post frequency too.

The second “resolution” is to beat the One Game A Month challenge for 2015. The goal is to complete a game each month. You don’t have to realize the full game in one month, you just have to complete and release it. I think it is a nice opportunity to challenge myself on some specific game development aspect while forcing some deadline (that is always a good thing).

However, taking advantage of the Ludum Dare jam on December, I started this challenge a bit in advance. :) So, now I’m going to do short post-analysis of my game for the previous month.

LowPoly in Blender

Header image for LowPoly in Blender

Recently I started exploring the low poly modeling in Blender. Well, there is this guy on youtube that is simply amazing. I really love his work and I’d suggest to watch his tutorials. For now I just leave here an appetizer.

Random Maps with Cellular Automata

Header image for Random Maps with Cellular Automata

In the spirit of the ProcJam2014 (that unfortunately I have to skip because of a ton of academic duties :<) I’m presenting to you a simple algorithm to generate maps: the cellular automata generator. In particular, cellular automata are very well suited for cave-like environment and, in general, natural maps. It works both in 2D than in 3D and can be easily implemented in no more than 20 minutes.

From the theoretical point of view, a cellular automata is a discrete model that consist in a regular grid of cells. Each cell can have a finite number of states (usually two: on and off). On top of this grid, a system of rules is built to control the evolution of the cells. The rule are usually simple and local: this means that each rule decide on the state of a single cell just on the basis of a limited set of cells (the neighborhood) located around the cell of interest. No rule on the global state of the grid can exist! For instance “the total number of cell in the on state is less than X” is NOT a local rule.

Towards the ProcJam 2014

Header image for Towards the ProcJam 2014

Procedural Contents Generation (PCG) is a family of techniques, algorithms and procedures used for generating contents in an automatic way rather than manually. In other words, using PCG, game contents can be created by the host computer instead of pre-design everything at development time.

In recent years, PCG is having an increasing popularity among the academic and game development communities. There are two big reasons behind this success: first, it allow the designer to generate an near-infinite amount of contents without the effort of manually design each element by hand (and that’s why the indie scene love PCG), second it increase the game longevity and replayability value of the game (because, for instance, the game it is always different after each run and so it can be replayed more). This two things combined are The Dream for every game designer: huge longevity with low effort at design time.

Speccy Jam 2014 Postmortem

Header image for Speccy Jam 2014 Postmortem

As I said in a previous post, in these days me and my colleague at Noctua were working in the SpeccyJam 2014. The goal of the jam/competition is to make a game with the same look and feel of an original ZX Spectrum game. This introduces a lot of interesting limitations. First, it constrains our resolution to  256 × 192 (that is, however, a really big improvement respect to the LowRezJam :D), second it forces us to use only 15 colors. But most important of all, the non-strict limitation, is to simulate the color clash effect of the original Spectrum on modern engines. This was the most hard constraint that forced us to explore 2D shaders and a lot of simulated low-level algorithms on top of a modern engine like Unity 3D.

Random Goblin Name Generator

Header image for Random Goblin Name Generator

Hi everyone. In these days, me and my friend and colleague at Noctua (EDIT: we don’t have a webpage anymore) are working at a new game jam: the SpeccyJam. The goal of this jam is to recreate a game with the same feel and look of an original ZX Spectrum game. We chose to implement a “managerial game” in which the player takes the role of a fantasy blacksmith that have to increase its fame crafting amazing weapons. This jam is very formative because it is forcing us to work in a low resolution with a very limited color space and, also, to explore the amazing kingdom of 2D shaders in Unity in order to recreate the visual glitches of the original console.