Leandro Vian - Programming Portfolio

A collection of personal projects.

In this page I showcase games and prototypes I worked on during my spare time, exposing some of the details related to game design and programming. I worked as a programmer and game designer for all of them, but as it happens in most indie projects, I ended up doing even art and sound jobs when necessary.

Please keep in mind that even though I'm not an artist I created most assets so the projects could come to life without ripped assets. The goal of these projects is to showcase coding techniques, strategies and experience involved in developing them.

That's also one of the reasons why each project belongs to a different video game genre, this forced me to face different challenges and come up with new ideas and implementation for their solutions.

For any information related to my professional experience as a software developer please check my LinkedIn profile, also feel free to contact me if you have any question.

All the code produced for each project is available at Github an can be used by anyone, all projects were tested and compiled at Unity3D v5, HaxeFlixel 4.2 and Unreal Engine 4.21.

Unreal Engine Network Ready Prototypes

Unreal Engine 4 engine - C++ programming language

These two prototypes were created during another UE4 web course focused on C++ and UE4 network ready projects. The first prototype is a first person stealth game, where you need to capture the objective without the guards detecting you, and the second prototype is a third person shooter where you need to survive for as long as possible against waves of enemies.

Both prototypes were developed with multiplayer support in mind, and were tested with multiple players and dedicated server options, to ensure that the replications of all mechanics were working correctly.

Capture the Objective Horde Mode Horde Mode Killing

These prototypes helped to consolidate all the new knowledge acquired in the previous course, with the added aspect of network:

  • Heavy focus on C++ implementation.
  • Unreal Blueprint extending C++ developed classes.
  • Network ready games, using replication and server aknowledge actions.
  • Interface using Widgets
  • AI Blackboard and behavior trees.
  • AI Perception.
  • Materials, particle systems and emmiters
  • Environmental Query System (EQS).
  • Animation trees.

For the full Unreal Engine 4 code check out Capture the Objective, Coop Horde Mode.

Unreal Engine Prototypes

Unreal Engine 4 engine - C++ programming language

These three prototypes were created during a UE4 web course focused on C++. The first prototype consists of rooms that required basic puzzles to be solved in order to proceed, the second prototype is a tank simulator, and the third is a first person shooter.

Tank Simulator Room Puzzle Survival FPS

These prototypes were a great opportunity to bring my experience from previous projects to UE4 and C++ :

  • Heavy focus on C++ implementation.
  • Actors, components and controllers.
  • Unreal Blueprint extending C++ developed classes.
  • Interface using Widgets
  • AI Blackboard and behavior trees.
  • AI Perception.
  • Physics Constraints.
  • Materials, particle systems and emmiters
  • Environmental Query System (EQS)
  • Animation trees and Blend spaces
  • UE4 tools and other specifics

For the full Unreal Engine 4 code check out Room Puzzle, Tank Simulator , Survival FPS.

Midnight Cowboy

Unity 3D game engine - C# programming language - Finished

This was the third project I developed, being more experienced in game programming and gamedesign gave me confidence to increase the scope a little bit and tackle new challenges. The project took around 9 months to be concluded

This game is a top-down view 2D shooter with a old west theme, with 4 types of guns, dynamites, upgrades and 6 levels with bosses, each with its own history.

Menus - Upgrades - Day Level

So far this project took the least amount of time while having the best UI, mechanics and art, myself being responsible for the following aspects:

  • UI build using the NGUI plugin to controll animations, transitions etc.
  • Game State controll with persistance for upgrades unlocked and 7 scenes manegement.
  • Enemy spawn based on wave systems with multiple spawn points on each stage
  • 4 weapons with different rates of fire, precision, animations, sounds and bullet behaviours.
  • Enemy AI with 3 behaviours, agressive, balanced and defensive.
  • Dynamic shadows using the 2DDL plugin.
  • Game "art"
  • Upgrade system
  • Tutorial Level
  • Tips, during level loading.
  • Game sound manager, responsible for music and sfx play based on gameplay events.
Night Level

For the full Unity3D code in C# check out Midnight Cowboy.

Rock and Road

Unity 3D game engine - C# programming language - Finished

Rock and Road, was develeped after Sturdy Defenders reached a dead end.

This game is a 2D infinite runner with a rock'n roll theme, the idea was for it to be a simple high score game as those played on online game websites. The scope was meant to be smaller than Sturdy Defenders since we no longer had artists, so in this project I programmed, drew and created some audio effects.

Menus - Gameplay

This project was finished as we managed to developed all ideas and mechanics we had in mind when we started, while avoiding feature creep. Some of the mechanics and topics I developed were :

  • Game and level state system, developed to acomodade the seamless menu/level transiction of a single scene game.
  • Increasing difficulty based on distance traveled by the player.
  • Obstacle spawn system that picked from a predefined set of obstacles based on the current difficulty
  • Player animation controller with multiple animations based on player parameters or triggers
  • Event systems for queuing scores and collectables values to be displayed in the UI.
  • Game sound manager, responsible for music and sfx play based on gameplay events.
  • Whole "art" of the project.
  • UI build using the NGUI plugin to controll animations, transitions etc.

For the full Unity3D code in C# check out Sturdy Defenders.

Sturdy Defenders

Unity 3D game engine - C# programming language - Halted

Sturdy Defenders was the first project I focused on after starting collage, spending a lot of hours in this project that went on for a bit over one year.

This game is a 3D tower defense with a steam punk theme, it was planned to have a 3 levels, 4 types of towers and 4 types enemies. The scope was meant to be small, allowing us to acquire some experience, but unfortunately the artists involved could no longer dedicate time to the project and so we stopped a bit short from the goals we had.

The game was developed using Unity3D 3.4 with the Unity WebPlayer in mind, since browsers no longer support NPAPI I imported the project in the recent version 5 of Unity, I had to fix some compatibility bugs but it worked, allowing to make some screenshots.

Main Menu Loading Screen Start of first level First level advancing. Second level.

Even though we could not finish the project, it was an opportunity to learn and implement techniques of game programming that I would not have used in regular web or software development, such as :

  • Game State controll, level transition and persistance
  • Wave Systems
  • Enemy Controll, statistics(speed, resistance and health), state controll and animations.
  • Waypoint system, guiding enemies trough the different paths in each stage.
  • Tower Systems, with a grid of spots to build, construction and destruction.
  • Tower Controll, statistics(damage, price, range), animations, guns aiming at enemies and target aquiring based on event system.
  • Design patterns, such as factory and singleton.

For the full Unity3D code in C# check out Sturdy Defenders.

Shoot Me Up

HaxeFlixel game engine - Haxe programming language - Halted

This project began when browsers dropped the support to the NPAPI, making the Unity Webplayer no longer an option for game distribution. The haxe language was chosen because it allowed a project to be compiled to multiple OS's with a single code base.

Shmup prototype running

Overall this project was an opportunity to learn and implement specific aspects of game programming related to shmup games:

  • Enemies spanning from a single Enemy class using inheritance
  • Wave systems built expecting generic enemies, with paths, quantity and delay defined on creation time.
  • More than 10 predefined screen paths that could be assigned to enemies besides random ones.
  • Bullet system based on Bullet parent class, with pools for reusable bullets.
  • Two types of weapons, bullets, and missiles
  • Low level collision control base on layers.
  • Low level render and effect controll based on layers.
  • Homing missile behaviors
  • Art/Animations based on sprite-sheets based on a low-level code control
  • Low level game, level, sound and config managers.
  • Temporary Game 'art'

For the full project code in Haxe check out Shoot Me Up.