Le Café

Game Design and Development | Academic Project



Game Designer

Game Developer

Sound Engineer




A playthrough of the entire simulation


Le Café is a simulation for IAT 265: Multimedia Programming for Art and Design. The user clicks and drags different elements together to create a cup of latte. This interactive allows them to understand the various steps in making a simple latte, allowing the user to appreciate the multiple efforts required for its creation.


I planned out the various codes and objects needed in the simulation. This included the multi-steps the user must complete to create a Latte, the environment, the goal and the main elements of the simulation. It was integral that the player interacts with the cabinet doors, a cup, a pitcher, a portafilter, sugar, coffee beans and milk because these elements are needed to create a Latte. By planning out what each object was and how the user could interact with them, I knew what I needed to get started with.


A plan with a description, the various classes and code that  is needed.


By knowing what the environment and objects were, I proceeded to create the illustrations in ProCreate. By using perspectives, I made four backgrounds stacked on top of each other to create a complete scene. Seeing that the grass at the front is closest to the user, I ensured that all the interactive objects the player could move were placed behind the grass. In doing so, this maintains the perspective and adds an intriguing element to the simulation.

The different layers of the background creating depth.

All of the illustrations are slightly green to maintain the nature theme. This hue ensured that all of the illustrations were cohesive. With the background done, I started creating the various objects that the user would be able to click and drag. Seeing that the user can put items in the objects, there needed to be two states. These multiple states were mainly used on the espresso machine and cabinets.

Illustrations of the various interactable objects.

The Code

The simulation used various techniques within the simulation: Perlin noise, animation, recursion, decorator pattern, ArrayList, and superclass. Perlin Noise represents the steam when the user steams the milk. The steam starts small but gradually grows in size and floats up till it’s off-screen. Animation is used for the dial and pouring of the espresso. By drawing various frames and layering them on top of one another, the dial appears to be moving, and the espresso machine is pouring espresso. For recursion, the stars that arise during the night were placed accordingly using recursion. Using a for loop, it looks through an array of x and y coordinates to know where to put each star. Moreover, the stars are also a decorator pattern onto the night sky. The different perspectives of the background are also decorator patterns. The interaction used an ArrayList to contain all the interactable objects with which the player can interact. Superclasses and Interfaces were also very helpful in ensuring that similar things were the same.


By finding the appropriate sounds for certain actions, the simulation becomes more immersive for the user. To fit the sounds to the simulation, I used Audacity to alter the sounds slightly. Moreover, the background music during the simulation was sung by me, Alicia LeClercq. By using a backing track, I sung along to the song, So This is Love by Illene Woods. I also added some birds into the background to make the simulation feel outside. It’s also the reason why the song feels distant, placing an emphasis on the birds.

So This Is LoveAlicia LeClecq
00:00 / 01:36

An audio recording of the music in the background.


Thanks to this simulation, I gained the confidence in working with superclasses and interfaces, seeing as this simulation is built off of classes inheriting from one another and optimizing the code. Moreover, by using various different techniques, I now know how to use and further develop them. After this project, I look forward to creating a variety of games and exploring what different techniques there are to help optimize and create an intriguing game.