Wavelength Collector by andriybyelikov
Controls
- WASD to move
- Click and drag to move camera
- Walk into items to collect them
- Step on buttons to activate them
List of tools
- Programming Languages: JavaScript, GLSL
- APIs: WebGL2 (OpenGL ES 3.0)
- Development Server and Resource Bundler: Vite
| Link | https://github.com/andriybyelikov/ludumdare58 |
| Original URL | https://ldjam.com/events/ludum-dare/58/wavelength-collector |
Ratings
| Overall | 762th | 2.589⭐ | 30🧑⚖️ |
| Fun | 783th | 1.982⭐ | 30🧑⚖️ |
| Innovation | 381th | 3.268⭐ | 30🧑⚖️ |
| Theme | 703th | 2.964⭐ | 30🧑⚖️ |
| Graphics | 425th | 3.589⭐ | 30🧑⚖️ |
| Mood | 760th | 2.411⭐ | 30🧑⚖️ |
| Given | 29🗳️ | 33🗨️ |
I don't understand what's going on when I stand next to a wall (wall to my right/left). What are those reflections? Do the balls have a spotlight?
I'll have a look at the source code. I'm interested to see how you ended up implementing it.
Side note: From a game perspective, it would have been nice if you didn't have to hold the mouse button down to move the camera.
Though now i have to somehow rate this in a fair way with the other games and that's hard...
It would be especially fun if you introduced interactive objects that required specific lighting or shadow manipulation to solve, such as needing to light up or hide one of the three colored dots. This kind of mechanic would really elevate the gameplay!

I am super curious how the R+G+B light emitters work, and if the white light that they create is happening naturally as the scene is rendered by three different pure-color light sources (and thus has all the strange quirks of non-full-spectrum white light), or if you have any logic in place to additively combine the multiple colors.
In case you're not familiar with what I mean by the quirks of non-full-spectrum light, there is a really interesting Technology Connections video on this subject, where he lights a variety of scenes with RGB and full-spectrum white light, and the differences are really astounding: https://www.youtube.com/watch?v=uYbdx4I7STg
Again, there is some very cool stuff here, and I'm excited to see your next jam project to see if this gets expanded upon! Well done!
All lights in my game are monochromatic, event the white light at the ceiling in the middle of the room. I define my lights' emitted colors and my objects' reflected colors in the three pure wavelengths only, as linear RGB. I think it can be done to store entire emitted and reflected spectra functions per material instead of just three values for each pure red, green and blue wavelengths. In that case, instead of multiplying emitted and reflected RGB color vectors component-wise to obtain the final color, you would have to integrate the products of each wavelength across both spectra, and I think like that you can obtain what would be the equivalent color in real life. Then of course, this final color would still be converted to display encoded RGB, but it would be more accurate than illuminating an object with just three monochromatic lights. The problem with this approach is that it is too expensive to store and compute for real-time applications but I think that 3D animated films actually do this offline. I'm not sure if there's a way to accurately approximate or precompute any of the computations for videogame applications.

*This is a very good optical demonstration device; perhaps refine it further!*
I'm jealous of the tech you manage to create here. Well done!