For the majority of the projects we would use visual scripting that is built into Unreal Engine, as it was a convinient way for both artists and computer science developers to get their foot in the door of game development. I made sure that they got all the basic concept of coding, but also I got the chance to teach them a couple of data structrures like Lists, Graphs and doubly linked list. These data structures were applied in C++.
On the side I taught developers how to make good level design and utilize the concepts of immersion. The levels ranged from 2D side-scroller games, to 3D Dungeon Crawlers. We utilized Photoshop and Maya 3D a lot for prop development and animation. I helped students grasp the principles of modeling and creating normal maps for creating illusions of High Poly.
At the core of the project I utilize the built in Perlin function that is being adjusted by a couple of parameters like octaves and lacunarity that distribute the noise to look more natural. On the image above you can see how I project the algorithm's graphical output to a 2D image plane.
The plug-in was optimized in a way that you could apply the algorithm to any 3D primitive object and the output would still result in a realistic landscape around the object. So if you ever wanted to create a sphere with landscape, this is would be the plug-in for you.
The plug-in has 3 methods of generating terrain: 2D with no colors applied, 2D with colors, and 3D landmass projection. The 3D mode has specific options that would allow you to specify the amount of triangles you want the land to have, thus allowing the user to save extra memory and processing power. Together with Nvidia's HLSL Graphics, I've been able to decrease the amount of necessary triangles and add a special style to the terrain that, again, could be adjusted in the editor easily.
Witht the help of the menu the user can easily switch any settings of the plug-in that would suit any types of terrain. You can also switch the biomes around and mix and mash between them to see what works best for you.
I utilized Unity's low level Network API to establish the connection between the user and the server. Currently, the way it works is when the server is online it will be searching for any incoming packages that include a ConnectEvent. In the case of that happening the server will start sending information to all the users currently connected regarding the newly connected member and will update the total list of players in the level. After the established connection the server will try to ask for player locations and if the player replies back it will update the location of that player to the rest of the party. Ofcourse, since the messages for the locations are going to go through the unreliable channel, occasionally there could be a lag spike, but it is not as important as the rest of the information, that goes through the reliable channel. Currently the server itself doesn't lerp player locations, but it uses the Unity's built in mechanic for lerping player locations over multiplayer. After the player disconnects from the level the server will remove him from the list, but will leave a binary file regarding the player's previous connection.
The game is similar to how Geometry Wars works where the player will be constantly attacked by projectiles from around the level. Since the projectiles wrap around the level and they spawn 2 child projectiles that fly even faster, the player should be very careful in how he manuevers the area around and should think which projectile should he destroy next. There is also a multiplayer mode where both players compete between each other for how many projectiles they destroyed, but also bumping each other into asteroids to win some time.
This was my first game where I tried to implement Dijkstra's pathfinding algorithm. Due to the theme of computer bugs, it was a legidimate attempt to add the bugs a way to constantly be able to catch yup to the player, avoid all block that the player could put with the level editor. But at the same time, I gave the player many ways to stage off the attacks with high gun fire rate and power ups, which included a large scale explosion and health pick up drops, though the pick up will actually avoid the player once his health will drop to 1 point.
I built the editor as it was a great way to stress test how Dijkstra's algorithm would perform with thousads of enemies on screen. It also allowed the player to be creative in what kind of level he wanted to play, whether it would be an open space location or a buolding with narrow hallways. Then editor also has a built-in mechanic that will save the player's level data, so that the players could share their levels.
Initially I worked on this model as a preparation for teaching a 3D modeling class. As I continued to add more detail I realized that the model looks very authentic and it would be great if I could finish it. As a result I made a super battle droid that is completely 3D print friendly and could also be used as an in-game-engine character due to the low poly count. I used PigArt's reference video to create this model.
The Gengar model was created as a request from a fellow student from RIT for an interactive media project in Unity. It is a high poly model that has presets for animation and rigging. In the latest edits I added teeth and eye shaders to make the model look more similar to the reference creature from the Pokemon games.
The Cat and Mouse Models were used by me to parody the old school Tom and Jerry show and in the end I distributed these models to the RIT GDD uperclassmen for their capstone project. These models are very well optimized for both high poly and low poly modes. The reference images were provided by EDGE-CGI.