Flakes – nodular everything

Wow! that sounds great! Please chose Bullet for Rigid, Soft, Cloth physics. It seems to be quite robust, and already in BGE and viewport animation in Blender.

Their demos of GPU acc. physics looks awesome on youtube, it said to be OpenCL acc. in 3.0 version.

Bullet is an obvious choice for 3D physics, but I have no idea how well it fares in light weight 2D applications. This is why the modular approach appeals to me, because then we don’t necessarily have to choose. We’ll just use different libraries for different purposes.

Also:
I just had an awesome idea last night. I was doing some prepwork for a gui mockup tool that will be part of this. Then I started thinking it would also work very naturally for level design of 2D games.

I’m just about to get a Jolla phone (highly recommended) so I thought it would be quite awesome to make a very simple framework for mobile games and utility applications. Mobile games aren’t usually that complex so it would be very useful as a practice round before moving on to more complex systems. SailfishOS uses Qt, which will very likely be the first external library that I’ll make bindings for, so this shouldn’t even be too much of a detour.

Hi Anvilsoup,

Really nice to see your project shaping nicely. Can you give some rough date for the first public release? 1st half2014, 2nd?

All the best.

That’s always the hardest question. I’m hoping to get it released during the summer, but it depends on so many things that I can’t be certain. Within this year very least :D.

can you elaborate on " raytracer for engineering applications!

might be an interesting feature

thanks

Yea, that’s just a side project I’m doing for my applied maths studies. It’s primarily intended for radiative heat transfer computation, but it could also work for modeling nuclear and solar power systems. I’m doing it first in plain OpenCL, but hopefully I can use flakes later.

interesting someone else was asking in another thread about solar analysis !
I would like to be able to calculate real light/ lumens in 3D with a python script if possible at all

any chance this might be possible ?

do you have a thread we can follow ?

happy bl

Sure, can’t see why not. It’s mostly the same stuff with some added weights (if I know anything). The only problem is that I’m not sure how far and how fast I’m going to develop it. Initially it’s just a study piece that can do very simple things, but I’m hoping to expand it from there slowly.

But on the matter of pure python vs opencl/numpy/blender spiced python. I’m initially focusing on getting the package running smoothly as a whole so it will force you to use those components. You can’t use the output as a self contained script. The final compiler can exclude those components (even the blender components) and run as stand-alone script in any python interpreter, but I’m not sure if that makes it in to the first release.

This is probably a bit backwards, but I did this to get a good picture of the opencl process before even starting the final version.

Aermartin’s latter point is kind of where I’d like to go. I’m starting to lean towards more modular approach. Flakes would probably be ideal as glue code that binds together bunch of libraries, like Ogre, SDL and Bullet (or Box2d or Nape). All high level logic would be in Flakes and all asset creation and scene editing in Blender. Essentially it would be a full game engine of its own.

It’s amazing to stumble upon this after having played around with the logic nodes in BGE and thinking “This is great but strangely limited at the same time; why doesn’t someone put some logic bricks in the Node Editor with everything else?” And then a project like this comes up.

What are your aspirations for Flakes as an engine for interactive/game content? Do you think Flakes could be to the BGE’s logic bricks what Cycles is to the BI renderer?

owhh, that’s an excellent question that needs an elaborate answer, but I’ll have to give it tomorrow when I’ve got more time. Short answer to the latter part is: definitely, but with some caveats. I’ll elaborate on that later too.

Is this magic? Gluing together some of the best 3rd party solutions into one package would be awesome! I hope you pull this off.

Heh, not so much magic. Those libraries are meant to be glued. Some less known publicly available engines use that approach already (without nodes), and there are many gamedevs who use it in their in-house tools.

[this turned out much more elaborate than planned. It’s a big topic :)]

The grand goal is that anyone can at least try to make games, or participate some part of game making process without investing months or years of their time getting familiar with the very basics. Unity, UDK and the like fall roughly in the same category, but they are rather unsatisfying for game programmers, and on top of that they try to lock you into their proprietary systems.

Playing with ICE nodes was probably the most fun I’ve ever had, but it was deeply disappointing that I couldn’t really do anything with that knowledge other than some flashy animations. Probably my biggest advantage now is that I’m primarily interested in the node logic and everything else revolves around it. It’s not just an afterthought, and I’m hoping to apply it as widely as I can.

Flakes will allow users to get used to the system inside Blender without ever touching the game engine. The same skill set translates to the game world quite easily. It will also be very convenient to experiment with effects and behaviors right in the viewport and later drop them into your game with very few modifications.

Even in the best case making games is still very hard, and it’s impossible for me to make a convenience system that works for all game types. Instead I (and hopefully others) would make basic frameworks for different game archetypes, which users can slowly peel open and extend to their needs. All nodes can be opened to see how they work, and once you understand them, you can easily make modifications. Granted, you can do the same with syntactic code, but the learning curve and user experience is entirely different with nodes.

Nodes are very modular, and there will be a lot of different building blocks that users can mix and match. People can also collaborate across different game projects. Someone might do an AI sytem for their game and someone else might grab it and customize it for theirs. There absolutely needs to be a central repository for user submitted content and the gui must have direct access to it.

Basic types and methodologies should be loosely standardized to keep things compatible with each other.

The big caveat is that I will be using an approach that is quite different from what people might expect from a “game logic” editor. Everyone will have to learn a little bit of programming theory, adopt a certain mindset and maintain some degree of “methodological rigor” if they wish to use it beyond the basics. Without that it’s not going to be pleasant for complex games. I’ll do a writeup of how I expect it to work at later time.

My biggest worry is that people who try it will try to use it without learning the basics first and quickly conclude it’s crap when they can’t do something the way they want.

It should be obvious that this is not a short term thing.

@anvilSoup:
I am still very impressed with your work. Look forward to a more general nodular approach in blender as it has revolutionized many aspects of it already (cycles mats, textures, compositing etc. ).

How is it integrated in blender at the moment? C or Python or? (sorry if you already answered that, I could not find it anywhere…)
Are you planning on working with the blender core dev team or mostly on your own?

This sounds really interesting. In cinema 4d there is a node based thing called xpresso where you could plug different program functions together. Much less tedious than doing anything via constraints. I recently also stumbled across pure dara where you can develop your own little programs using a node based interface. Imagining something like this within blender is just awwsome. Maybe you should coordinate your efforts with the other devs so that certain features like node controlled particles arent developped twice. :slight_smile:

It’s just python. It causes some bottlenecks with meshes and doesn’t have any connection to particles, so I’m going to expand it to C (or cython if possible) at some point.

I’m working on my own for the time being. If this ever catches on we can maybe have discussions about getting some parts of it integrated more deeply, but I don’t see that as necessary. Many of the applications are so far outside Blender that I don’t think it would be suitable for the main distro.

Yea, I’ve heard of xpresso, but I haven’t used it. I’ve heard it’s nice but not as nice as ICE. Houdini also has similar thing, which I have used and found it rather clunky. Pure data I have not heard of before, but for a visual language their website is strangely non-visual :).

That has been discussed before to some extent. I don’t think there’s any harm in redoing stuff, specially if it’s something simple like a particle system. I just mocked one out of placeholder nodes the other day. Took about 15 minutes, granted it was perhaps simplified a bit :). My only problem is that I don’t have all the basenodes implemented and there’s no api for particles in Blender so I couldn’t render them even if I had them running in Flakes. That can be fixed, but it’s not a priority, like I said in the video.

I said in twitter earlier, that I have a way to make node editor compact enough for a smartphone screen. The design started with something a bit different, but after few iterations I ended up reinventing the vertical flow nodegraph with some improvements (all of which not seen in the picture). It was supposed to be just a fun thought experiment, but It started really bugging me so sketched it in inkscape.
http://i.imgur.com/K4CLTV2.png

I bloody love it! This is exactly the same logic as seen in the video, but in a lot more compact form factor. Obviously this would be more suitable for tablets and phones, but I imagine it would work wonders for large screens too. Imagine placing several of these vertical strips side by side.

I don’t usually like this style, probably because all the systems that use this that I have tried have been very clumsy and awkward. I think I have solved all those problems now.

So humm. It’s nice, but I’m not sure where I’m going with this. It’s not worth switching over now and I can’t really do this in Blender anyway. I’ll probably do it for sailfishOS and plasma active when I have a moment. Might be a neat way to program while on the go.

Great to see the announcement. For upcoming videos, wouldn’t be better to make really small ones (but more often), covering little practical examples?

It will be really nice to understand better not “what will be capable of” (even if important topic), but actually “how easy would be to achieve it”, with Flakes. Hope it makes sense.

I support the idea of shorter but more frequent videos showcasing some of the notable features.

what u have to doo… to explain typical user who dosn’t know what PC is. What acctualy this is about. Then u will get a lot of interesting and donation

I will definitely keep them shorter in the future. This was just my initial splash and I wanted to be more thorough. My time is very limited at the moment, so I will likely not make any demos in the next few weeks at least. I’m doing a lot of research and in depth planning right now. I will ramp up the demoing once I get past this phase.

Initially Flakes will be geared more towards people who have some technical understanding already. The video is long enough as it is, and I primarily wanted to show how Flakes is different from other similar systems, so it kind of assumes you are already familiar with the general concept. Obviously for people who have never seen such a thing it might be somewhat confusing.