RENS VAN DER MEIJS

Background

Hello, my name is Rens van der Meijs. I consider myself a friendly and hard working person who is always open to suggestions and ideas. Games have always facinated me, not just the experience they can give you but also the technology that powers them. After a long time working with Game-Maker ( Version 6.1 - 7 at the time ) and some little XNA C# programming I enrolled at NHTV IGAD to turn this hobby into a proffesion to become a video game programmer.

Along with my passion for games I also have a passion for music ( especially Beethoven ) or sound design in general. Although I have always been interested in music from a young age, I have only started to exercise it through music composition and studying the piano since a few years. During my time at IGAD I have often been able to use these new skills to help enhancing the gaming experience.

Cirriculum Vitae

Contact Details

Please review CV for contact details.

Info

Working Experience

Triumph StudiosInternship5 Months
During this 5 month long internship I was tasked with fixing bugs in Age of Wonders III, porting one of the in-house Creator engine tools to the Qt framework and doing technical support mail.
International Game Architecture and DesignEducation5 Years
Four year education covering a several video game programming subjects such as Gameplay, Graphics, Math, AI, Audio, Mobile and Networking as well as specialized courses in Multithreading and Special Effects.

Skills and Knowledge

Programming Languages

C/C++Proficient5 Years
C#Experienced2 Years
GLSLExperienced2 Years
BasicExperienced1 Year
   
HTMLProficient5 Years
PHPExperienced2 Years
mySQLExperienced2 Years
Javascript (JQuery)Experienced1 Year
CSSExperienced1 Year

Programming APIs

OpenGLExperienced2 Years
OpenCLExperienced1 Year
Win32Experienced2 Years
ASIO*Experienced1 Year
SFMLExperienced1 Year
Qt 5.xExperienced1 Year

* Steinberg API, not to be confused with ASIO networking.


Development Software

Visual Studio 2008 - 2013Proficient6 Years
Unity3D 3.5 - 5.xExperienced2 Years
MonoDevelopExperienced2 Years
CodeBlocksExperienced1 Year
Conitec Gamestudio A8Experienced2 Years
Tortoise SVNProficient3 Years

Other Software

Cubase 7Proficient3 Years
AudacityProficient1 Years
Sony VegasProficient3 Years
After EffectsProficient3 Years
Microsoft OfficeProficient5 Years

  MAMMOTH GRANULAR SYNTHESIZER

Sampler Based Granular Synthesis Engine

Power at your Fingertips using MIDI

Multiple LFOs per Layer

Reduced Latency using Steinberg® ASIO®

By forging together the interests of programming and audio I was able to develop a granular synthesis engine for my Graduation. The goal was to research how granular synthesis could be applied in video games.today.

About

Background

Mammoth is a 32bit floating point sampler based granular engine capable of modifying or creating a variety of sounds. It was created for my graduation to discover how granular synthesis works and how it can be applied to video games today. Still, because the focus of the project lied on the granular synthesis aspect I decided to create synthesizer like application in which I could experiment as much as needed. The project was developed in native C++ during a four month period as a standalone application.

Visual Studio 2013 | C++ | ASIO SDK | KissFFT | LibSndFile | Native Widget Library

Features

Granular Engine

Mammoth uses a sample based approach to construct grains inside its granular engine. Samples can be easily loaded in and sliced to extract particular areas of a sample data. Through multiple layers and layer parameters such as grain speed, grain size, random ( start ) position, grain offset, key follow and volume it is possible to create a variety of sounds. Extra performance is given by a multithreaded grain processing architecture that processes grains in parallel.

Low Frequency Oscilators

Providing a set of two LFOs per layer, Mammoth gives the user the possibility to animate most layer settings at an instant. LFOs support multiple shapes such as Sine, Square, Saw, Triangle and a variety of Random shapes ( Random, Absolute Random, Smooth Random, Smooth Absolute Random ).

ASIO® & MIDI

Through the use of Steinberg® ASIO® Mammoth is able to run at reduced latency ensuring the user can input MIDI in realtime. MIDI helps simplifying the grain spawning processes through a virtual velocity sensitive keyboard. Take further control by linking grain parameters with your MIDI-controller.

Effects

Envelopes

Modify the loudness of your grain streams over time by tweaking the ADSR envelopes for each layer individualy.

Equalizer

Mammoth features a Post FX 12 Band Equalizer for each layer, giving you control over the frequency range of your sounds.

Delay

Grain delay using the internal grain scheduler can be used to place your sound into different spaces.
  RAW AUDIO ENGINE

3D Sound With Virtual Voices

Post FX Echo, Equalizer and Doppler

Text Based Sound Description

Reduced Latency using Steinberg ASIO®

An audio engine for video games written in C++ for my Specialization. This engine manages everything from resource loading/streaming, audio processing and the sound device. Also features echo and doppler effects as well as a multiband equalizer.

About

Background

RAW is a 32bit floating point audio engine build for game prototypes requiring a simple audio basis. It was created for my Specialisation after having an introduction to audio programming in another course. The engine comes with a demonstration program that features an OpenGL scene with a vast amount of audio sources.

Visual Studio 2010 | C++ | Win32 | ASIO SDK | LibSndFIle | KissFFT | TinyXML

Features

3D Sound With Virtual Voices

Using virtual voices, the engine is capable of managing scenes with a vast amount of audio sources in real time whilst still ensuring each source is updated correctly. The virtual voice system is automated and sound sources are easy to set up. Still, the engine allows for some tweaking if needed.

Doppler, Post FX Echo and Equalizer

The engine gives you control over the sound-space and frequency spectrum of the final sounds using Post Echo and Equalization. For enhanced realism, the engine can similuate doppler effects for each sound individualy using a linear resampling algorithm.

Text Based Sound Description

Sound files for the engine are managed through XML styled text files ( Raw Descriptor Files, .rdf ). These allow sounds to be tweaked easily without the need of any programmer interaction.
  RENGINE

Plugin Based Architecture

Simplified relfection using Quasi Compile-time String Hashing

An on going sparetime project aiming to develop a framework to easily create and test (game) ideas with. Also serves as a learning experience to cover many areas of video game programming.

About

Background

The Rengine is a game engine/framework I have been developing for quite some time now. Although it is far from finished it serves as a way to learn about programming in a broad area. Unfortunatly I cannot show much at this time since most of the work done right now is at the system level. Still, I can discuss some of the features it has.

Visual Studio 2013 | C++ | Native Widget Library | OpenGL | GLEW

Features

Plugin Based Architecture

Similar to Unity3D, the game code is linked to the editor at runtime. This means a new game version does not necessarily require a recompile of the editor to speed up iteration time. It also makes the engine more portable between projects.

Simplified relfection

The Rengine deploys Quasi Compile-time string hashing for a simplified reflection model outside the standard C++ RTTI. ( Tested in Visual Studio 2010 and 2013. ).

Memory Management

Most memmory is allocated using a custom memmory allocator through the overloaded new/delete operators.
  NATIVE WIDGET LIBRARY

Native & Custom Win32 Widgets

Multiple Windows

Custom Rendering

Win32 Abstraction

Development of this native C++ library started in an attempt to have a reusable and flexible codebase for creating win32 forms. Next to existing interface components it supports the ability to create new ones with custom rendering.

About

Background

The Native Widget Library is a framework that allows the user to create a win32 form application from code easily whilst fully abstracting win32. It was developed at home during my internship at Triumph Studios where I spent most of my time working with Qt.

The Native Widget Library draws inspiration from Qt but has a more lightweight focus, Further development of the Mammoth Granular Synthesizer forced me to update the library to a point where it stands now. Currently, it is being used and developed in the Rengine.

Visual Studio 2010, 2013 | C++ | Win32

Features

Native & Custom Widgets

The Native Widget Library currently covers most standard win32 classes such as Textboxes or Listboxes but also allows the creation of new ones complete with custom rendering. These new widgets can consist of multiple already existing widgets or other custom widgets combined.

Win32 Abstraction

Acting as an object orientated wrapper around the Win32 code, the Native Widget Library eliminates the need for win32 specific code inside the project to speed up compile times. Using a single define, the library can expose its internal classes, allowing you to create a custom widget with pure win32 code if needed.
  MICRO MACHINES

Compete with AI Opponents

Play on Different Tracks

Drive Multiple Types of Cars

Game programming assignment for the Programming 2 course. The assignment had to resemble the original Micro Machines game by Camerica Limited featuring a racetrack with opponents and collision.

About

Background

This was one of the first big game programming assignments I had to do. The idea was that the game should resemble the original Micro Machines featuring multiple racetracks and cars. In addition, the game would need to keep track of highscores and was required to have some audio capability for which I used the FMOD 32bit API.

Visual Studio 2008 | C++ | SDL

Features

Compete Against AI

Drive against AI controlled opponents that follow a pre-determined path with minor randomess to keep things more interesting and un-predictable.

Multiple Cars

Each car has some unique properties such as Velocity, Grip and Acceleration that impact how it handles.
  EMPIRES

Navigate the Galaxy using A* Pathfinding

Fight for domination over 8192 Planets with 3 AI opponents

Algorithmic programming assignment based around a planet colonization game. Developed as an assignment for the Programming 4 course featuring path finding, traveling salesman and random number generation.

About

Background

This was the final programming assignment for the first year programmers. We were asked to develop a small game where the player was able to colonize planets within a randomly generated galaxy. Opposing the player were several enemies that also have the ability to colonize planets using ships. These ships needed to find a way to navigate between planets using a path finding algorithm. If an planet is colonized, it will influence other planets until they too fall under the player's authority.

Visual Studio 2008 | C++ | SDL

Features

A* Pathfinding

Each ship in the game relies on the A* pathfinding algorithm to make it follow its propper course.

Planet Generation

Each one of the 8192 generated planets is unique through its name and other variables such as Tech Level, Resistance, Resources and Population
  AGE OF WONDERS III

Several new Races to Play with

Introducing new Mechanics

For my internship I was allowed to work at Triumph Studios whilst they were developing the new Age of Wonders III Expansion Eternal Lords. During this period I was mostly involved with the engine tools.

About

Background

During my 5 month intership at Triumph I was allowed to work on their latest expansion of Age of Wonders III called Eternal Lords. Although I was not directly involved with the development of the game I did occasionally fix some bugs and test certain elements. Throughout my internship I was mostly spending time porting a specific tool to the Qt 5.x framework which took most of my time Next to that, I was assigned to monitor the support mail and help out any customers with techincal difficulties such as crashes or performance problems.

Official Website
Steam Store Page

C++ | Creator Engine | Qt 5.x

Media

Trailer



The official trailer of Age Of Wonders III Eternal Lords.
  AI VENDETTA

Transform to get the job done.

Use the surroundings to your advantage

Combat roque enemy AI

The famous AI Corporation lost control over its products that are taking over the world. An old discarded product, a robot called Proto, wakes up and finds himself to destroy the AI corporation.

About

Background

AI Vendetta was the first game I worked on at IGAD. The game is a RPG style puzzle game in which the player takes the role as a robot named Proto. The game was developed using GameStudio A8 and scripted in its language: C-Lite. My roles were to program several enemies, the ability for the player to morph to other types of tanks and I did the sound design.

Received Gamelab Award for Programming.
Created in 14 days for the Gamelab 1 course.

Gamestudio A8 | C-Lite

Media

Trailer



The official trailer of AI Vendetta I created as the requirements stated.

Music



Random music excerpt from the game.

Credits

AI Vendetta:
Jim Lips
Spike Meesters
Robin van Lierop
Ties van der Mede

Frans van Maanen
Thom de Moor
Rens van der Meijs
Team Lead | 3D Artist
Art Lead
3D Artist
3D Artist

3D Artist
Programming Lead
Programming
  CUBILITY

Rotate the Cubix to rotate the game world

Use the Cubix for input

Cubix data routed to the game

Cubility is an experimental puzzle game developed for the course Advanced Game Technology. It is using a custom input device called "The Cubix" through which the player interacts with the level.

About

Background

Cubility is a prototype game that was developed developed for the Advanced Game Technology 7 course. For the game, me and a team are developed a custom input device called "The Cubix". The device has six buttons implemented using a Makey-makey kit and distributed on the sides. The Cubix also sends its orientation using gyroscope data to the game to provide the player a way to navigate the game world. Finally, it has a built in audio-speaker.

Visual Studio 2010 | Empowered Engine | C++ | Javascript

Media

Trailer



The official trailer of Cubility I was able to create.

Credits

Cubility:
Thom de Moor
Rens van der Meijs

Joost Slootweg
Elmer Lexmond
Tom Prinsen
Cubix Creator | Programmer | Additional Art
Gyroscope | Programmer | Trailer

Designer
Designer
Designer
  DE LAATSTE ONTMOETING

Make choices

Watch the story unfold

De Laatste ontmoeting was the initial phase of a commercial collaboration between the NHTV University and Careyn. Follow the narative of the Van Dijk family through their memories recorded in their family album. The next phase of the collaboration can be found here.

About

Background

De Laatste Ontmoeting was a commercial collaboration between the NHTV University and Careyn. It was developed to encourage eldery people to get out more. Through an interactive story with quests and cinematics elder people would work together through sharing both thoughts and anwsers. The game itself was created using Unity3D and can be played on laptops and android tablets but requires a ( wireless ) internet connection. By playing the game, players slowly learn about the family van Dijk and what happened to them.

Received Gamelab Award for Sound Design.
Created in 14 days for the Gamelab 5 course.

Visual Studio 2010 | MonoDevelop | Unity3D 3.5 | C#

Media

Trailer



The official trailer of De Laatste Ontmoeting, Phase 1.

Credits

De Laatste Ontmoeting:
Renko van den Hout
Lisa Burgers
Sander Meessen
Michael Vriens

Rens van der Meijs
Bart de Bree
Kamyar Fadai
Alexander Laheij
Mike Schaap
Pepijn van Sinderen
Irina Tomova
Mark Moes
Team Lead
Design Lead
Tech Lead
Art Lead

Gameplay Programmer
Networking Programmer
3D Character Artist
2D Artist
3D Character Artist
2D Arist
Interface Artist
Sound Design
  MINION MARCH

Harvesting Souls

Steering Vikings

A variety of Contraptions

Minion March is a cartoon styled lemmings game with a twist. Lead two types of clans into battle using a series of contraptions ranging from catapults to teleporters. Created in 7 days for the Gamelab 4 course.

About

Background

Minion March is a cartoon styled game created in Unity 3D. It's based on Lemmings but with a slight twist. Based on the nordic belief that a glorious death can only be found in battle, the player must guide vikings of two clans to clash. The player can do this by placing contraptions such as catapults and teleporters. When died in battle the viking will release a soul. It is up to the player to catch these and to balance the souls of the two clans.

Received Gamelab Award for Best art.
Created in 7 days for the Gamelab 4 course.

Visual Studio 2010 | MonoDevelop | Unity3D 3.5 | C#

Media

Trailer



The official trailer of Minion March I was able to create.

Music



The Main Theme of Minion March I composed during my free time.

Credits

Minion March:
Niki ( Nikahad ) Ali
Quinten Buijs
Rens van der Meijs
Tiziana Kieboom

Sanjay van Gestel
Joris van Grinsen
Arthur Abeen
Yan Knoop
Matteo Ferrera
Bart de Vries
Team Lead, 3D Artist
Design Lead
Tech Lead
Art Lead, 2D Artist

3D Artist
3D Artist
3D Artist
Programmer
Designer
Designer
  STAR RAIDERS REMAKE

Based on the old Star Raiders on the Atari by Doug Neubauer for the Gamelab 3 course. Become a freelancer in this 3D space shooter by hiring missions to neutralize any threat the galaxy is facing.

About

Background

Star Raiders Remake is, as the title suggests, a remake from the old Star Raiders on the Atari by Doug Neubauer. The programming team decided to use Gamestudio A8 as the engine and to interface it through C++. This was done because we had to implement a lot of features in little time, leaving us little time to setup an engine ourselves ( At that time there was no luxury of using Unity3D or Unreal ).

Received Gamelab Award for Best Programming.
Created in 14 days for the Gamelab 2 course.

Alpha and beyond

During the time I actually worked on the project it was considered to be an alpha version. After I had to leave the team they continued working on the game with the new title Eridani Wars. This new version introduced better graphics and had more polish on specific gameplay elements. Although I was no longer officialy part of the development team I still made minor contributions which consisted of some music and a trailer.

Visual Studio 2010 | Gamestudio A8 | C-Lite

Media

Trailer



The official trailer of Star Raiders Remake

Trailer



The official trailer of Eridani Wars

Music



Ambient music excerpt

Music



Action music excerpt

Credits

Star Raiders Remake:
Stefan Vink
Dimitri Shimanovsky
Thom de Moor
Nathan Daniels

Rens van der Meijs
Michael Vriens
Sidney Kuipers
Timme Dean Bil
Team Lead | 2D Artist
Art Lead
Programming Lead
Design Lead

Programming
3D Artist
Shadow Designer
Shadow Designer
  SOFTWARE RASTERIZER

A rasterizer developed for the Graphics Programming 2 course using a 2D graphics framework. This assignment served as an introduction to the modern day graphics pipeline.

About

Background

During the course Graphics Programming 2 I was asked to develop a rasterizer with features such as a skybox, texturing, scenegraph, z-clipping and .obj model loading. The rasterizer was build on a template provided by the teacher. Yet, the algorithms used for rasterization, transformation, model loading and clipping were implemented by myself. The scene features a racetrack in which you can drive around in a car through different camera angles like 3rd person, bumper and lookat camera.

Visual Studio 2010 | C++ | SDL

Features

Skybox

The scene features a skybox that is always rendered first.

Scenegraph

Objects in the scene are transformed accordingly to their node in the scenegraph.

Z Clipping

Polygons are clipped correctly using a z clipping plane.

.Obj loading

.Obj models can be loaded in through a simple .obj model loader.
  SOFTWARE RAYTRACER

An assignment for the Graphics Programming 1 course in which we had to develop a 3D raytracer capable of rendering spheres and planes with correct reflection, refraction and soft shadows.

About

Background

During the course Graphics Programming 1, I was asked to develop a 3D Ray Tracer with sphere and plane support. The raytracer was build on a template provided by the teacher. To speed up the rendering, I managed to add some multithreading where each thread renders a section of the scene. The combined result of the sections form the final image.

Visual Studio 2010 | C++ | SDL

Features

Renderer

The renderer uses the phong reflection model but also adds perfect and diffuse reflection and refraction on top of it.

Multithreaded

The raytracer deploys a multithreaded job system to manage the sections of the screen that require rendering.

Debug Console

During rendering the engine displays a interactive debug console that allows you to verify ray intersections.
  EFFECTS AND ANIMATION

A scene displaying several (shader) effects such as Depth of Field, water, procedural skybox and a particle system as was required for the Effects and Animation 1 course.

About

Background

For the Advanced Game Technology 3 course we received a framework from the teacher and a set of assignments we had to implement within that framework. The final assignment was to create a scene with a particle system, hsv color correction, depth of field, day/night cycle and a water shader with reflection.

Visual Studio 2010 | C++ | OpenGL | NVIDIA® CG

Features

Water Shader with Reflection

Using two render passes the assignment manages to create a reflective water surface with normal mapping for added detail.

Day/Night-cycle with Procedural Skybox

Using a procedural aglorithm that takes the sun height into account, the assignment is able to create a dynamic day/night cycle with the skybox.

Depth of Field

By sampling the depth of neighbouring pixels the assignment is capable of creating a depth of field effect. The central pixel is used as a focual point from which the depth is compared.
  SHADER PROGRAMMING

A graphics application featuring several shaders from simple diffuse shading to shadow mapping. Developed as an assignment for the Graphics Programming 4 course in OpenGL and NVIDIA® CG.

About

Background

During the Graphics Programming 4 course, I got introduced to programing shaders using NVIDIA® CG and OpenGL. For the final assignment we had to showcase several types of shaders like flat shading, phong shading, normal mapping and finally shadows.

Visual Studio 2010 | C++ | OpenGL | NVIDIA® CG

Features

Normal Mapping

A torus with a normal map, also has some reflection from the cubemap.

Phong Shading

A torus with a brick texture using phong shading with a low specular.

Shadow Mapping

A torus casting a shadow on the floor and backplane using the depth texture of the scene, rendered from the light.