Daniel Marques

Senior Gameplay Programmer


I'm a software engineer passionate about creating masterpiece games and providing memorable gaming experiences.

About Me


My name is Daniel Marques.
I love playing video games, learning about programming and game development, hanging out with friends, travelling, and driving fun cars.

I completed an Integrated Master's degree in Informatics and Computing Engineering at the Faculty of Engineering of the University of Porto.
I currently work at Ubisoft Québec as a Senior Gameplay Programmer.

My goal in life is to create games that are appreciated as works of art. Games that are engaging, immersive and unforgettable.

My Skills


Programming

Proficient in C/C++. Competent in C# and Python.

Experienced in Object-Oriented and Data-Driven Programming.

Knowledgeable in memory and performance.

Strives to write readable, extensible, robust and performant code.

Game Development

Quick to prototype new features.

Strong 3D math and physics skills.

Solid understanding of gameplay systems and their implementation.

Versed in networking, AI, quest scripting and animation systems.

Experienced with proprietary engines, Unity and Unreal.

Collaboration

Excellent communication skills with colleagues across multiple disciplines, teams, and experience levels.

Experience with all stages of production and large teams.

Accustomed to writing documentation for programmers and designers.

Promotes a respectful, productive and fun work environment.

Leadership

Consistently shares knowledge with the team.

Excellent code reviewing skills, ensuring high-quality code.

Contributes meaningfully when colleagues need help.

Able to delegate tasks and onboard programmers.

Professional Projects


Far Cry 6

Welcome to Yara, a tropical paradise frozen in time. As the dictator of Yara, Antón Castillo is intent on restoring his nation back to its former glory by any means, with his son, Diego, following in his bloody footsteps. Their oppressive rule has ignited a revolution. Play as Dani Rojas, a local Yaran, as you fight alongside a modern-day guerrilla revolution to liberate Yara! Fight against Castillo's regime in the most expansive Far Cry to date, through jungles, beaches, and Esperanza, the capital city of Yara. Employ an arsenal of resolver weapons, backpacks, and vehicles to take down Castillo's ruthless regime.

I joined the Far Cry 6 gameplay programming team during its final stages of production and continued to work on it after its launch.

My responsibilities on Far Cry 6 consisted mostly of fixing bugs and crashes and polishing features spanning the areas of gameplay ingredients, gameplay systems, game mode logic, physics, weapons and gadgets, vehicles, 3Cs (character, camera, controls), network replication, quest scripting, and more.

I learned a lot during this project simply by virtue of being exposed to a large codebase, working with very knowledgeable people, and taking every opportunity to broaden my knowledge of each gameplay system.


Assassin's Creed Shadows

Experience an epic action-adventure story set in feudal Japan! Become a lethal shinobi assassin and powerful, legendary samurai as you explore a beautiful open world in a time of chaos. Switch between these two unlikely allies as you discover their common destiny. Master complementary playstyles, create your shinobi league, customize your hideout, and usher in a new era for Japan.

I worked on Assassin's Creed Shadows for the entire production phase and during post-launch.

I was responsible for the technical implementation of various new gameplay systems. Namely, the Opportunity, Scouting and Ally systems. The Opportunity system was a novel way of exploring the world, purposely built for Assassin's Creed Shadows to contribute towards realising the Shinobi fantasy. It does so by building a passive network of scouts who provide the player with information each season about locations, activities, valuables, and rumours across Japan. The system also evolved to allow the player to find quest objectives by deploying their scouts to the specified area of Japan. Since this scouting system was a departure from the previous exploration paradigm, I was also responsible for creating the Guided Mode: an alternative mode where players automatically see their quest markers, bypassing scouting and locating the objective.

The Ally system aimed to contribute towards the same vision but in a more active way: the player can call upon recruited allies to assist in battle. Each ally has their own set of skills, useful in each situation the player encounters.

On a technical level, for each system and its multiple ever-evolving features, I conceptualised the code architecture, envisioned the data setup, and implemented the code. This was accomplished by working closely with colleagues from different disciplines and teams, namely game designers, technical designers, quest designers, testers, and other programmers.

Besides code ownership of the new systems, I was responsible for others, such as the exploration system, and I contributed to online collectables, the hideout, notoriety, achievements, and more.

Throughout the project, I applied my leadership skills to elevate the team by providing meaningful insights when discussing code architecture, by fostering their knowledge of C++, memory and performance, and by promoting high standards on our codebase through code reviews and discussions.


Personal Projects


Roar

I enjoy learning about graphics programming, so I decided to create Roar: a small amateur Vulkan Rendering Engine. The project is written in C++, leveraging the more recent language features. The engine is loosely built with an Entity-Component-System (ECS) architecture using the EnTT library. Components represent meshes, lights, transforms, cameras, and graphics resources, while model loading, render passes, uniform buffer updates, and camera movement are implemented as systems. The project features a very rudimentary Render Graph which owns the render passes, uses dynamic rendering, automatically creates and destroys attachments and texture resources, and deals with layout transitions. In terms of shading, it features a Physically-Based Rendering (PBR) pipeline with Image-Based Lighting (IBL).


College Projects


Knocky Shooty

Knocky Shooty is a funfair-themed virtual reality casual video game. In Knocky Shooty you can play two mini-games. In the arcades, you can shoot targets with a pistol. In the tents, you can knock down soda cans with baseballs.

The game features both natural and teleport locomotion, diegetic interfaces, gaze-based input and spatial audio.

The game was developed for the Virtual and Augmented Reality class using the Unity engine and the SteamVR plugin.


Primal Light

Primal Light is an open-world story-driven adventure video game. In Primal Light, light is literally a part of living beings. In it, you play as a character whose friend's light faded away. You decide to go on a mysterious and dangerous adventure based on an old legend in order to pursue any chance to save your friend.

The game was developed for the Computer Games Development class using the Unity engine.


Latrunculi XXI

Latrunculi XXI is a modern reimagination of Ludus latrunculorum, an ancient Roman board game.

The game was developed for the Graphical Applications Laboratory class.

It features a Javascript WebGL front-end that handles input, animations and rendering and a Prolog back-end that applies the game's logic to each play and generates AI plays.


Stick Hero

Stick Hero is a game in which the goal is to stretch a stick to reach the next platform.

This game was developed for the Computer Laboratory class.

It was built as a low-level C application, designed to run on the Minix 3 operating system. It uses operating system, kernel and driver level functions to handle keyboard/mouse input, timer/RTC changes and video card output. These device functionalities were done using interrupts (event-driven programming) and polling.


Feup Evac

FeupEvac is a 2D platformer game where you play as a student studying at FEUP's library. He's startled by an explosion and suddenly has to face enemies, falling objects and holes in the floor. His goal is to exit the library towards safety. Once he does, he realises he has fallen asleep while studying at the library.

The game was developed for the Computer Games Development class using the Unity engine.


Contact Me!