Jump to content

Blogs

Three Massive improvements the new engine will make in your life

As I work with the new engine more and more I keep finding new ways it makes life happy and productive. Smart Pointers I have talked about how great these are at length, but I keep finding new reasons I love them. The behind-the-scenes design has been a lot of fun, and it's so cool to be able to write lines of code like this without any fear of memory leaks: LoadSound("Sound/Music/fully_loaded_60.wav")->Play(); What do you think that code does? It plays a sound, keeps it in m

Josh

Josh

Test: Customizable NPC controller

Working out of this subject:   I tested a script for a simple "GoToPoint()" function for a customizable character controller for NPC. This may not be so good as the implemented LE character controller with classic navigation system but it could be promising to use it in open world (so not in much corridored dungeon game!) where the the NPC should crawl or swim or whatever do things as for example underscaled world (thats what I am actually interested in 😁) The NPCs are using an "

Marcousik

Marcousik

Turbo Game Engine Beta Update

The Turbo Game Engine beta is updated! This will allow you to load your own maps in the new engine and see the speed difference the new renderer makes. LoadScene() has replaced the LoadMap() function, but it still loads your existing map files. To create a PBR material, insert a line into the material file that says "lightingmodel=1". Blinn-Phong is the default lighting model. The red and green channels on texture unit 2 represent metalness and roughness. You g

Josh

Josh

Next Steps

I've got the basic GI algorithm working but it needs a lot of work to be correct. I tend to do very well when the exact outcome is well-defined, but I am not as good at dealing with open-ended "artistic" programming. I may end up outsourcing the details of the GI shader to someone else, but the underlying data management is solid enough that I am not scared of it anymore. There's a lot of aspects of the design I'm not scared of anymore. We worked out smart pointers (including Lua integratio

Josh

Josh

Beta Branch Updated

The beta branch has been updated. The following changes have been made: Rolled beta branch back to release version, with changes below. Added new FBX converter. Fixed Visual Studio project template debug directory. Fixed Visual Studio project template Windows Platform SDK version problem. If everything is okay with this then it will go out on the default branch soon.

Josh

Josh

Real-time Global Illumination

Real-time Global Illumination

I finally have a cool screenshot to show you of our new real-time global illumination working. Here is a comparison screenshot showing direct lighting only: Now there are still lots of small issues to worry about. Right now I am only using a single cone trace. More cones will improve accuracy, but I think light leaking is just always going to be a fact of life with this technique. Still, the results looks great, require no precalculation, respond to environment changes, and

Josh

Josh

Cone Step Tracing

Cone Step Tracing

Now that we have our voxel light data in a 3D texture we can generate mipmaps and perform cone step tracing. The basic idea is to cast a ray out from each side of each voxel and use a lower-resolution mipmap for each ray step. We start with mipmap 1 at a distance that is 1.5 texels away from the position we are testing, and then double the distance with each steo of the ray. Because we are using linear filtering we don't have to make the sample coordinates line up exactly to a texel center, and

Josh

Josh

3D Texture Filled with Voxel Lighting

3D Texture Filled with Voxel Lighting

I have successfully transferred lit voxel data into a 3D texture. The texture is now being used to display the lighting at each voxel. Soft edges are appearing due to linear filtering in the texture. To achieve this, I used an OpenGL 4.2 feature which allows you to write values into any arbitrary position in a texture. This could also be used for motion blur or fluid simulations in the future. However, since Mac support for OpenGL only goes up to 4.1, it means we cannot use real-time GI on a Mac

Josh

Josh

Voxel Direct Lighting on the GPU

Voxel Direct Lighting on the GPU

We left off on voxels when I realized the direct lighting needed to be performed on the GPU. So I had to go and implement a new clustered forward renderer before I could do anything else. Well, I did that and now I finally have voxel lighting calculation being performed with the same code that renders lighting. This gives us the data we need to perform cone step tracing for real-time dynamic global illumination. The shadows you see here are calculated using the scene shadowmaps, not b

Josh

Josh

Summer Game Tournament Roundup

Summer Game Tournament Roundup

Here are the results of the Summer Games Tournament. Make sure you update your mailing address, because posters are being sent out immediately! Invade The arcade classic "Space Invaders" has been re-imagined with modern graphics and cute 3D aliens! Constanta Constant is an abstract game about capturing cubes. Make sure you read the instructions! Death Rooms Procedurally generated levels and a lot of interesting rooms make this FPS worth trying. Watch out for traps

Josh

Josh

Between The Realities - Announce!

Between The Realities - Announce!

Between The Realities is an indie game in the genre of first-person shooter, which is being developed by our creative association Antology Games Studio. At the moment the game is in active development at the pre-beta stage, the release is expected in the winter of 2019. Our project is entirely inspired by oldschool games of the late 90s, such as Blood and Kingpin: Life of Crime, and by films like Streets of Fire (1984) and Dark City (1998). Annotation: Another world. Different rea

adams-antology

adams-antology

Voxel Madness

Voxel Madness

After three days of intense work, I am proud to show you this amazing screenshot: What is so special about this image? I am now successfully uploading voxel data to the GPU and writing lighting into another texture, using a texture buffer object to store the voxel positions as unsigned char uvec3s. The gray color is the ambient light term coming from the Blinn-Phong shading used in the GI direct light calculation. The next step is to create a light grid for the clustered forward rende

Josh

Josh

Shadow Caching

I have shadow caching working now in Turbo. This feature is already in Leadwerks Game Engine 4. The idea is that static scene geometry should not be redrawn when a dynamic object moves. Imagine a character (6000 polys) walking across a highly detailed room (100,000 polys), with one point light in the room. If we mark the scene geometry as static and the character as dynamic, then we can render a shadow map cache of the static scene once. When the character moves, the static cache is copied into

Josh

Josh

Steam Release & Bladequest: Chapter Two!

Steam Release & Bladequest: Chapter Two!

Hi guys! Bladequest – The First Chapter now finally is on Steam! I am very excited to see how it is going! Check it out if you want! I think it’s pretty cool to have my game on Steam :). Recently I did some redesign and restructuring, affecting my logo, the newsletter and the website. I actually shut the website down and now use another service, which is easier for me to setup and maintain, so I have more capacity to develop Chapter Two! Preproduction and conception for “Chapter T

Phodex Games

Phodex Games

Physically-based Rendering

Physically-based Rendering

An online implementation of physically-based rendering in the Khronos Github was pointed out to me by @IgorBgz90 and @shadmar. This is very useful because it's an official implementation of PBR that removes a lot of guesswork. Here is my first attempt, which is not using any cubemap reflections: And here it is with cubemap reflections added: I plan to use the real-time global illumination system to generate the reflection data, instead of using environment probes. T

Josh

Josh

Adding LOD to the Model Class

The Model class is being slightly restructured to add support for built-in LOD without the need for separate entities. Previously, a list of surfaces was included in the Model class itself: class Model { std::vector<shared_ptr<Surface> > surfaces; }; This is being replaced with a new LOD class, which allows multiple lists of surfaces containing less detail to be stored in the same model: class LOD { std::vector<shared_ptr<Surface> > surfaces; }; class Model

Josh

Josh

Bladequest – The First Chapter Conclusion

Bladequest – The First Chapter Conclusion

Hi guys, First of all check out the newest episode of DevTalk, showing some progress of the development of Bladequest: Chapter Two! Bladequest – The First Chapter is available since about one and a half month now and so far and has totally exceeded my expectations with about 2000 downloads in total. It was a very interesting project for me, and I got a lot of positive feedback and you definitely want to see more from Bladequest. I think the foundation is there, to create a really cool

Phodex Games

Phodex Games

Umbra Sucks. Check out our Easy No-Bake Occlusion Culling

Umbra Sucks. Check out our Easy No-Bake Occlusion Culling

With the help of @martyj I was able to test out occlusion culling in the new engine. This was a great chance to revisit an existing feature and see how it can be improved. The first thing I found is that determining visibility based on whether a single pixel is visible isn't necessarily a good idea. If small cracks are present in the scene one single pixel peeking through can cause a lot of unnecessary drawing without improving the visual quality. I changed the occlusion culling more to record t

Josh

Josh

Constanta entry

Entry for tournament is on 😎 Check game information on link below and tell me this is not an odd game haha. I had  a limited amount of time for this because i go in holiday.Now its done was pretty painful even if i kept things simple , especially the debugging. Has multiplayer , and one way to capture territories. I will continue with this after tournament.   Future plans: Ai clients. Adding more ways to capture territories. Alerts to players so they kno

aiaf

aiaf

Workshop car for LE4.5 - ready to drive

I worked today on publishing a version of the drivable car workshop item for Leadwerks 4.5 https://steamcommunity.com/sharedfiles/filedetails/?id=1440937059 free to use, works with the FPS player controller. Here is a demo:   enjoy!  

Marcousik

Marcousik

Accidental Masterpieces

Accidental Masterpieces

Lighting is nearly complete. and it is ridiculously fast! There are still some visual glitches to work out, mostly with lights intersecting the camera near plane, but it's nearly perfect. I turned the voxel tree back on to see what the speed was, and to check if it was still working, and I saw this image of the level partially voxelized. The direct lighting shader I am using in the rest of the scene will be used to calculate lighting for each voxel on the GPU, and then bounces will be performed

Josh

Josh

×
×
  • Create New...