To learn more about Rendering, I decided to take a class on advanced rendering techniques. In the class, we built our own graphics engines and work on those techniques. In my case, this was deferred rendering, moment shadow maps, and screen-space ambient occlusion. I proceeded to build the engine from scratch using OpenGl and a simple result is in the videos below. There are more projects I'd love to pursue, and I want to eventually combine it with my multi-threaded ECS, but the gist is there. Blog posts will delve deeper into the topics or any new topics I end up working on! I forgot to add a piece to show rendering the Ambient Occlusion step, and different textures of the deferred renderer. Not all of them are set nicely, but I have screen shots for future blog posts on those subjects.
0 Comments
After speaking with Tim Ford during my Blizzard internship, I wanted to test something out to up my knowledge in this growing trend of an area. Unity had also recently released multiple talks on their new ECS, and I had minimal experience in multi-threading in general. This project started from scratch, using a simple OpenGL forward renderer to make a simulation. The core idea is a lot of entities performing tasks and organizing each of the 'systems' into different thread groups. These thread groups are organized by what components each system reads and writes to. For example, one system might write to the position component, so then another system that reads from the position component cannot be in the same thread group. A thread group would update all of the systems inside, and wait, before moving onto the next thread group. This project was done during Fall of 2018. With the shorter time span, I had to skip out on some features and make shortcuts in the initial engine. Now in Fall 2019, I am slowly working on it and cleaning it up for fun. The first big hurdle is doing all of my own memory management. I'll update with more as time goes on. During Junior year at Digipen, my team made a 3-D, networked, simultaneous turn-based, pirate board game! We actually hard pivoted from a VR project the day before, so we had to start getting the custom engine up and running real fast! This led to me making a quick and dirty object manager using something known as a slot map! After, I made the TCP socket layer for networking. From there, it was mostly working on server side evaluation of player actions. Other than that, I produced for our team during the year. The second Semester, I mostly worked on tuning and bug fixing the game play and networking, while putting in a main menu, connection and ship selection system. As with the last project, blog posts will go more into depth in the projects, showing some code samples, and design information. I am willing to admit, I know some cool people. One of those cool people is a magnetic man with an entrepreneurial spirit, who just wants to make games. This led to his idea of making an indie game in Unreal Engine 4, the summer between sophomore and junior year. I was lucky enough to join with 2 other teammate from or Game 200 project (LunaSea).
There were a couple of tough hurdles to start with: none of us actually knew Unreal, and we were all basically programmers/designers by trade. Boss man was awesome enough to do a majority of the artwork and lead us. After the fact, he admits the precipitousness of balancing it all. Even though our first month we spent learning Unreal, and we changed fundamental aspects of the game half-way through, we ended up making a pretty impressive project, considering the circumstances. Here is the game on the steam page: http://store.steampowered.com/app/700340/Galacatraz_Eject_Equip_Escape/ For our sophomore year of Digipen, my team decided to make a exploration twin stick shooter in space. The trailer will give the gist of it! When we first started the summer before, I decided to give my hand at graphics. By the start of the school year, we had a basic 2-D graphics engine, thanks to the tutorials at http://learnopengl.com/. With no previous experience in graphics at all, learning the ropes was pretty difficult. Overtime I managed to explore some difficult topics, like instancing and 2-D Dynamic lighting, but it was all basically self taught with no confidants to bounce ideas or ask questions. The second Semester, I mostly worked on game play. We didn't have our final boss made yet, so I took initiative to design and develop the final boss and it's mechanics. With our minimal time span, that meant designing for simplicity and effectiveness, while giving a climactic feel. Blog posts will go more into depth in the projects, showing some code samples, and design information. |
Archives
November 2019
Categories |