What are you working on currently? (2020)


A new modern house Im making, Im blurring it to prevent spoiler alert!
Not done yet!

Ill do a full post of the completed house version on the day I fully complete it!

Promise it will be without blur!

26 Likes

I’ve recently started modelling on blender and I’m slowly improving :smiley:

151 Likes

Looks good! I hope to see your work in a game eventually!

9 Likes

I was hoping to ship that by the end of February of last year… and I just didn’t.
Due to some other projects I wanted to work on, I needed to rewrite the system from scratch. Still far from working on the new version of the plugin to make public, but I have made some good progress.

Some new features I have implemented are:

  • Adding setup and teardown function calls
  • Skipping tests
--[[
Tests the Skip method in Setup.
--]]
NexusUnitTesting:RegisterUnitTest("SkipInSetup",function(UnitTest)
	--Create the component under testing.
	local CuT = UnitTestClass.new("TestName")
	
	--Set up the methods.
	local SetupRun,TestRun,TeardownRun = false,false,false
	function CuT:Setup()
		SetupRun = true
		UnitTest:AssertEquals(self.State,NexusUnitTestingProject.TestState.InProgress)
		UnitTest:AssertEquals(self.CombinedState,NexusUnitTestingProject.TestState.InProgress)
		self:Skip()
		error("Test continued")
	end
	
	function CuT:Run()
		TestRun = true
	end
	
	function CuT:Teardown()
		TeardownRun = true
	end
	
	--Run the test and assert the states are correct.
	UnitTest:AssertEquals(CuT.State,NexusUnitTestingProject.TestState.NotRun,"Test initially not run.")
	UnitTest:AssertEquals(CuT.CombinedState,NexusUnitTestingProject.TestState.NotRun,"Test initially not run.")
	CuT:RunTest()
	UnitTest:AssertEquals(CuT.State,NexusUnitTestingProject.TestState.Skipped,"Test not skipped.")
	UnitTest:AssertEquals(CuT.CombinedState,NexusUnitTestingProject.TestState.Skipped,"Test not skipped.")
	UnitTest:AssertTrue(SetupRun,"Setup not ran.")
	UnitTest:AssertFalse(TestRun,"Test ran.")
	UnitTest:AssertFalse(TeardownRun,"Teardown ran.")
end)

-Better asserting of errors being thrown.

--[[
Tests the AssertErrors method.
--]]
NexusUnitTesting:RegisterUnitTest("AssertErrors",function(UnitTest)
	--Create the component under testing.
	local CuT = UnitTestClass.new("TestName")
	CuT:SetSetup(function(UnitTest)
		UnitTest:AssertErrors(function() error("Test error") end):Contains("Test"):Contains("error"):NotContains("something else"):NotEquals("something else")
	end)
	
	--Run the test and assert it passes.
	UnitTest:AssertEquals(CuT.State,NexusUnitTestingProject.TestState.NotRun,"Test initially not run.")
	UnitTest:AssertEquals(CuT.CombinedState,NexusUnitTestingProject.TestState.NotRun,"Test initially not run.")
	CuT:RunTest()
	UnitTest:AssertEquals(CuT.State,NexusUnitTestingProject.TestState.Passed,"Test not passed.")
	UnitTest:AssertEquals(CuT.CombinedState,NexusUnitTestingProject.TestState.Passed,"Test not passed.")
end)
  • Nested tests
--[[
Tests the RunSubtests method without a failure.
--]]
NexusUnitTesting:RegisterUnitTest("RunSubtestsNoFailure",function(UnitTest)
	--Create the component under testing.
	local CuT1 = UnitTestClass.new("TestName1")
	local CuT2 = UnitTestClass.new("TestName2"):SetSetup(function() UnitTest:AssertEquals(CuT1.CombinedState,NexusUnitTestingProject.TestState.InProgress) end)
	local CuT3 = UnitTestClass.new("TestName3"):SetSetup(function() UnitTest:AssertEquals(CuT1.CombinedState,NexusUnitTestingProject.TestState.InProgress) end)
	CuT1:RegisterUnitTest(CuT2)
	CuT2:RegisterUnitTest(CuT3)
	
	--Run the subtests and assert the state is correct.
	CuT1.State = NexusUnitTestingProject.TestState.Passed
	UnitTest:AssertEquals(CuT1.CombinedState,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
	CuT1:RunSubtests()
	UnitTest:AssertEquals(CuT1.CombinedState,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
	UnitTest:AssertEquals(CuT2.State,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
	UnitTest:AssertEquals(CuT2.CombinedState,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
	UnitTest:AssertEquals(CuT3.State,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
	UnitTest:AssertEquals(CuT3.CombinedState,NexusUnitTestingProject.TestState.Passed,"Test state not correct.")
end)
  • Catching of stack overflow errors
--[[
Tests a stack overflow error being thrown.
--]]
NexusUnitTesting:RegisterUnitTest("StackOverflow",function(UnitTest)
	--Method that throws stack overflow.
	local function StackOverflow()
		StackOverflow()
	end
	
	--Call yxpcall with arguments.
	local CalledError,CalledStackTrace
	local Worked = yxpcall(function()
		StackOverflow()
	end,function(Error,StackTrace)
		CalledError,CalledStackTrace = Error,StackTrace
	end)
	
	--Assert the results are correct.
	UnitTest:AssertFalse(Worked,"Worked result is incorrect.")
	UnitTest:AssertNotNil(string.find(CalledError,"stack overflow"),"Error message doesn't contain stack overflow.")
	UnitTest:AssertNotNil(string.find(CalledStackTrace,"yxpcallTests"),"Error stack trace doesn't contain the script.")
	UnitTest:AssertNotNil(string.find(CalledStackTrace,"StackOverflow"),"Error stack trace doesn't contain the function name.")
	UnitTest:AssertTrue(#CalledStackTrace > 50000,"Stack trace isn't \"long\" ("..tostring(#CalledStackTrace).." < 50000 characters).")
end)

All of the code samples from above are tests used to test the new framework. The tests all pass, and should still work with the new version.
No ETA for a release of the plugin. Hoping to get the framework out by the end of next week.

62 Likes

AC Unit for a portfolio showcase piece

110 Likes

Made a experimental Hole in Gui/Negative GUI thing( don’t know if it’s cool or useful, but why not), it has some issues, but with alot of experimental stuff( at least for me) there is bound to be some :

For those wondering this is made using the Deuluany triangulation algorithm and a couple other methods to go along with it(Point in Polygon(2d “raycasting”) , Clockwise vertex/vector sorting).

(btw it with works with any number of points, not just four, so theoretically circular holes can be made or really any shape)

The triangulation makes triangles that perfectly fit and surround within the bounds in the Hole, then the Centroid of each triangle is found to check whether the triangle is in the hole, indicating that it needs to be hidden

51 Likes

Trying to make some good looking lightsabers.


saberaxe
pl

160 Likes

Looking really good, What ligtsabers are you basing on, Star wars, artificial lightsabers or other?

14 Likes

Thank you, I’m basing on Star Wars lightsabers.

13 Likes

Makes me wanna go skiing, very creative , modern, I am kinda curious, what did you use? (ie: Archimedes (ROBLOX Plugin), Blender or other)

12 Likes

Nice, I might have a go making lightsabers in the future when I am capable on blender, I am learning blender, I mostly build with roblox parts!

5 Likes

Same, I am used to roblox parts and most things I make are made from just roblox parts.
Good luck with making lightsabers :wink:

5 Likes

Im gonna learn! I am learning 3D modelling slowly, It might take a long time to get the hang of it.

4 Likes


Remington Model 1858

205 Likes

I’m working on a game called Blacklands, an open world survival game that’s like battlegrounds.

54 Likes


Trying to make a quite realistic conifer forest. This is a prototype. I have lots of other models i can use,including: bushes,flowers,smaller pine trees,deciduous trees,saplings,etc. All are modified free models (mostly hollow’s mesh tree packs).

171 Likes

I have finally opened Blender again after many months when I did it for the first time. And I tried to make another hat. This time it’s called Temple Guardian.

91 Likes

Archimedes, Blender and studio xD

9 Likes

I just finished making this dynamic inventory system that is multiplayer compatible and adjusts according to the inventory!

Multiplayer example:
b641ab557829ac2d5a57d64ed54ca452

Dragging & Closing:
48c4815f2228837c48aa84241b4d154f

It can also be “nested” in other UIs for stuff like a machine that needs an input (although I clearly need to change how it does scaling when nested):
0b1821dab9ea4f749d0ec748dc32f1e2

I made it for my main personal project, but I wanted to make it as independent as possible so that it can be used in all kinds of projects… maybe I’ll even open source it.

53 Likes

been working on a commission sheet lately. Still need to pick prices, but I’m very happy with the result!

65 Likes