# 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
* 
* [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
* 
* [Link to demo](http://oinonen.nl/mazepath/)
[Top](#Juha-Oinonen-portfolio)
# Unreal
* SideScroller
[](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.
[](http://www.youtube.com/watch?v=H3m3gPzHr0s "Behaviour Tree showcase")
Image will open YouTube video
* Dialog Tree
[](http://www.youtube.com/watch?v=eoEopo7ch6o "Dialog Tree showcase")
Image will open YouTube video
* Perception
[](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.
[](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.

[](http://www.youtube.com/watch?v=inRo1vGfjb8 "Enviroment data (EQS)")
Image will open YouTube video
* Rotating surveillance camera with player detection

[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.
[](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

- Explosion

- Guide To Object

[Top](#Juha-Oinonen-portfolio)
# Blender
Hugo
--

Beartrap
--

[Top](#Juha-Oinonen-portfolio)