PORTFOLIO (Game dev)

Welcome!

I am Dani, my journey in video game development began in 2018. Since then, my passion for this industry has grown steadily. My professional goal is to create unique and captivating experiences for players.

After my experience as an indie developer, I am excited for the opportunity to be part of a team at a company and contribute to larger projects. My goal is to combine my passion for game creation with collaboration in a professional environment to achieve even more impactful results.

 

You can read this portfolio in 2 ways,  the faster way and the slower way.

Faster

Just watch the videos from here to the bottom for a general idea of my knowledge level about game development. 

Slower

If you want to know how I started and how I grown until this days, press the next button to go to the bottom and start reading from down to top.

Thank you

Go to the bottom page

2023

Git/GitHub & Sourcetree

 

Although I had already used Github in the past and created more than one repository (see here) , I had not yeat integrated something very powerful into my daily tools: Sourcetree.

 

A really useful and necessary program, especially if you work as a team, but also a very secure way of working and controlling all the changes that happen in a project, both during development and in post-production and version control.

 

Ihave learned everything necessary to use it correctly and safely, both by application and through the terminal.

Sourcetree has become an indispensable tool for working in a safe and controlled way as a team.

2023

Shader Graphs and 3D Bounds Collisions

 

In the latest project submitted to Master Devs, we have created a Subway Surfers clone.

 

From this project, I would like to highlight the shader graph created to curve the environment, thus adding dynamism to the level, as well as collision detection based on which “bound” of the collider the collision occurs, in order to trigger the correct animations in each case.

 

Honesty exercise: Even though I understand how shader graphs work and have created more than one, I must admit that I’m not an expert in shaders. It’s a rather complex part of development, and like ECS, mastering it requires a considerable amount of time.

 

As a solo game developer so far, I need to focus on specializing. In my case, I advocate and act accordingly in programming and project assembly and general development.

Part 1: Showcase of how the character reacts to collisions depending on the side it collides with.

Part 2: Example of the created code; In the GetCollisions method, we calculate the collider’s “bounds” to determine its “sides.”

Part 3: Finally, based on the side we’ve collided with, we call the corresponding animation.

Part 1: Example of the shader created.

Part 2: Shader Controller script that randomly curves the level every 3 seconds.

Part 3: Showcase of the curvatures using the shader at runtime.

Gameplay of the Subway Surfers clone created.

2023

More random generators and using imagination to get interesting things

 

Perhaps it’s not a surprise, but in my free time, I’m using Unity & C# too.

 

After making the first random scenario generator, I was curious about other ways to do it.

Looking for it, I’ve found several ways, finally, I’ve chosen the classical Random Walk Algorithm and Binary Space Particioning.

 

It has been an amazing experience that I’ve enjoyed a lot, to see big professionals coding was so beautiful, At the point where I am, I can understand methods and techniques that I’ve never used before, and it became easy to absorb that knowledge.

Finally, I made up my own random scenario generator with all the knowlegde I’ve got.

 

Also, building up a player, I’ve found on my own an interesting way to animate 2D characters, giving a kind of 3D illusion.

This random dungeon generator is very different from the last one I showed you.

I’m becoming an expert in this matter, and I can make them highly customizable

With this code, we automate the process of building.

A binary code is formed depending on the floors around each tile, and every possible binary code is associated with a type of wall (top, bottom, etc).

In this way, after completing the basic shape of the map, all correct walls are automatically selected depending on their position.

This animations are a combination of Mecanim Animator and a bit of C# programming.

They are still in development, but the possibilities here are really great.

You are seeing how we identify the starting point (player’s initial position) and the end (exit path) of the map, which can be used to determine what should be instantiated in every zone on the generated map.

In my case, I’ve called it ‘spreading’ because of the particular game mechanics, but this can be used in several ways

Still in development.

Chat GPT

I thought this deserves a mention, coding with chatGPT? Absolutely! as a tool, it helps me work more efficiently, of course, it is necessary to verify every statement, but it has proven to be quite useful,

I know how to use it and write the right prompts in order to get what I want from it.

2023

Starting work with a partner and a new project

 

Having a team, is better than being alone.

 

That has been my thought since I built my first game, lucky me, while I was working in Amazon, in Madrid, I met an Unreal Engine developer, also modeler and drawer.

 

He had a team, but not everyone was aware of the commitment and perseverance required to finish projects, and it eventually disbanded. After some chats, we started collaborating to create a game with Unity.

 

The main lesson is teamwork, and we are doing it very well.

 

The second lesson is a better development process. With all my new knowledge and understanding of C# and Unity, our project has reached a higher level of quality.

 

The project is still in development, and while I hope to secure a job before its completion (my savings are not unlimited), I am confident that this project will enhance my portfolio.

 

Unfortunately, game development is a lengthy process, and I am currently working hard to demonstrate my worth with what I can show for now.

 

I trust that this portfolio provides the closest possible representation of my skills and knowledge.

Demonstration of game mechanics: our character collects objects that alter their shooting capabilities

I’ve developed a Random Scenario Generator from scratch for this particular game

Basic optimization: when using animator parameters, we’ll save on text string calls by using Animator.StringToHash, which is more computationally efficient

Continuing the character prototyping process, with a focus on refining enemy behaviors and boss patterns to enhance gameplay

2023

ECS (Entity Component System)

 

I had never dared to use the Entity Component System until now.

ECS is a new paradigm in Unity. You can find a better explanation [here]

 

Working together with Burst and the C# Job System, ECS can be used to build more powerful and ambitious games. It’s a more complex system than basic Object-Oriented Programming (OOP), but it delivers much better performance, as every object is treated as an entity that shares data to be more effective.

 

I’ve conducted some basic testing with it, as becoming an ECS expert demands time. Currently, I need to make my time profitable, which means that whatever I work on must provide some income if I want to continue working as a developer. Therefore, I hope to continue using ECS in the future.

I’ve successfully rendered and moved 10,000 “objects” on the screen simultaneously, achieving an average of 125 FPS over time.

2023

Ballsvoid 1.1 & Ballsvoid PC

 

Two important things happened with my Ballsvoid game in 2023:

 

  1. All graphics were updated and improved, along with some code enhancements, and I fixed some minor bugs. The Ballsvoid 1.1 version was released for Android.
  2. After updating the graphics, I added some new mechanics to the game (as the flying stones or the new movable obstacles) . Additionally, I improved the Ballsvoid environments and transitioned the project into a PC game. I successfully completed the Steam publishing process, and Ballsvoid PC is now available on Steam.

2022

Unity Certified User: Programmer

(Score: 900)

 

The program of Pro Game Developer gave me the opportunity of doing the first Unity’s programmer exam, so I did, getting a score of 900/1000.

 

In future, with more stable economic situation, I would love to get all next certifications.

 

https://www.credly.com/badges/11df6c32-a90c-4cfe-9636-fa0e459615b9/public_url

2022

Starting to study with Master Devs

 

I’ve decided to continue my studies to gain more experience and further develop my skills as a professional. The team at Master Devs excels in game development.

 

The name of the course is Pro Game Developer.

 

This course is very comprehensive, I’ve learned new tricks, C# much deeper and a lot of Unity functionalities, components, etc.

 

Given the extensive content, I’ll highlight some of the new and valuable skills I’ve been applying in my daily game development work:

 

  • GitHub repositories and versions control
  • Data persistence ( StreamWriter/Reader, JSON, Binary Writer/Reader, Binary Formatter)
  • Delegates/Functions/Events
  • Execution order priorities
  • Poliformism (override, abstract, etc)
  • Heritage classes
  • Namespaces and Structs
  • URP/HDRP configurations
  • Optimization of code, music, assets and more
  • Correct use of parameters for functions and methods
  • Several ways to communicate between scripts
  • Correct 2D and 3D configuration projects, Characters and Environments
  • 2D and 3D animations systems with Unity
  • More about shaders
  • Data conversion types
  • 2D/3D mechanics 

City 3D builted with the Master Devs assets

(ground-view)

City 3D builted with the Master Devs assets

(air-view)

I have learn how to propertly configurate a 3D humanoid avatar

I’ve got very valious info about optimization, in this example, about sounds.

Prototype Pixel Hero game

Catch the Fish minigame

2022

Challenge project

 

I set out to create a game in two days, and finally, close to 30 hours later, I created Happy Drop, a game similar to Angry Birds.

Learnings

  • I learned several ways to launch a bird (a water drop in this case).
  • I learned more about Unity shaders.
  • I learned how ads monetization works (I used Adsense).
  • I learned how Spine Skeleton Animation programming works in Unity.

 

Link to  Happy drop on Google Play

2021/2022

My first commercial game

 

Here is an important time, I wanted to make my first $ with my games, and I made some hits and some mistakes.

Hits

  • I was able, again, to make a full game for Android with the minimum bugs and plenty functional.
  • I created Cabranut Studio and all associates with it (website, social media, youtube channel).
  • I’ve started earning my first €/$ with my games.

Mistakes

  • I couldn’t analyze the market to know what they were demanding, instead, I just focus in create something different (which I did), but it wasn’t what player’s wanted, the game is too difficult for what Android market expects.
  • The way of monetization, again, this was a mistake related to my knowledge about the market I was choosing to sell my game,  if I could start again, I would have chosen another way to monetize it.

Learnings

  • I’ve learned about how market works
  • I’ve improved all my game dev knowlegde about every and necesary aspects for the game dev process
  • I’ve published with succes on Google Play Market, learning about all that process, including the extra coding for set the Achievements and more extras.
  • I’ve realized about my own mistakes and how game devs have to adapt on what works on every market.

 

Link to Ballsvoid on Google Play

2020/2021

Trying harder and making plans

 

At that point, I had already made the decision to pursue a career in video game development. Consequently, I continued my learning journey through courses while actively experimenting with numerous prototypes and Unity functionalities to gain valuable experience.

 

At the same time, I’ve started designing better my first complete project, thinking to practice and applying everything I had learned.

 

This was a lengthy process during which I grappled with my own designs, experimenting with various functionalities and occasionally undoing significant work. I believe that such challenges are a common part of a game developer’s journey, and these experiences are invaluable for gaining insights and learning how to avoid similar pitfalls in the future.

 

Finally, I had created my first completed game for Android devices, and it wasn’t one game, it was 5 games! Called “First Steps: Five Games in One”, designed and developed 100% by me.

 

The game was released some time after on Itch.io (Also available [here]).

 

The list of learnings would be immense, you can take a look about this game in the next videos.

 

Note:  I know the art is not good, but I did what I could, graphics were just something I needed, what I wanted was to set up a full, functional and complex project without bugs.

 

Note 2: Is here, in 2021, when I quit my job in logistics sector in order to dedicate myself 100% to videogame development (after saved some money, of course).

 

God Thumbs is the first game of the five. Gameplay intro  &  Level 1

Gameplay God Thumbs – Level 2

Gameplay God Thumbs –  Level 3

Gameplay Chapter 2 : On the Road  (the 2nd game of First Steps)

Gameplay Chapter 3: At dungeon (3rd First Steps game)

Gameplay Chapter 4 : Ballsavoid (4th First Steps game)

Gameplay Chapter 4: Random Cards (5th First Steps game)

Customizable games after Campaign

2019/2020

Attempt to complete a game

 

I was excited about everything I was learning, and like many beginners, I made the typical mistake of thinking that I could accomplish something beyond my current skill level. I embarked on a project to create a game called ‘God Thumbs’ for Android.

 

However, I encountered a significant challenge in the third level of the game, where the scene had an excessive number of lights. When I added this level to the build, most phones couldn’t run it, and I wasn’t prepared to address this issue.

 

Nevertheless, this experience was valuable. It pushed me to start creating my own assets and animations using Inkscape software and helped me gain insights into common problems that arise during game development.

 

The third level I mentioned had a fundamental lighting component.

2019

Foundations of Game Development and Building Basics

 

During this period, I enrolled in a comprehensive course on Udemy, which proved to be an invaluable learning experience.

 

Some of the main takeaways from this course included the foundational aspects of game development, physics and collision systems, particle systems, and a deep dive into C# scripting. I acquired essential techniques and skills necessary to create both 2D and 3D games.

 

Here’s a condensed list of some of the topics covered:

 

  • GameManager (States Controller)
  • Inventory System
  • Set up for pickable objects
  • Effects and Coroutines
  • Life Bars
  • Enemy Configuration
  • Views in the game
  • Sound Managers and Sound Effects
  • Parallax Effects
  • Scene Management
  • Game and Player Mechanics, among others

Additionally, I ventured into creating 3D environments, characters, and objects, as well as 2D assets. I developed a basic First-Cam Controller script, implemented minimaps, and honed my skills in managing prefabs, among other things.

 

Please note that the video quality is not optimal, as these recordings were made with an older phone.

 

Course name: +100 horas: Curso completo de Videojuegos con Unity 2018 y C# (By frogames)

Link: No longer available.

I built this 3D environment (with PolyBrush) and implemented a basic First-Person Camera Controller.

Shadows jumping minigame.

During this time, I’ve read the book Level Up, by Scott Rogers(500 pages), which gave me more understanding about game development.

2019

Modeling/UV maps/Textures/3D environment

 

This course was essential for understanding how 3D works. I’ve learn how to modelate (environment, characters and objects), mapping, texturize, use Polybrush to create  3D environments, and I had my first contact with 3D animations and  third-person character Controllers, as well as shaders, optimization techniques, a bit of post-procesing and I’ve used Mixamo for first time.

 

I’ve modelated, set up and texturized all you see in the videos (Weapon, Character, Environment).

 

Note: Sorry for the first video quality, I just have this old video about this matter and it was recorded with a phone.

Course name: ProCore: Diseña Assets 3D para videojuegos con Unity 3D  (By Master Devs)

Link: https://www.udemy.com/course/probuilder-disena-assets-3d-para-videojuegos-con-unity-3d/

I’ve created, configured and textured this 3D environment and character. Also I used a few 3D optimization techniques, as you can see at the end of the video, where the sphere change the number of polygons depending how far we are.

3D Sci-Fi weapon I modelated and texturized

Certification of ProCore course, dated in May, 28 , 2019

2019

Going deep in Unity

 

My firsts and basic games in Unity, both from the Videogame Academy channel.
The game “Blocks!” was my first own level design and “completed game”, with only 3 levels, totally functional in Android devices.

 

Please, don’t ask about the music, I’ve just choose some random music.

 

Course name: Taller – Unity desde cero (10 videos – Academia de Videojuegos channel)

Link: https://www.youtube.com/watch?v=_AF2RXmP4pk&list=PLREdURb87ks05gLztvuSmRtKJ64pl3lyn

Showcase about those 2 basic minigames

2018/2019

Going deep in C# programming

 

I think I was lucky to find this course, there are 40 videos on C# programming, full of exercises and it was essential to have a good knowledge base about C#.

 

 

Course name: Curso en español de C# para Unity – Nivel 1 (40 vídeos –  Academia de Videojuegos channel)

Link: https://www.youtube.com/watch?v=RMQKPIjcVP4&list=PLREdURb87ks31G-kvEoI0YBoUwJMfPkzg

The course I did about C# programming was very extense

2018

My first steps in Unity

 

In my first contact I’ve learned about Unity Hub versions, UI, Canvas, navigation, animations 2D (Mecanim), project configuration  and I’ve coded for first time in order to move this knight character, score some points and destroy objects with the sword.

 

Course name: Curso Español Unity 3D: de 0 a ti en Youtube (48 videos – Carlos Serrano Sanchez channel).

Link: https://www.youtube.com/watch?v=PDBassPMLyc&list=PLwx-aykMAAJn73zkPRBUH_XVSbfuXM8Gs

First project I created in Unity

Introduction

I’ve start Learning Unity and C# programming by my own, making use of the resources that internet provides.

 

Please note that some visual resources I show you, they may be in a different language than the one you are reading.

Back to the start