# Juha Oinonen portfolio # Menu [Introduction](#Introduction) [NodeJS](#NodeJS) [MySQL](#MySQL) [C++ math modules](#C++) [Unity](#Unity) [Unreal Engine](#Unreal) [3D](#Blender) # Introduction Looking for internship opportunities. Currently in process of finishing my studies at Karelia University of Applied Sciences in Business Information Technology with a focus in software and game development. I am very familiar with NodeJS, Unity and Unreal. I'm always eager to learn and I love problem solving. I live and breathe PC gaming and am very passionate about e-sports. My main qualities are patience, perseverance, and humour. LinkedIn: https://www.linkedin.com/in/juha-oinonen/ Contact email: juha@oinonen.nl / 1900898@edu.karelia.fi # NodeJS REST API -- A REST API Server & Client for a spaceship switchboard. Done initially for a course project. Also includes Swagger documentation for REST server that can be found on /api/docs/. https://gitlab.com/nadyli/switches IRCBot -- IRC chatbot developed from the ground up. Most of the work done by me and some of the functionatility done by my friends. A NodeJS app that includes: - Sockets - Events - Enviroment files - Services Functionatility: * Setting up and maintaining connection to QuakeNet network. * Authenticating with the Q service * Automatically joining wanted channels * Getting a topic from website when detected * Handling different twitch streams and seeing if they're online or not with a command * Basic command adding/removing for basic text * Basic CI/CD workflow from Gitlab through SSH https://gitlab.com/nadyli/ircbot [Top](#Juha-Oinonen-portfolio) # Misc ## MySQL Design documents and creation of a database https://gitlab.com/nadyli/mysql-showcase [Top](#Juha-Oinonen-portfolio) ## C++ Math modules https://gitlab.com/nadyli/vectormath [Top](#Juha-Oinonen-portfolio) # Unity * Pathfinding A* * Basic A* pathfinding functionality * ![](https://i.imgur.com/tXwgdFq.png) * [Link to demo](http://oinonen.nl/reittihaku/) * Controls: * Left click: * Pick up dynamic barriers (blue) * Select movable objects (white) * Right click * Find path to selected grid position * Bottom left button * Toggle grid visibility * Mazebuilding * Build & pathfind a solvable a basic maze * ![](https://i.imgur.com/Zd9YOjQ.png) * [Link to demo](http://oinonen.nl/mazepath/) [Top](#Juha-Oinonen-portfolio) # Unreal * SideScroller [![2D Side Scroller](http://img.youtube.com/vi/cSQupKM8wJE/0.jpg)](http://www.youtube.com/watch?v=cSQupKM8wJE "2D Side Scroller demo") Image will open YouTube video ## Functionatility * Behaviour Trees This robots actions are being determined by behaviour tree. [![Behaviour Tree showcase](http://img.youtube.com/vi/H3m3gPzHr0s/0.jpg)](http://www.youtube.com/watch?v=H3m3gPzHr0s "Behaviour Tree showcase") Image will open YouTube video * Dialog Tree [![Dialog Tree showcase](http://img.youtube.com/vi/eoEopo7ch6o/0.jpg)](http://www.youtube.com/watch?v=eoEopo7ch6o "Dialog Tree showcase") Image will open YouTube video * Perception [![Perception showcase](http://img.youtube.com/vi/5j5NkqmPJn4/0.jpg)](http://www.youtube.com/watch?v=5j5NkqmPJn4 "Perception showcase") * Utility Function This cleaning robot uses utility function to determine if he should be cleaning, recharging or emptying his internal container. [![Utility Function showcase](http://img.youtube.com/vi/LVcBjxZ7_dc/0.jpg)](http://www.youtube.com/watch?v=LVcBjxZ7_dc "Utility Function") Image will open YouTube video * Enviroment data (EQS) This little robot uses EQS data to hide from the player. ![](https://i.imgur.com/OTC1mwv.png) [![Enviroment data (EQS) showcase](http://img.youtube.com/vi/inRo1vGfjb8/0.jpg)](http://www.youtube.com/watch?v=inRo1vGfjb8 "Enviroment data (EQS)") Image will open YouTube video * Rotating surveillance camera with player detection ![](https://i.imgur.com/ZwpubZW.gif) [C++ code](https://gitlab.com/nadyli/unreal-code-showreel/-/blob/main/SurveillanceCamera.cpp "C++ code") * Asteroid Field spawner Dynamically create asteroid field around the player. [![Asteroid Field spawner showcase](http://img.youtube.com/vi/3b0VPbaqRaE/0.jpg)](http://www.youtube.com/watch?v=3b0VPbaqRaE "Asteroid Field spawner") Image will open YouTube video [C++ code](https://gitlab.com/nadyli/unreal-code-showreel/-/blob/main/AsteroidField.cpp "C++ code") [Back top](#Juha-Oinonen-portfolio) ## FX - Sparks ![](https://i.imgur.com/yJr8kf6.gif) - Explosion ![](https://i.imgur.com/R20bCz9.gif) - Guide To Object ![](https://i.imgur.com/sJsk4Fx.gif) [Top](#Juha-Oinonen-portfolio) # Blender Hugo -- ![](https://i.imgur.com/te1nfzQ.gif) Beartrap -- ![](https://i.imgur.com/D38o1Q7.gif) [Top](#Juha-Oinonen-portfolio)