Jump to content

Blogs

Basics

In this first entry I will introduce some basics about the internal structure of the Widget class and what the purpose of some of its members is. For the real basics on how to write a custom Widget I suggest reading this https://www.ultraengine.com/learn/CPP/CustomWidgets first. Most of the members are self explained, so I will focus in this entry on 4 important methods: virtual bool Initialize(const WString& text, const int x, const int y, const int width, const int height, sh

klepto2

klepto2 in Basics

Masks and Texture Blending

Masking is pretty easy and useful for adding some variety to your shaders. Masks are usually just some greyscale image that is turned into a float. In shaders floats have a very broad utility because you can add them just about anywhere. Super useful. And they can be used to blend textures or define areas in your material. Adding a mask in code is the same as with any texture. The greyscale quality allows you to use a single channel of that greyscale as a representative of all the channels.

havenphillip

havenphillip in Shaders

New offroad speed jeep car crossing desert mountains

Still researching a good car simulation script with LE 4.6, so what's new: I changed some important parameters of my car script to make the car more nervous, better responsive to the world, rapid and giving more feelings and more controls by driving it. Maybe it is not 100% what man can expect but it is now more  fun to drive and that's important. The car now calculates and integrates both the forces coming from the world and from the player commands,  That means it checks th

Creek

One of those things I wanted to make - and a big reason I think many people get involved in shaders - is water.  If you've been following along and grabbing these shaders you have now almost all the parts you need to make a basic water plane. If you understand these parts then you can manipulate them to customize your water as you see fit. I'm going to spend a little time in explanation here. In making this shader I start with the base shader and add a texture scroll effect on the normals (

havenphillip

havenphillip in Shaders

The Year of the Linux Desktop is Here

One month ago I began work to investigate what it would take to bring Ultra App Kit, the foundation for our new generation of game development tools, to Linux. Today I am happy to share my progress with you and discuss some of the things I have learned. Developed by MIT in the year 1984, X11 is an interesting beast that is easy to start with, but can become quite difficult once you get into the details. (Wayland support is of course an obvious step in the not-too-distant future but I have t

Josh

Josh in Articles

Skybox Reflections

Another simple shader technique is the skybox (or cubemap) reflection. Cubemaps are useful for creating quick and easy reflective surfaces for objects and work particularly well on curved surfaces or objects with bumpy normals. You can create an impression of a metallic, wet, or polished look quite easily (provided you have a way to generate cubemaps). In code, they are about as easy as fresnel, which gives them something of a broad utiity. Once you have the technique, you can treat it as a "par

havenphillip

havenphillip in Shaders

Fresnel and Blinn-Phong

If you took a bowl full of water and looked straight down into the bowl, the water would be clear. But if you were to then move the bowl up to your eye and look from the side along the surface of the water, you'd see it becomes highly reflective. That's fresnel. It's a cool effect. And it's easy to code. You add a uniform vec3 cameraposition towards the top and a fresnel color, and then a fresnel effect is little more than this: vec3 eyevec = normalize(cameraposition - ex_vertexp

havenphillip

havenphillip in Shaders

Nonsquare Trim Textures (4K)

Last couple of days I have been working on making the master material for all of these scifi textures to be nonsquare-capable. This is mostly complete, just need to make presets for all of the different sized textures in the pack (512x2048, 256x2048, etc). A couple of bugs I will need to iron out as well but those should also not take too much time Some of the edge wears and grunges still need a little taking care of so that they are consistent with the regular square textures. Below is a t

TWahl

TWahl in Progress Updates

Introduction

Leadwerks 4 is one of the best purchases I've ever made. I've spent thousands of hours on it and most of that time has been spent dinking around with shaders. I'm not great at modeling and animation. I'm ok with scripts. What seems to draw me the most is shaders. I love shaders. I guess in some way here I just want a place to show off my accomplishments, but I also want to feel like I benefit other people, so my philosophy here is that it's cool to be one guy who can write shaders, but it's cool

havenphillip

havenphillip in Shaders

Which wizard again ?

I don't know which wizard you are talking about. Anyway for the sake of a better title and proper introduction let's get into it. RPG's Role play games range from your average nintendo ds game to your hardcore retro experience. But what if you have tried so many rpg's and have found only very few specific ones that fit your style ? You make your own. Main inspiration. Divine Divinity (you can reverse search if you want the source, but the screenshot is not by me) ..is a

Latest WIP Images (4K)

*Lighting test with wall/floor textures, master material finished, work beginning on processing all 200+ texture maps and color variants. *Added ability to stamp secondary height details into already baked mesh maps (using substance alphas). Adds details like handles and extra vents, lights etc.    

TWahl

TWahl in Progress Updates

Linux, You Changed Man

I recently fired up an install of Ubuntu 20.04 to see what the state of development on Linux is now, and it looks like things have improved dramatically since I first started working with Linux in 2013. Visual Studio Code looks and works great on Linux, and I was able to load the Ultra Engine source code and start compiling, although there is still much work to do. The debugger is fantastic, especially after using the Code::Blocks debugger on Linux, which was absolutely sadistic. (They're both u

Josh

Josh in Articles

Ultra App Kit Released

Built to power a new generation of game development tools, Ultra App Kit provides an easy-to-use C++ programming SDK for creating desktop GUI applications. Unlike other alternatives like Dear ImGui, the Ultra App Kit GUI renders in retained mode rather than immediate mode, and is specifically designed for desktop GUI applications. This makes applications snappy and responsive when resizing or refreshing a window. DPI scaling is baked into the design for resolution-independent

Admin

Admin in Articles

Some New WIPS

I went back and edited my main smart material in substance, new look looks much better and well-defined. Scales accross different textures very well also. Far less layers to deal with also makes editing much simpler and easier. Luckily I did not get too far with my original material I was working with previously, so re-doing previous textures should not take too long.   Also did a quick lighting test in 3ds max with a few colored lights (to roughly guage PBR reflections/metalness prope

TWahl

TWahl in Progress Updates

Website Changes

I want to streamline some of this website. We went through a lot of changes since the release on Steam in 2014 and learned what works and what does not. The "Marketplace" is just called the default "Downloads" name now, and that literally is what it is for. It's a place to keep a permanent copy of your files. Paid files are still supported, and any purchased items are still available to download, but I do not have any aspirations of building this up unless it just happens spontaneously. Ins

Josh

Josh in Articles

Welcome to ultraengine.com

You probably have noticed that our entire community has been migrated from the leadwerks.com domain to our new ultraengine.com domain. In this article I am going to describe recent changes to our website, the process by which these decisions were made, and the expected outcomes. These are not just superficial changes, but rather it is a fundamental restructuring of the way our business works. This is the execution of a plan I have had for several years. When we first starting selling on Ste

Josh

Josh in Articles

Final Thoughts on Ultra App Kit

Breaking the new engine up into sub-components and releasing them in several stages is something new. The reason for trying this was twofold: Steam now incentives competition for digital shelf space, unlike when Leadwerks was first released on Steam in 2014, when I was trying to build up my quality of presence and promote one app ID on Steam. I would like to get some new software out early before the full engine is finished. The beautiful thing is that Ultra App Kit all con

Josh

Josh in Articles

"Concealment" horror survival game released

Developer @Ghost has released his excellent Leadwerks-powered game Concealment. Your life is in your hands Go to an abandoned village to find your missing brother. Explore the objects that come in your way. Solve the terrible mystery of this mysterious place. Concealment is a first-person psychological horror game. A game in which you need to solve the mystery of an abandoned ancient village. Story You receive a strange letter from your brother. He asks that you ur

Admin

Admin in Articles

Level Transitions

Level transitions are the old school way of getting your player from one map to another. Here I implemented a system much like HL2. Not much else to say, but I should be ready to talk more soon. (Hopefully!)   

reepblue

reepblue in Code

Ultra App Kit beta updated

A new update is available on Steam for Ultra App Kit. A TEXTFIELD_PASSWORD style flag has been added and is used for the password entry form: A WINDOW_CHILD style flag has been added. I found this was necessary while implementing a Vulkan 3D viewport in a GUI application. You can read more about that here. Pressing the Tab key will now switch the focus between widgets. The "Learn" tab in the project manager has been moved in front of the "Community" tab. The Visual

Josh

Josh in Articles

Vulkan Viewport in a GUI Application

Before finalizing Ultra App Kit I want to make sure our 3D engine works correctly with the GUI system. This is going to be the basis of all our 3D tools in the future, so I want to get it right before releasing the GUI toolkit. This can prevent breaking changes from being made in the future after the software is released. Below you can see our new 3D engine being rendered in a viewport created on a GUI application. The GUI is being rendered using Windows GDI+, the same system that draws the

Josh

Josh in Articles

Offroad game: Driving on road & in mud

> Work in progress > The road tracer tool is  for now without bug; I added debug messages that prevent a bugged road to be generated - so it asks now to modify some values instead of generating the bugged road. > Water waves are smoother. > New feature: Driving in mud. > I'm thinking about adding a speed or friction penality if not driving on roads. > This little demo was recording on map 2048*2048  

Marcousik

Marcousik in Game

×
×
  • Create New...