Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411273 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 03:01:11 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsPaintWorks
Pages: [1]
Print
Author Topic: PaintWorks  (Read 2524 times)
LemonScented
Level 7
**



View Profile
« on: November 23, 2009, 06:43:20 PM »

I guess it'll be cool to jump into this at some point or other, and now is as good a time as any...

So, as you might have seen from my random splutterings in other threads, my name is Jack, and I'm making a game provisionally called PaintWorks. There are a couple of other people involved (they don't post here though, as far as I know), and we call ourselves Lemon Scented Games.

Lemon Scented Games (or at least myself and a few other people with no collective name and a desire to make indie games) kicked off at some point in 2007. We wanted to make a 3D squad-based RTS in which all the characters were intelligent, fully customisable robots. I've got the technical chops to build something like that, but art was a problem, as was building something so ambitious with a small team working in their spare time, so we shelved it. We did some brainstorming and soul searching, considered games about teenage alien crop circle graffiti artists, a two-headed mad scientist building creatures to protect his castle from marauding villagers, a boy who ate his whole house... And eventually settled on a physics/platform/action game about construction workers fighting over building contracts and flouting health and safety laws. That was still a bit too ambitious (too many different physics toys to work out, plus making it all work across the internet for the all-important multiplayer), so we shelved that too, and cut back, and came up with a design for a game about a bloke who works in a paint factory. Actually that turned out to be horribly complex too, and I've been working all of this year getting the fluid physics just right, but it's done now and we're sticking with it, and going to make a game.

It's made from what we like. It's a platform game with a big dose of "classic" puzzle elements (introduce a small number of things slowly to the player, and then surprise them when combinations of those things take on properties which the player hadn't previously considered). It's got a neat physics thing as a unique selling point (okay, so PixelJunk Shooter is on the way too, but that's a very different type of game). It's got a story in which you are NOT "The Chosen One" and you are NOT expected to Save The World. We're hoping for something a bit more introspective and measured than that, a story about mundanity to act as a counterpoint to the bizarre and cool visual and gameplay elements.

Blah, enough trying to sell you on it. Here's how it's doing so far:
Original tech demo from March:


Recent demo showing level loading, waterwheels, drawbridges and paint mixing:


Website (not been updated in months, due to technical problems, but it will be): http://www.lemonscentedgames.com/
Blog (updated more often, with news on the game and my musings on game design in general): http://lemonscentedgames.blogspot.com/

This Devlog will be to document progress (in the near-to-medium term, that means building lots of interesting physics toys to interact with the fluid, segueing into an alpha, and then into level production and beyond), and to see what you guys think of it.

So, Hello World!
« Last Edit: January 04, 2011, 07:00:24 PM by LemonScented » Logged

LazyWaffle
Guest
« Reply #1 on: November 24, 2009, 05:45:49 AM »

 Kiss
Logged
H1RN
Guest
« Reply #2 on: November 24, 2009, 11:29:29 AM »

wow the fluids are looking really nice! reminds me of pixeljunk shooter.
Logged
dbb
Level 4
****



View Profile WWW
« Reply #3 on: November 24, 2009, 11:45:04 AM »

That's a rather impressive tech demo. I'm curious as to how the character is going to interact with all that paint. And I hope you get a good artist on board - with the right graphics, this could look amazing.

Only criticism I've got at this early stage is that it looked in some places as though, when two colours of paint were mixing, the resulting colour was being calculated additively, like light and pixels, rather than subtractively, like with paint and ink.

For example, where the red and blue overlapped they made a bright magenta, but it should have been a dark purple.
Logged

LemonScented
Level 7
**



View Profile
« Reply #4 on: November 24, 2009, 03:53:03 PM »

That's a rather impressive tech demo. I'm curious as to how the character is going to interact with all that paint. And I hope you get a good artist on board - with the right graphics, this could look amazing.

Only criticism I've got at this early stage is that it looked in some places as though, when two colours of paint were mixing, the resulting colour was being calculated additively, like light and pixels, rather than subtractively, like with paint and ink.

For example, where the red and blue overlapped they made a bright magenta, but it should have been a dark purple.

Oops, just realised that I posted the same YouTube link twice in my original post (edited now, the more recent video is here:

). That second video shows some basic and provisional player interaction - we're not sure if he's going to be able to push paint around like that, but the idea of him activating switches or levers to control the flow of paint is sort of what we're going for. It also shows the new paint colouring, mixing red and blue into proper purple - not only is it a subtractive blend now, but we've gone old-school and ditched the RGB colour wheel in favour of a Red-Yellow-Blue colour wheel, like you were probably taught in school when you were introduced to paint and colour.
Logged

dbb
Level 4
****



View Profile WWW
« Reply #5 on: November 24, 2009, 04:23:43 PM »

Yep, that pretty much answers my questions! Looks fun.
Logged

Loren Schmidt
Level 10
*****



View Profile WWW
« Reply #6 on: November 24, 2009, 04:58:14 PM »

The fluids certainly look fun to play with. They pour very nicely. I'm not quite sold on the way the colors mix, but that's a really small point (it doesn't look like the colors diffuse outward the way I'd expect them to).

I'm really interested in hearing what you guys come up with in terms of ways to interact with the goo. Does the player directly manipulate the goo with a fire hose or the like? Do the colors have some sort of function? Here's looking forward to future updates.

Hand Thumbs Up Right
Logged
Alex May
...is probably drunk right now.
Level 10
*


hen hao wan


View Profile WWW
« Reply #7 on: November 25, 2009, 02:21:34 AM »

I see you have problems with high pressure particles getting forced too close together and causing explosions. If you increase the resolution of the simulation (ticks/sec) it should help with this - computationally even more expensive though (seems quite slow already).

Good luck, looks like the tech is getting there. Be very interested to see how you make a game from this.
Logged

st33d
Guest
« Reply #8 on: November 25, 2009, 03:01:43 AM »

That's some impressive jism right there. I think you shouldn't push the simulation too much. Spewer is a good example of how chuggy things can get with fluids.
Logged
LemonScented
Level 7
**



View Profile
« Reply #9 on: November 25, 2009, 04:58:32 PM »

Quote
That's some impressive jism right there. I think you shouldn't push the simulation too much. Spewer is a good example of how chuggy things can get with fluids.

Getting the performance right for this game is one of the main reasons it's taken so long to just get this far. Spewer (fantastic little game that it is) uses, what 100-200 particles? It works for that game, but we wanted something a bit more grandiose. On my development machine I can push 10,000 particles, and still hit 30 FPS, and I've got prototypes running fluid physics on the GPU of 30,000 or so at well over 60FPS. Obviously we're wanting to make it as playable as possible on a wide variety of machines so the final maximum amount of fluid particles is likely to be lower than that... But yeah, we're aiming for something with a decent volume of fluid, a decent level of detail, and a decent framerate. It's a tough balancing act, but we're confident  Smiley

Quote
The fluids certainly look fun to play with. They pour very nicely. I'm not quite sold on the way the colors mix, but that's a really small point (it doesn't look like the colors diffuse outward the way I'd expect them to).

I'm really interested in hearing what you guys come up with in terms of ways to interact with the goo. Does the player directly manipulate the goo with a fire hose or the like? Do the colors have some sort of function? Here's looking forward to future updates.

The colour mixing is pretty much my first pass at it. Getting the diffusion working better would be good but I haven't worked out quite how to do that yet.

Yes, there will be stuff like hoses, yes the colours are there to do more than look pretty (certain puzzles/levels will involve getting a certain quantity of a certain coloured fluid to a certain place, for instance, which might involve needing to mix paint, or to avoid getting it contaminated with other colours).

Quote
I see you have problems with high pressure particles getting forced too close together and causing explosions. If you increase the resolution of the simulation (ticks/sec) it should help with this - computationally even more expensive though (seems quite slow already).

We did have that problem back in March when that first video got made, although I don't think we do now. Fluid physics is never 100% stable, and a lot of it is about pushing it far enough to look good but not so far it causes problems, but hopefully you should see things looking more stable in the second video, and they stay pretty stable even with large bodies of fluids under a fair amount of pressure.

With regards to the speed, the videos were made by dumping an image for each frame, and then stitching them together into a video with a framerate which is representative of how things actually run (in the first video, that was 30FPS whereas it's 60 in the current one). There seems to be some odd problem in the video creating/conversion though - the framerate seems to stutter and drift a bit, which it doesn't do when the game is running. I'll need to look at that.
Logged

LemonScented
Level 7
**



View Profile
« Reply #10 on: January 04, 2011, 06:55:09 PM »

After a looooong hiatus, stuff is happening in PaintWorks again. The early part of 2010 was spent trying to build level editing tools, something which is semi-working but still not finished. Fiddling about with getting Box2D to play nice with my entity system, to get it to play nice with the GUI library I've been using for the editor, and then to wire that all into a suitably extensible data-driven level format sucked all of the fun out of things for a while. Tools coding isn't really my cup of tea, and I got pretty tired of it all. Then I quit my job, spent ages jobhunting, found a new job, moved, started new job, felt a lot happier and didn't feel such a driving need to escape my dayjob by making a millions-selling indie and going indie full-time, so I've been spending my time with other diversions. But, the itch came back, and it won't scratch itself, so I'm back slaving away over a hot compiler, albeit with a bit of a change in focus.

Generating levels is a pain. Generating tools to generate levels is worse. And even when I've done it, the levels are all boxy and polygonal and like every other game that's out there. I'm not a pixel art kind of guy - I've got no beef with the people who are, but for my games want things with curves and flow, not all chunky and boxy. So I've been exploring using bitmaps as levels. Making levels in a paint package would be good. Making levels procedurally would be brilliant because I can write that code once and then crank out levels forever. Yes, I've been playing a lot of Minecraft.

So, this is my first test:




The straight-line stuff is all still Box2D, but the curvy stuff was generated from Perlin Noise. The bitmap collision is nowhere near finished yet, which is why you see the glitchiness, but I think it shows that it's possible. I don't yet know if the final result will be Paintworks as I envisage it in my head, or if it'll be something else. One sticking point is that Box2D does not play nicely with bitmaps. It doesn't play that nicely with fluid either but I sort of got them to a state where they can be in the same room together and not ruin the party. If I go forward with the bitmap stuff, Box2D will get even more marginalised though, and I might have to take it out of the project entirely - which would be a pity because I kind of like all of the cogs, trapdoors, lifts, chains and all of that stuff that comes with it. Rolling my own physics engine to cope with that stuff would be a nightmare. Still, it's a possibility. If I did it, I'd probably do it with Verlet physics, so the rigid body stuff would come out all squashy and bouncy and weird - which might be okay. The maths makes my brain hurt though.
Logged

increpare
Guest
« Reply #11 on: January 04, 2011, 07:08:39 PM »

Quote
One sticking point is that Box2D does not play nicely with bitmaps.
Why not?  Because of the high-detail pixeliness? Hmm.  Could you do 'interesting polygon' generation and place them instead?  Maybe use splines so you can get curves, and approximate them for the physics? 

What's the most recent incarnation of the game idea like?  Still in a paint factory?  Have you, say, looked at factory designs for inspiration?  Because it seems like it might be good to let visual aesthetic lend a hand in figuring out what to do.
Logged
LemonScented
Level 7
**



View Profile
« Reply #12 on: January 04, 2011, 07:31:13 PM »

Box2D only really deals with polygons and circles. There is no support for a bitmap-type collision object, and it would take some kind of physics genius to add it. Despite appearances with all the fluid stuff, I hate writing physics code even more than I hate writing tools code. I just forced myself to write the fluid physics because it's what the game design required (yes: masochist). So, I could get the fluid interacting with bitmaps nicely, but getting a Box2D crate to collide with a bitmap is more than I can cope with.

Using the bitmap for the fluid collisions and generating some kind of geometry from the bitmap from the crates might be a possibility. I've not looked seriously into that yet because mostly I'm getting a kick out of playing with procedural generation and stuff that isn't straight lines. It was the holy grail for 13-year-old me (I even got it working, on an 8-bit computer, but waaaay too slow to make an actual game with). Imagining Child-me meeting Present/Future-Me is a big motivator for me to do cool stuff.

As for the paint factory... Well, I still don't have a good idea what to do with this new-found tech. Maybe it will turn into a different game to PaintWorks, or maybe I'll reign in the procedural stuff, write a nice bitmap-to-polygon generator, and use it to start making levels in GIMP rather than my own horrible editor, so I guess that still would be PaintWorks but just with a better workflow and more scope for doing interesting stuff. I know what factories look like (worked in a few), and they're straight-line kind of places, but the PaintWorks factory was never intended to look like a real factory; more like Willy Wonka's idea of a factory.
Logged

increpare
Guest
« Reply #13 on: January 04, 2011, 07:36:37 PM »

Box2D only really deals with polygons and circles. There is no support for a bitmap-type collision object, and it would take some kind of physics genius to add it.
Approximating their contours with polygons wouldn't cut it?
Logged
LemonScented
Level 7
**



View Profile
« Reply #14 on: January 05, 2011, 01:21:28 PM »

It probably would cut it, and there's a good chance I'll try it - as I said, I'm only just getting back into the codebase afer a long time away from it, and right now I mostly want to play with bitmaps and fluid particles and just see what's possible
Logged

TheSpaceMan
Level 1
*



View Profile WWW
« Reply #15 on: January 05, 2011, 01:49:16 PM »

Looks nice, going to add a question.

"Wouldn't it be cool if the colors actually painted the surface they came in contact with as well?"

Also, just from nowhere, if fluids are important you should add pumps and pipes. And as well as mixing, maybe some kind of spliting machine working together with previously mentioned pipes.

Then again, you probably have a list of features as thick as my skull allready. Wink
Logged

Follow The Flying Thing, my current project.
http://forums.tigsource.com/index.php?topic=24421.0
LemonScented
Level 7
**



View Profile
« Reply #16 on: January 05, 2011, 06:09:59 PM »

Hehe, yes - every single thing you mentioned is in the design doc, and a bunch more besides Smiley

There's stuff we didn't think of that other games are doing (Vessel having the fluid stand up and walk about, and Hydroventure doing the solid/liquid/gas thing), but as far as paint goes, we all over that, bro...  Ninja
Logged

Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic