Page 1 of 6

The Blueprints Machine

Posted: Tue Aug 11, 2015 1:55 pm
by nuno
Hello fellow lövers :D

I'm publicly announcing what will (hopefully) become my next game: The Blueprints Machine (TBM).

TBM is a puzzle game, where each level can present you a totally different scenario/world/challenge, and to solve it, you have to manipulate certain aspects of that level to achieve the desired ending result. In order to do that, you'll get the help of blueprints, where various kinds of nodes allow you to do operations, calculations, and changes in the level.

TBM is also a learning experience. The game starts with a few basic nodes, but quickly will demand from you creativity and imagination to come up with easier ways to do things and re-utilize previous strategies.

I did a short video to show a bit the current working prototype where blueprints are designed. (make sure you view it in fullscreen)


Re: Introducing The Blueprints Machine

Posted: Tue Aug 11, 2015 4:35 pm
by nuno
today's developments


Re: Introducing The Blueprints Machine

Posted: Tue Aug 11, 2015 5:34 pm
by Positive07
Wow looks pretty neat, but I'm really more interested in using it as an app for visual programming

Anyway, really cool and I'm looking forward to whatever game you can come up with with this awesome UI

Re: Introducing The Blueprints Machine

Posted: Tue Aug 11, 2015 7:16 pm
by veethree
Looks neat. The sandbox mode looks like it'd be fun to mess around with.

Re: Introducing The Blueprints Machine

Posted: Tue Aug 11, 2015 7:24 pm
by nuno
Positive07 wrote:Wow looks pretty neat, but I'm really more interested in using it as an app for visual programming

Anyway, really cool and I'm looking forward to whatever game you can come up with with this awesome UI
in a way, you will be doing visual programming, to solve the puzzle ;)

Re: Introducing The Blueprints Machine

Posted: Tue Aug 11, 2015 11:51 pm
by qubodup
This looks very neat! I hope you have an android device, will test this on said device (e.g. with viewtopic.php?f=5&t=80513&p=186399 ) and find that you should totally target touchscreens with this :)

Re: Introducing The Blueprints Machine

Posted: Wed Aug 12, 2015 4:14 am
by Drakkahn
I think you should keep the debug function in the main game, I think they would be really useful for beginners. Also I recommend adding subtract and divide events, although they aren't actually necessary it would be much more user friendly.

Re: Introducing The Blueprints Machine

Posted: Wed Aug 12, 2015 8:13 am
by nuno
Drakkahn wrote:I think you should keep the debug function in the main game, I think they would be really useful for beginners. Also I recommend adding subtract and divide events, although they aren't actually necessary it would be much more user friendly.
Yes, the debug nodes will be part of the game, otherwise some levels can be quite hard to complete :)

Keep in mind that education is also one of the game's purposes, so I want the player to actually understand the basic blocks of what he does. How many people can actually explain what division is? :) This is something that will be done at the beginning, like a tutorial level or something

Re: The Blueprints Machine

Posted: Wed Aug 12, 2015 7:05 pm
by Ranguna259
This reminds me of IGG's TIS 100 but this is way more beautiful. Great work.

Also, I'd love to see bezier curves instead of stright lines, like this:
curve.png
curve.png (2.13 KiB) Viewed 9869 times
It'd look something like UE and Unity's blueprints:
Image

O código:

Code: Select all

function love.update(dt)
	if bezier then
		local x,y = love.mouse.getPosition()
		local x1,y1 = bezier:getControlPoint(1)
		bezier:setControlPoint(2,math.min(x,x1) + (math.max(x,x1) - math.min(x,x1))/2,y1)
		bezier:setControlPoint(3,math.min(x,x1) + (math.max(x,x1) - math.min(x,x1))/2,y)
		bezier:setControlPoint(4,x,y)
	end
end

function love.draw()
	if bezier then
		love.graphics.line(bezier:render())
	end
end


function love.mousepressed(x,y,k)
	bezier = love.math.newBezierCurve({x,y,x,y,x,y,x,y})
end

function love.mousereleased(x,y,k)
	bezier = nil
end
Control points are set according to where the line start and where the line ends (first and last control points), the second control point's coordinates are the middle x position of the first and the last point and y position of the first point, the third point is the same x position of the second point and y position of the last point. (Vê a função love.update do código)

Re: The Blueprints Machine

Posted: Wed Aug 12, 2015 8:20 pm
by nuno
Ranguna259 wrote:This reminds me of IGG's TIS 100 but this is way more beautiful. Great work.

Also, I'd love to see bezier curves instead of stright lines, like this:
curve.png
It'd look something like UE and Unity's blueprints:
Image

O código:

Code: Select all

function love.update(dt)
	if bezier then
		local x,y = love.mouse.getPosition()
		local x1,y1 = bezier:getControlPoint(1)
		bezier:setControlPoint(2,math.min(x,x1) + (math.max(x,x1) - math.min(x,x1))/2,y1)
		bezier:setControlPoint(3,math.min(x,x1) + (math.max(x,x1) - math.min(x,x1))/2,y)
		bezier:setControlPoint(4,x,y)
	end
end

function love.draw()
	if bezier then
		love.graphics.line(bezier:render())
	end
end


function love.mousepressed(x,y,k)
	bezier = love.math.newBezierCurve({x,y,x,y,x,y,x,y})
end

function love.mousereleased(x,y,k)
	bezier = nil
end
Control points are set according to where the line start and where the line ends (first and last control points), the second control point's coordinates are the middle x position of the first and the last point and y position of the first point, the third point is the same x position of the second point and y position of the last point. (Vê a função love.update do código)
hi!
yes beziers are on my todo list.. but very low priority give the amount of important stuff I'm still missing ;)