OpenGL - Multi-threaded Texture Loading

James Fulop  — 4 months, 4 weeks ago
Hey everyone. This week I had the strange itch to see if I could do any OpenGL work on worker threads, and if so, if it would actually have any benefits. TL:DR, yes it can happen without too much trouble (depending on your architecture), and it did help me get my load time down by ~5ms per 2048x2048 RGB glTexImage2D(...).

All you need to set this up is to create an OpenGL context for each thread, who has its context shared with your main thread's context. The process for doing this is surprisingly easy, it can just be ...
Read More →


Hello!

Over the past month I have been working on revamping the rendering system to being something that's actually usable, mainly making it easy to add new shaders and modify them over time, eventually without having to restart the game for a shader modification. My previous approach was the "OpenGL 2.x" style of using GetUniformLocation() to upload data. This ends up requiring a lot of specialized code for each shader you load. Newer OpenGL versions offer some shader reflection which might have made this less painful, but I think I've been able to transcend most of that ...
Read More →


Wwise Integration, FBOs

James Fulop  — 7 months, 3 weeks ago
Long time no post! My excuse is that I've been busy preparing to move to Seattle for the summer! I have had some time to work on this project this month. Mainly, adding some basic Wwise integration, and adding support for FBOs (Frame Buffer Objects) through the graphics abstraction API.

The Going Ham demo was my audio partners first time trying FMOD. He has decided he prefers Wwise, which he has used for other projects. Integrating it was much more difficult than FMOD, but seems to have a lot more flexibility if I ever need to do really high-end ...
Read More →


7DRL Complete! - "Going Ham" Demo

James Fulop  — 8 months, 4 weeks ago
Hey guys,

It's been a little while, but I've been very busy with the engine project. My friend and I were able to complete our 7DRL game mentioned in the last blog post, with the working title "Going Ham". You can find a download for the demo here.

I'm pretty happy with how it came out. The general consensus I've gathered is that its difficult, but fun. Best of all, no one has reported any technical mishaps!

Since my last post I've added two new "engine" features, being SDF text rendering, and stack trace dumps ...
Read More →


7DRL Day-3 Progress

James Fulop  — 9 months, 2 weeks ago
This past week I started development on my 7DRL project. So this is my progress from Saturday to today (Monday).


(gif is pretty choppy, it actually runs very smoothly, check the video below!)

I was surprised that I didn't really have to make any major changes to my existing engine code. I've found a handful of bugs now that I'm actually battle-testing these systems, and have another user. There's a few things that popped out at me that I'll want to change when this is done, but all in all this is going smoother than ...
Read More →


New Profiler

James Fulop  — 9 months, 2 weeks ago
Hello!

I have two weeks of backlogged videos so I'm going to be posting them now. In this episode I went over a new profiler I wrote to replace what I was previously using, iprof. I did this because I wanted a profiler that could cross the DLL boundary easily (covering platform, game, and rendering code), and could save a single frame easily so I could profile start times. It was easier to write a new simple profiler than to try to get a full understanding of iprof.



There were a few interesting takeaways off the bat when I ...
Read More →


Rotation Tool Constraints, Snapping

James Fulop  — 9 months, 2 weeks ago
Last week I overhauled the rotation tool so it would be actually usable. This meant writing a real UI for it and adding multiple axis constraints to the rotation. It's working pretty well in my opinion! Now I just need a scaling tool to complete the basic transformations tool suite.



Full video demo/explanation here
Read More →