![]() ![]() ![]() This makes it easier for developers to point players toward the action as they enter a game. With some small changes to the respawn code, I made it so characters will use the direction of the SpawnPoint object when they spawn. ![]() I first added some features to the SpawnPoint system to make it easier to use. Vince “CodeWriter” D’Amelio Spawn and character attach points The system catches that, along with all the other actions like movement, shift lock and jumping, and creates a menu to let players change the actions to whatever they prefer. In the linked video, I created a custom action that sets the players head on fire by pressing the F key. So if a game set the “opening a door” action to the key E, this would let players change it to another key. The cool thing about it is that if a developer used the ContextActionService to bind an action to a key, this system would catch that, and create a menu option to change it. For a prototype version, I hooked into our ContextActionService API, which developers can use to bind keys, touch gestures or other input types to actions. This would allow players to change the keys they use to move their characters or perform special in-game actions. I spent the week working on an in-game key rebinding system that would work for all ROBLOX games. Internally, the underlying C++ module will perform 2,000 additions or multiplications in a very tight loop that contains nothing but the operations to perform (i.e., only useful work, no book-keeping overhead normally inherent to Lua VM) and with a very performance-friendly sequential memory access pattern. So, even if, for example, you have 2,000 particles in the system (as seen here), the script function is invoked only once per frame, but variables like: state.PX = state.PX + 1 Īre actually long arrays, each of which contains the given element (i.e., position X component) from every single particle. In the heart of this new particle engine lies a separate Lua VM with clever bindings that allow you to invoke operators (such as +,-,*,/) and functions on arrays instead of scalars. Performance considerations were pretty much the critical part of this project, because iLua VM overhead is very high. Notice how the particles changed size – I had adjusted the script to produce bigger particles and the system immediately picked up the updated function. You can make particles jump through hoops as is shown in this video. This example script runs for every particle every time the game renders a new frame, and recomputes positions and colors for it. Width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"> You, as game creators, are an important part in making that happen - don’t hesitate to PM me ( zeuxcg on or ) and let me know what parts of this demo would be essential for making your game look beautiful! In the last two years we’ve come a long way in terms of picture quality, and we have more improvements lined up but we still have a ways to go and we can, should, and will go there. While just one week is not enough time to nail down definite answers to all these questions, I believe I scratched the surface deeply enough to get all of us thinking. What is possible with the existing systems? What kind of incremental improvements can we make to the voxel lighting system? Can we use voxel lighting for more scene elements? Are there alternative techniques that can complement it when voxel resolution is not enough? How do we improve lighting contrast? To get there I had to explore a full gamut. While our existing dynamic lighting system is a great foundation for lighting your games, there’s so much more we can do - both in terms of making existing content shine, and giving developers more tools to improve the way games look. Remember: there is no guarantee that any of these projects will transform into official features, but the possibility is there.Īrseny “zeuxcg” Kapoulkine Light and shadow techniquesĭuring this Hack Week I decided to explore various techniques for working with light and shadows. Needless to say, there were many impressive projects on display and, as always, we’ve picked a select few to share with you. What is Hack Week? It’s an annual opportunity for our team to take nearly five full days and explore a visionary new idea or piece of technology. Before adjourning for the holiday season, the entire ROBLOX team gathered for an afternoon of excitement and innovation in the form of Hack Week presentations. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |