Daniel Marques

Senior Gameplay Programmer


Gameplay programmer 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.

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.

Initially, I worked on features for the heat mechanic in Special Operations, namely heat sources and the colourblind mode. Later, as the game was preparing for launch, my responsibilities shifted to polishing features, fixing bugs and crashes across multiple gameplay systems, including character state machines, weapons and gadgets, vehicles, physics, network replication, mission scripting, game mode logic, camera, and more.

I leveraged this opportunity to learn about many gameplay systems, collaborating with system owners and domain experts to understand their implementations and resolve issues.


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 on the world gameplay systems team 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 this game to help realise 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. They each have their own set of skills and, when summoned, they spawn nearby with a fight or stealth goal, useful in each situation the player encounters.

For each system and its multiple ever-evolving features, I conceptualised the code architecture, accounting for performance, code modularity, ease of data setup, testability, and expandability through content updates. While implementing the systems, I collaborated closely with game designers, technical designers, quest designers, testers, production managers, and other programmers.

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

During post-launch, I implemented the Castle Respawn system and contributed significantly to the Open-World Alarm system and New Game+. In parallel, I debugged and fixed several player-reported bugs and crashes across gameplay systems, including repairing corrupted save data.

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 in our codebase through code reviews.


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!