NokiMo
ProjectOutFox
ProjectOutFox

patreon


Weekly Dev update!

This week we've been working  mostly to finalise the 4.9.5 Alpha, which should be out soon!  

We are thinking of removing the old legacy SmoothLines, and just enabling the path for better lines all the time. We have tested this against the 'SmoothLines = off' and found the old CPU bound code being disabled led to a game that responded better, and reduced the frame lag on cabinets.  

In doing this, we've found a way to add a new point system. This will be especially useful in drawing scatter graphs, life lines, etc.

Before Above, After Below, you can see how the VPF drops. (The FPS is from the development environment, so ignore it really)


This allows for points to be used that drops the VPF (vertices per frame - higher = worse performance) of the evaluation screen for Simply Love and SoundWaves.


We have a new set of lua commands to allow for the old 'square method' like the old system had, or we have an option for circles.

The new points system -

We will be rolling this out so folks can experiment with it and we'll look to back-port the new points code into 5.1 so we can improve the performance of Simply Love in this screen as well.

The new Lua commands look like the following:

new lua commands:
self:SetDrawState{Mode="DrawMode_Points"}:SetVertices(verts)
New Draw Modes, we have DrawMode_Points and DrawMode_Lines!

self:SetPointState(boolean) so 0 for false, 1 for true - Alias the Points. if the size is too big, or it is not supported on the gpu's driver, it will be drawn as a square, but won't crash.
Code example:
circle: self:SetPointState(true) must be below around size 12 for it to work (See below)
square: self:SetPointState(false) any size will work above 0.0 (See below)
resizable points:
self:SetPointSize(float) - Size in PIXELS of the point to draw. This will often round to a whole number on older systems, but most cards will use subpixel sampling to keep these as designed. For better performance, use a whole number, so 6.0.
Code Example:
self:SetPointSize(10.5)
These are called in your actormultivertex like so:
local amv = Def.ActorMultiVertex{
    OnCommand=function(self)
        self:SetDrawState{Mode="DrawMode_Points"}:SetVertices(verts)
        self:SetPointSize(10.5)
        self:SetPointState(true)
    end

Code isn't very easily done in patreon, so I hope you get the idea! This idea was suggested after we had a user post a massive performance drop on a long marathon file, so it is something that I thought we could make work, and we were able to implement it quite quickly.

That's all for this week, I'll add more of these so we can keep you updated a bit more! Let us know in the comments if you have any thoughts on removing smoothlines for a more modern path.


Squirrel

Weekly Dev update!

Related Creators