When I render the lighting, the game stops and starts shooting thousands of light rays from each light entity. These light rays travel in a straight line until they hit a solid object. Once that happens, the light ray is reflected in a random direction. The collision also slightly changes the color of the light ray, this allows for the color of a block to reflect its color onto the surrounding area.
Posted by djoslin on Apr 19th, 2013
So I decided to share with you guys what I've done with II, I haven't showed it in awhile and a lot has changed.
I've developed a lighting engine. I can place light objects in the map editor that are spherical, a cone, or a box area of light rays. I can also adjust the colors that each light produces, they can produce three different colors each at the same time. This process allows for a unique fade of color.
When I go to render the lighting, the game stops and starts shooting thousands of light rays from each light entity. These light rays travel in a straight line until they hit a solid object. Once that happens, the light ray is reflected in a random direction. The collision also slightly changes the color of the light ray, this allows for the color of a block to reflect its color onto the surrounding area.
The rays not only change the lighting and color of the level's image, but they also store 5 different colors for each block on the level. These four colors are influenced by the direction a light ray is going when it passes through the block. Basically this allows the engine to know the direction that the light is going and bake it into the levels image.
Using that directional information, the player's sprite and hat are tinted to the appropriate values. This makes the character darker in dark areas, it will also be lit from the side when facing a light. This is basically an elaborate process that stores all of the lighting information in such a way that your computer would never have to process it yourself.
I've created a couple of youtube videos to show you guys it in action. I've been thinking about it for a while and I'm thinking I'm just going to cut every feature that isn't close to finished, try to finish two levels, and see if I can release it. I just want to finally finish this game so I can play it online with people. I really think the lighting system is awesome, it turned out better than I had hoped. I had always wanted to experiment with one, proper lighting makes a huge difference.
Anyway, here's a video explaining some of the stuff while showing it.
Be sure to watch the videos in high definition on YouTube and in fullscreen or it will look terrible.
And here's a video that shows off the recording feature of the game, and also a networked game. Basically I have a way to record all of the in-game actions down to a file, then I can reload that file and play back the game. I recorded a video of one of these demos, a king of the hill match with the one beta tester I've had forever. I'm thinking about gathering some beta testers again because there's no way to do proper tests without them.
The game looks a million times better running than it does on YouTube. I fiddled with compression settings for an hour or two to get them looking as good as possible. It's still not good enough, but oh well for now pictures will do. Oh yeah, I also completely redid the GUI. Be sure to check it out.
Anyway, stay tuned. I want to release this eventually. Haha