Eng. Dawid Tarasienko
Unity Developer
A programmer who has always been interested in video games and technological innovations. I started creating the first small programs around 2009. In 2013 I finished the high school and own a IT technician degree - in this year I also decided to take seriously programming, which later turned into my new passion.

I started my journey with Unity in 2015 and since then I create projects in it every day, with small breaks for create applications, among others in C#/.NET, Java and Android. I graduated in 2017 at West Pomeranian University of Technology in Szczecin (the Polish version of Oxford in UK), obtaining an engineer degree in the computer science department.
Skills
Main skills.

  • C#

  • Unity

  • Unity Editor

  • UNet

  • TCP/UDP Sockets

  • Machine Learning
    (basics)


  • Java

  • Android

  • SQL

  • UML

  • CPU/GPU Optimization


  • Firebase
    (basics)

  • Facebook SDK
    (basics)

  • Git

  • Unity Collab

  • Trello

Programs which I use to create the graphics and audio.

  • Blender

  • GIMP 2

  • Adobe Photoshop

  • Adobe After Effects

  • Adobe Premiere Pro



  • Agisoft Metashape
    (photogrammetry)

  • Inkscape

  • Audacity

Other skills which I know at least on basic level
and which I used to create at least one small project.
I do not plan to improve (at this moment) these skills.

  • OpenGL/OpenGL ES

  • Selenium WebDriver

  • HTML5

  • CSS3

  • JavaScript

  • jQuery


  • C/C++

  • PHP

  • ASP.NET MVC

  • Bash

  • Matlab

  • Other...

Languages and other.

  • Polish
    (native)

  • English
    (intermediate)

  • Russian
    (basic)

  • Driving License
    Category B



Skills to learn...

  • ShaderLab

  • Shader Graph
Learn to write shaders in the ShaderLab language and learn the Shader Graph, in which I can create a simple shaders at this moment.


  • Visual Effect Graph
Learn the advanced features of Visual Effect Graph, in which among others I create effect visible at the beginning of this website.


  • VR

  • AR
Learn to create applications which will use a virtual reality (first for the mobile devices, later for the more advanced devices).
Next I will learn at least the basics of augmented reality.


  • Unity ML-Agents
When I create a few more projects using Machine Learning (from scratch, like my one of the projects below) I will learn how to use the Unity ML-Agetns toolkit which allows to create projects faster with implementation of Machine Learning.


  • Project Tiny
Learn the Project Tiny which allows to create light-weight applications/games, thanks to cut some elements from Unity responsible for e.g. physics. Thanks to this, such applications (weighing ~1MB) start almost immediately.


  • DOTS
Learn the DOTS (Data-Oriented Technology Stack) which allows create games in Unity with thousands of interactive dynamic objects in constant 60 frames, even on mobile devices, among others thanks to multi-threading.


  • GCP
    (basics)
Learn some basics of GCP (Google Cloud Platform) which may also be useful in future in various projects created for instance in Spring.


  • Spring
Learn the Spring at least at a basic level in which I will be able to create a back-end for websites, applications and games, instead of using PHP for it.




Projects
Projects created in Unity.
NEAT Race
A small project which uses a Machine Learning to learn cars drive on the race track with the NEAT (NeuroEvolution of Augmenting Topologies) algorithm.


Play in the browser

Download .exe on Windows

Download .apk on Android

Source code on GitHub


Cross the Hell
A full version of game created at Ludum Dare 43 game jam in 2 days, which theme was "Sacrifices must be made".
This is a 2D puzzle-arcade platform game, in which player has to move from one point to another moving from first to second dimension, to overcome obstacles.
The gameplay difficulty is not easy and requires from player to remember the invisible objects being in another dimension (unless the player chooses an easy difficulty level - then the second dimension is visible in the form of flying particles in the right color).


Play in the browser

My Ludum Dare 43 submission

Source code on GitHub


Mesh Combiner
A little tool which can combine different meshes into one mesh in Unity for reduce the amount of batches / draw calls (instructions that a CPU sends to a GPU), making your game more optimized.


Download on Asset Store

Source code on GitHub


Catcher
An arcade game for mobile devices in which the player has to catch spawning elements with different properties (red - normal, black - heavy and when touches the platform can not be catched again, green - jelly and sticks to the platform, blue - shrinking/disappearing) and place them on the platform.
In game also is a cooperative mode in which 2 players can work together by connecting in a local network. For network communication I used TCP/UDP sockets and UNet.
Game is not ready yet. Some features are not finished, for instance loggin into the players account or weekly competition for special "Prime" skins. UI will be redesign and I need to reduce e.g. the number of clouds for the weaker devices, because after some time they have a CPU throttling and the FPS number drops from 60 to ~25.




Ubermarket SIM 2017
An online simulator which allows the player be a businessman who has his own shops network. After a match the player can see graphs with data which was collected on whole gameplay. Based on collected data the player can deduce why he was doing worse than another players.
The players (max 5 on the server) at beginning of the gameplay choose the right terrain to buy and build their first shop on. The each terrain has its own parameters which define its profitability, for instance an area security or terrain size (on the bigger terrain we can build bigger store (or expand an existing one) and parking). Next the players order the goods which have different prices and expiration date in different warehouses. After that the players set own prices, employ employees and improve the store.
The simulator was created for my engineering work. All of its elements were created from scratch (not including trees from Asset Store and icons/images). I created all 3D models in Blender. The graphics were made quickly for lack of time and is not very beautiful, but it was not important at all here. The simulator/game (like you see on screenshots) is only in Polish language.




Jelly Auto-Creator
A tool which changes normal/solid mesh (uses a Mesh Filter and a Mesh Renderer components) into "jelly" mesh (skinned mesh, uses a Skinned Mesh Renderer) without need to do it yourself from scratch.
I created it to speed up the process of creating sticky jelly elements in my above game "Catcher".
The tool is in the "alpha" version and requires a little more work to work with all the more complex mesh shapes.




Effects created in Visual Effect Graph
A "set" of effects created in Unity with "Visual Effect Graph". For now is available only 1 effect and in the future I will develop the below repository on GitHub and share new created things.


Source code on GitHub


Sims AI Demo
A small demo which was a recruitment task for one company. I had to create an artificial intelligence and a room with items that it will use. The player can choose what the character in the game have to do or press the task prioritize button, which will set the interactions according to the needs of artificial intelligence. If the player doesn't do anything, then after 5 seconds the AI randomly starts interacting with items (if the AI is hungry then is a bigger chance it will go to the fridge to eat something). A more detailed description of the project is in the link below on GitHub.


Play in the browser

Source code on GitHub


Projects created on Android and in Java, C#/.NET.
Remote Rewinder
A client-server application which allows remote control of a computer keyboard. I created it for myself to don't have to get out of bed while watching a movie to rewind or pause/resume.
The client is written on Android using Java language. The phone's physical volume keys are used to send commands to the PC (the server written in C#/.NET) on WiFi network, so the user can comfortably rewind the movie without looking at the screen of their smartphone. The application runs in the background without any problems when the phone screen is asleep.
The perfect solution for those who do not have a wireless keyboard on hand ;).
In the future will be added a few new features to the apps and next I will release them on Google Play and Windows Store for free.


Source code on GitHub


Ultra Binary Calc
My "super" calculator on Android in which the user can simultaneously calculate numbers in different number systems.
This is my first app that I released on Google Play, in 2015. In some time I plan to improve the UI look and slightly change the interface layout to a little more user friendly.


Download on Google Play


PoE Trade Online Status
A little bot which refreshes your online status on poe.trade platform where you can trade items in "Path of Exile" game. Thanks to that the other players know that they can write to us for trade in the game.
I created this program for me and my friends because we did not want to use programs in which is required use the game account's login and password (here you have to use only your link assigned to your account on the aforementioned platform).
I used the "jsoup" library for HTTP communication.


Source code on GitHub


Potato Sender
A bot which sent messages with links to images on the wykop.pl website where was a charity campaign.
At the event, people had to share pictures of potatoes under the #charytatywnapyra tag (ang. #charitypotato). For each sent post you earned 1zł (later 3zł) for equipment for sick kids. The website rules did not prohibit use the programs that do the automatic work for me, so I created one :).
The program uses the "Selenium WebDriver" library which allows to create a bot that uses different browsers like Chrome or Firefox.


Source code on GitHub


V-Poster
My first created bot. It allowed sent one post to several websites simultaneously. This could be useful mainly for people who want to share their links to videos on forums.
It uses the "Selenium WebDriver" library which uses simultaneously different browsers, depending to to which forum it sends the message. Some websites support the "light-weight" browser which has not interface - "Ghost Driver/PhantomJS". Its advantage is that it is fast, but unfortunately it does not work on all websites. Firefox is used to support more "demanding" websites. If some website will require to rewrite reCAPTCHA from a image then user has to rewrite it in the program or in the browser (when using Firefox).
The bot uses too the "SQLite" library to operate on a data base. It is used, among others to save the history of sent messages. Thanks to that the user can find previously sent post, edit it (for instance update the links) and send post again as a new one.
The program of course was created for educational purposes and was not used to share illegal files :).




OpenGL ES - Android Demo
A small project created in college, using the "OpenGL ES" framework which allows create 3D visualizations and games for mobile devices. The entire project was created from scratch in Java for Android, using the Google documentation and some tips we got in the labs/lessons.
We had to do a terrain with trees and buildings (that is, create objects/meshes from scratch - from individual triangles), add lighting, create material that reflects lighting (a new shader for water), add the ability to move on created curved terrain (in the second video the player is teleported to the center if tries to go outside the borders of available area), etc.




Signal Visualization
A program which was expanded from laboratories to laboratories in college (on the subject "Fundamentals of Data Transmission"). It was created to visualize signals of different types depending on the entered data.
I didn't have to use external libraries to create charts, because the .NET Framework already has one (the program was written in C#).




N-Queens Puzzle
A chess and mathematical problem. This is the problem of placing N chess queens on an N×N chessboard so that no two queens threaten each other. A solution requires that no two queens share the same row, column, or diagonal (more information here).
I created this program in college on the subject "Introduction to Artificial Intelligence", in Java. It deploys in sequence the queens, using a recursion/recurrence on the chessboard and checks "beats" between them. If the "beats" exists then algorithm comebacks to the last queen and move her to the one field further.




Genetic Algorithm
A program (created for next labs on the subject "Introduction to Artificial Intelligence") which uses the genetic algorithm to select the best chromosome from the randomly generated population (with a size of 10) through 100 generations. In this case the best chromosome is the queen without collisions/"beats" on the 4x4 chessboard (value of the best chromosome without collisions: [2413]). Used selection algorithm name is a "tournament selection". You can read more about genetic algorithm here (PL) and here (ENG)).
The program was written in Java and uses the "JFreeChart" library to draw charts (you can also select data on the chart, zoom in, print, etc.).



Fractal - Mandelbrot Set
A program written in C++ (a small exception to the other programs mentioned above) on the subject "Concurrent Programming". It creates a popular "Mandelbrot Set" fractal.
A user chooses resolution in which file will be create - the image in .bmp format (the program uses a library for drawing and exporting .bmp files from a my friend).
Below is a link to the generated fractal in 28800x16200 resolution which weighed 1.4GB as the .bmp file. It was converted to .png and the black sides of the image were cut off. Thanks to this, the file now weighs 16 MB. I do not recommend watching it in your browser because it takes a long time to load. Instead, I recommend download the picture to your computer.


Fractal 28800x16200