GSOC summary

My name is Emanuele Grisenti (aka grisenti) and in the past three months I’ve been working on integrating the HPL1 engine, made by Frictional Games, in ScummVM, with the goal of supporting the 2007 game Penumbra: Overture, created by the same company. The source code for both the engine and the game were made publicly […]

Solving more game bugs

This week I played more of the game and solved the bugs I encountered.   First, I worked on the sound issues I talked about at the end of the last blog. To expand the brief description I gave: at the end of the first major level, some rocks are spawned by the level script and […]

Finishing saves and testing the game

I started this week by implementing thumbnails for game saves. For this I needed to override the MetaEngine’s getSavegameThumbnail method, since the default one didn’t work with an OpenGL context. After that, I encountered a problem with the way the thumbnail looked in ScummVM. Initially, I thought it was a problem with my implementation of the […]

Looking into some bugs and implementing saves

I started this week by fixing an audio bug that was playing some sounds on loop if they had been triggered once and the player got far enough away. Initially I thought this might be a physics issue, but the problem turned out to be that the pause member variable for the sound channel class […]

Finishing shaders

This week I worked on shaders, fixing bugs from previous weeks. The first of these was a missing light on the right side of the room. This was a general problem that effected all spotlights (implemented with projective texture mapping), including the flashlight that can be picked up in the first level. Initially I thought […]

Finishing audio and fixing old bugs

I started this week by finishing up the audio system. For now, the sound data class only stores the filename of the audio asset, loading it from the file every time a new sound channel is created (these could refer to anything from the main menu’s music to the sound of one of the keyboard […]

Debugging shaders

At the start of this week, graphics with shaders were extremely broken. There were mainly two causes of this. The first was that one of the shader class member functions to set uniform matrices was implemented incorrectly.  The other problem was in the shader code. Right now, all of the vertex shaders attributes come from […]

Working on shaders

This week I worked on the shader system of the engine. The first thing I did was to translate the shader from the CG language, which is very similar to HLSL (the shading language used in Direct3D) to GLSL, the OpenGL shading language. The two are somewhat similar but there are some important differences. The […]

Working on scripting and physics

This week I finally got the game to run, although it’s still in a rough shape.    The first thing I did was to add the scripting library. This didn’t take very long, with only a few compilation issues. Here, there is still some cleanup required to remove the unused platform specific calling conventions. Additional components […]

First visuals and image loading trouble

The first thing I’ve worked this week was trying to display the game’s intro. This required removing some code that had not yet been implemented and fixing problems with the new implementations of font loading and of the Bitmap2D class. One interesting problem that came up while loading the game’s assets, was that one of […]