What are you working on currently? (2017)

Got some samples, threw them together to see what I could do.
This is the end result: a ~25 second loop that I may or may not use for Sound Volblox.

3 Likes

Made the framework and first spell for my game.

https://drive.google.com/file/d/0B3bxcFuJokkbWW9JOVplaTRibVE/view

Draw.io and flowcharts are pretty neat too.

3 Likes

I’ll likely change the trees for something less lush, since this is a desert.


7 Likes

Made is a little under 2 hours. Just meant to be simple.

Also with the AK, the scene is 5,443 polygons, the droid is pretty light weight in poly.

11 Likes

No more M’lady La Fox?

Fox? When did I model a Fox? foxes don’t have a shark tail. And yeah, no more of her until she’s textured. And then I post more of her… Soo much more… Animated posts of course.

First picture reminds me of cache from CS, not sure why

Often times we’re unsure of what it is

Imagination, creativity, use it. Anything can be an attack helicopter of you want it to be.

but not everything can be food if I want it to be :c

I will forever imagine that my 2 number forty five nines exist with my large soda and extra dip.

Okay let’s get back on rail.

Super quick render, messing around in Cycles.

And in case anyone is roundering how I got the orange glow on the edges,

I was also trying to mimic the sun in the right window, didnt go as planned but hey… I got something nice out of it.

4 Likes

reminds me of this Retro Wave - PhotoFunia: Free photo effects and online photo editor

Oooooooh!!! Getting closer to something I like! @maplestick is there any way to get the volume of a material to glow? (see image above, using volume and not surface)

1 Like

Cirrus SF50 im working on

12 Likes

A continuation from my new movement system before-
Now featuring fall damage (woo!) (and you can also hear the custom footsteps too!)

If you take a small fall you will automatically crouch, but if the fall is bigger you will be knocked off your feet into the crawling stance and it will make a big noise depending on what you landed on. If you happen to die as a result, your camera will glue to your ragdoll’s head and the ragdoll will also make noise if it projectiles off of another cliff onto the floor below that.

(I came across a funny bug whilst testing too where it made too many ragdolls…)

6 Likes

Looks like the Neighbourhood logo for the album ‘Wiped Out’

huh. I guess that circle tool for terrain is pretty handy. :stuck_out_tongue:
(This looks awesome!)

creating id masks and adding blur in compositing should do it.

1 Like

I needed a script to run whenever I opened a specific place, so I made a plugin that searches the game tree for a module named “init_plugin”, and runs it.

The module can return either a function, which is called immediately, or a table containing Start and Stop functions. Start is called immediately, and Stop is called before the module is reloaded, giving it a chance to clean itself up. Very handy for quickly changing parameters, or developing the script iteratively.

-- InitPlugin.lua
local toolbar = plugin:CreateToolbar("init")
local button = toolbar:CreateButton("Reload", "Reload initializer", "")

local moduleName = "init_plugin"

local init
local initModule
local reloading = false

local function ReloadInit()
	if reloading then
		return
	end
	reloading = true

	if type(init) == "table" and type(init.Stop) == "function" then
		local ok, err = pcall(init.Stop, plugin)
		if not ok then
			warn(string.format("%s.Stop: %s", moduleName, err))
		end
	end

	if typeof(initModule) == "Instance" then
		initModule:Destroy()
		initModule = nil
	end

	do
		local module = game:FindFirstChild(moduleName, true)
		if not module then
			reloading = false
			return
		end
		initModule = module:Clone()
		initModule.Name = moduleName .. "_working"
		initModule.Parent = game:GetService("CoreGui")
		initModule.Archivable = false
	end

	local ok, result = pcall(require, initModule, plugin)
	if not ok then
		reloading = false
		error(string.format("failed to run %s: %s", moduleName, result), 0)
	end
	init = result

	if type(init) == "table" then
		if type(init.Start) == "function" then
			local ok, err = pcall(init.Start, plugin)
			if not ok then
				reloading = false
				error(string.format("%s.Start: %s", moduleName, err))
			end
		end
	elseif type(init) == "function" then
		local ok, err = pcall(init, plugin)
		if not ok then
			reloading = false
			error(string.format("%s: %s", moduleName, err))
		end
	end

	reloading = false
end

button.Click:Connect(ReloadInit)
ReloadInit()

Here’s the script I needed it for. The short description is that it draws a huge grid.

local main = {}

local PLANE = 4000
local PLANE_STEP = PLANE/4
local DEPTH = 10000
local DEPTH_STEP = {200,1000,6000}

local POINT_SIZE = 3
local POINT_STUD_SIZE = 4

local CORNER = {
	{Vector3.new(0,0,0), Color3.new(0,1,0)},
	{Vector3.new(1,0,0), Color3.new(1,0,0)},
	{Vector3.new(1,0,1), Color3.new(1,1,1)},
	{Vector3.new(0,0,1), Color3.new(0,0,1)},
}

local function getColor(x,y,z)
	local c = Vector3.new()
	local p = Vector3.new(x,0,z)
	for _,corner in pairs(CORNER) do
		local d = (1-(corner[1]-p).magnitude)/(math.sqrt(2)*0.5)
		c = c + Vector3.new(
			corner[2].r*d,
			corner[2].g*d,
			corner[2].b*d
		)
	end
	c = c*(y*0.8+0.2)
	return Color3.new(c.x,c.y,c.z)
end

local Step = game:GetService("RunService").Heartbeat
local grid

function main.Start()
	wait(0.25)

	grid = Instance.new("Folder")
	grid.Name = "Grid"
	grid.Archivable = false
	grid.Parent = game:GetService("CoreGui")

	local line = Instance.new("LineHandleAdornment")
	line.Color3 = Color3.new(0.3125,0.3125,0.3125)
	line.Thickness = 1

	local lines = Instance.new("Folder")
	lines.Name = "Lines"
	lines.Parent = grid
	for x = 0,PLANE,PLANE_STEP do
		for z = 0,PLANE,PLANE_STEP do
			local l = line:Clone()
			l.Name = string.format("P_%05d_0%05d",x,z)
			l.Length = DEPTH
			l.CFrame = CFrame.new(x,0,z)*CFrame.Angles(-math.pi/2,0,0)
			l.Adornee = workspace.Terrain
			l.Parent = lines
		end
	end

	local planes = Instance.new("Folder")
	planes.Name = "Planes"
	lines.Parent = grid

	local depth = Instance.new("Part")
	depth.Name = "Depth"
	depth.Anchored = true
	depth.CanCollide = false
	depth.Locked = true

	local point = Instance.new("BillboardGui")
	point.AlwaysOnTop = true
	point.LightInfluence = 0
	point.Size = UDim2.new(1,0,1,0)
	local abs = Instance.new("Frame", point)
	abs.Name = "Absolute"
	abs.AnchorPoint = Vector2.new(0.5,0.5)
	abs.BackgroundColor3 = Color3.new(1,1,1)
	abs.BorderColor3 = line.Color3
	abs.BorderSizePixel = 1
	abs.Position = UDim2.new(0.5,1,0.5,1)
	abs.Size = UDim2.new(0,POINT_SIZE,0,POINT_SIZE)
	local rel = Instance.new("Frame", point)
	rel.Name = "Relative"
	rel.AnchorPoint = Vector2.new(0.5,0.5)
	rel.BackgroundColor3 = Color3.new(1,1,1)
	rel.BorderColor3 = line.Color3
	rel.BorderSizePixel = 0
	rel.Position = UDim2.new(0.5,1,0.5,1)
	rel.Size = UDim2.new(POINT_STUD_SIZE,-2,POINT_STUD_SIZE,-2)

	local function draw(y)
		local d = depth:Clone()
		d.Archivable = false
		d.Name = string.format("Depth_%05d", y)
		d.CFrame = CFrame.new(0,-y,0)
		d.Parent = grid
		local ps = Instance.new("Folder")
		ps.Name = "Points"
		ps.Parent = d
		local ls = Instance.new("Folder")
		ls.Name = "Lines"
		ls.Parent = d
		for i = 0,PLANE,PLANE_STEP do
			local l = line:Clone()
			l.Length = PLANE
			l.Adornee = d
			l.Name = string.format("L_X_%05d",i)
			l.CFrame = CFrame.new(i,0,0)*CFrame.Angles(0,math.pi,0)
			l.Parent = ls
			l = l:Clone()
			l.Name = string.format("L_Z_%05d",i)
			l.CFrame = CFrame.new(0,0,i)*CFrame.Angles(0,-math.pi/2,0)
			l.Parent = ls
		end
		for x = 0,PLANE,PLANE_STEP do
			for z = 0,PLANE,PLANE_STEP do
				local p = point:Clone()
				p.Name = string.format("P_%05d_0%05d",x,z)
				p.StudsOffsetWorldSpace = Vector3.new(x,0,z)
				local c = getColor(x/PLANE,1-y/DEPTH,z/PLANE)
				p.Absolute.BackgroundColor3 = c
				p.Relative.BackgroundColor3 = c
				p.Adornee = d
				p.Parent = ps
			end
		end
		Step:Wait()
	end

	if type(DEPTH_STEP) == "table" then
		draw(0)
		for _, y in pairs(DEPTH_STEP) do
			draw(y)
		end
		draw(DEPTH)
	else
		local y = 0
		while y <= DEPTH do
			draw(y)
			y = y + DEPTH_STEP
		end
	end
end

function main.Stop()
	if grid then
		grid:Destroy()
	end
end

return main
4 Likes