About

Sketching Feelings was the Semester Project of my fifth semester at h_da.

Sketching Feelings is a Dating Simulator for the original Nintendo DS. The game takes place in a Univerity, where a lonely student dates the drawings of a stangers notebook. The player has to make the right decisions and master Minigames to win the heart of one of the three Characters.

Project Info

Role: Programmer

Team Size: 6

Time Frame: 3 Months

Engine: C++, libnds and Nightfox Lib

Introduction

As I was the only programmer of this project, my main focus was on getting to know the hardware and deliver a smooth running experience with all the features we wanted for the game. Another big part of my role was to research all the required formats and limitation and therefore set up a pipeline for the artists with the help of a master student.

The team consisted of one Programmer, one Artist, one Game Designer and Artist, one Story Writer and Artist, two Sound Designers and two Master Students as Directors.

Researching the console

The resources for the NDS are limited, so setting up the pipeline included a lot of trial and error, as the DS only supports really old formats with their own requirements, like bitmap for sprites and raw for the soundfiles. Luckily there were two great resources that made it a lot easier. For one devkit pro, which includes a couple example projects for rendering sprites or playing sounds, and then the documentation of my library of choice NF-Lib, which is pretty detailed. Nonetheless, it took us quite some time to find the right programs and tools to create the assets for our game and solutions on how to overcome different limitations, such as the space limitations or the sprite size limitation of 64×64 pixels.

Despite some trouble in the beginning of the project, we found ways to create all our assets and got our way around most of the limitations. For example, there is no possible way to show text in front of a Sprite, so we had to draw our dialouge boxes into the background. Sounds simple enough but you first have to somehow find out that this is not possible in the first place.

Space Limitaions

Another obvious limitation, when working on old hardware is space. The NDS comes with 4 MB of RAM and 656KB of VRAM. So to get all of our assets in the game, there was a lot of loading sprites in and out of the VRAM and RAM involved. I wrote some code to always keep track of which asset is currently loaded, to know what to unload when a minigame starts.

There were also limitiations for the music as the library I used could only load and play sound files that are up to 256 KB big, which in our case were 11 seconds of music. So I had to write a system that sticks longer songs back together.

What I learned

As this was my first time working on a bigger project without a game engine I learned a lot about structuring your game in your own way, that still makes it easy to add things like additional minigames or dialouge sections afterwards. 

It was also my first time programming a game for a console, and as the DS is also an old console, I learned a lot about managing the resources of the hardware and where to cut corners to improve the performance.

Nach oben scrollen