Orion Peace Roussopoulos
From a young age I've been fascinated with how things work. As it turns out, in the information age the answer to that question is almost always computers. That lead to a fascination with games, and then a fascination with programming.
I now make games, along with some other programs. That can range from working with designers to turn their insane ideas into reality, making something that I find fun, or just throwing a program together to figure out an answer to a random question that popped into my head.
These are either my best work, or the projects that show off specific skills or knowledge.
Legacy Miners is a game I made in Unity with a team of fellow student designers and programmers over the course of a full year.
It is a procedurally generated rogue-like. Inspired by games like Rogue Legacy and Terraria.
Due to having one programmer for every four designers, I ended up having a hand in almost every system of the game, however there are a few highlights.
There was an issue with how Unity's rigid bodies handle multiple hitboxes next to one another, so I had to write the full movement system nearly from scratch.
Obviously with a game like this you need a procedurally generated map. Starting from a basic system a team mate had made in pre-production, I made a system to distribute individual ore blocks, large blobs of ore, and designer made level elements into the level.
An inventory and crafting system was required. Using Unity's scriptable objects and custom editors I was able to make a system for making new items and crafting recipes that was quick and easy to use for designers.
With the lack of programmers a lot of systems were initially prototyped by designers and later refined by me.
I am a massive fan of the Pokemon games, but often get frustrated with the informational clutter many third party wikis use. So back in 2021 when I was asked to make a C# application with the purpose of being a tool, I knew I needed to make a more streamlined source of information.
PocketDex is an application for finding information about pokemon. After pulling data from PokeAPI the program saves all information as JSON files within organized folders that it will try to find in the future in order to use instead of using PokeAPI.
The main page of the application holds all pokemon in alphabetical order. You can sort through said pokemon either by name, through a search bar, or by type using two drop down menus.
Once you actually look at a pokemon, various other information is called from the API/Files in order to show things like the various moves of the pokemon, type matchups, and the locations which the pokemon can be found in.
Early on with my time at LaSalle I made a very primitive copy of Super Mario Bros, also copying over level 1-1. This copy was made in XEngine which is a bare bones C++ based engine made by an old professor at LaSalle.
Roughly 2 years later I would come back to this clone, needing a base for my networking final. Most of the actual game code is less than perfect, but the network code is what I am truly proud of and why it is here.
The game has one player playing as Mario while 1 to 3 others attempt to place enemies and blocks in their way in order to defeat them. Whenever Mario is defeated or wins, a new Mario player
The game uses a TCP connection with communication kept to the bare minimum in order to reduce lag. In retrospect UDP likely would have been better for accomplishing that goal, but a TCP connection was quicker to set up in the incredibly tight span of time I had to write the code.
In order to make sure all messages are received and processed quickly an additional thread is used, constantly grabbing any messages that come in and saving them for later parsing.
As XEngine is a private engine I do not have permission to share, I won't be putting a link to the repository here.
Item Creation Tool
The item creation tool is a text based tool made in C++ using SQLite. The idea behind the tool is to completely remove the database management aspects of making and subsequently using a set of game items, both on the designer and programmer front.
For a designer, the tool is completely in console, using basic text commands to add, remove, or edit various items of different types. Using help commands any designer using the tool is essentially lead through using simplified versions of a given SQLite command. This can look like anything from the edit command format being shown, to the add command being a step by step process to get each stat through a separate input.
For programmers the process is even simpler. An item loader struct can be created, which can then load a given database. Then you're just dealing with C++ pointer vectors, which are deleted by the item loader on deletion.
Like with any of my projects I have a few regrets, if I had more time with it I would have liked to make it more designer friendly. Right now it can feel quite clunky to use and I would have liked to change it from a text based system to a more menu based system similar to how PocketDex works.
Bachelors of Science & Game Programming
Lasalle College, Vancouver
While at Lasalle I was able to refine my C++ abilities, and learn Unity C# along the way. I worked in teams to make games, as well as made personal projects ranging from console based SQL projects to online multiplayer games