Starting of 'New Blender' Project

IMHO = “In my humble oppinion”
IMNSHO = “In my not so humble oppinion”

don’t get me wrong

i’m fully behind your intentions, i just feel that before we talk about coding something some specifications should be drawn up and then some designs (call me old fashioned). i don’t know about others in the community, but i think those of us with experience in this (and im not promoting myself as god here, i expect others to be much better) would be thinking at this point things like “when i say mesh what exactly am i trying to store?” it may sound like an obvious question, but if you get it wrong there could be a mess later.

from this point i agree with the previous comments about getting a core design and implementation done effectively privately which can then be released later.

Dont focus on GameBlender at all until the rest of it is nice and good. And if you ever do decide to recreate gameblender, it would probably be best to split the project and have a seperate team. Other than that.

Most important features:
The gui isn’t that important to me really. Its the underlying controls and functionality that you feel the effects of more.

The numpad camera control
selecting objects
edit mode/texturemode/paintmode
constraining movement with ctrl, precise movement with shift
rotation/grab/scale make sense
flipping axis movement with middle mouse
zoom, pan, rotate view controls (which are alos unified in all windows)
powerful scripting language - I love python, and everyone is already used to it, so it would make the most sense, although if necesary a different language could probably be used

I think the features above are really the core of blender. Other things that are needed are:
subsurfaces (almost as good or better than nurbs)
nurbs (Still good for organic things. Blender didn’t support them very well)
Different realtime render modes (pretty much a staple of all 3d softs)
Animation support - blender does it pretty well I think, although it could probably be improved. Maybe better keyframe editing, I’m not sure. I always felt keyframes were a bit off.
Armatures/Actions
built in raytracer, or good co-operation with a powerful external renderer. Enough compatibility with it that you can click render in blender and the external renderer will pop up autmatically, render the sucker, and save it where you told it to save the picture/animation
Better API for the scripting language, that gives a programer access to just about everything.
Should use a nice open scene graph format like blender that can store everything in the scene. Should be easier to export either the entire scene, or even smaller groups of objects, to various formats. Internally, objects should be represented in a standard widely used format such as 3ds to make exports a piece of cake.
Layers, scenes, and screen layouts - I really liked this in blender
Better windowing system - Windows should be able to be made floating or docked, minimized or maximized, and closed and opened easily.

For future:
good physics simulation to be used for animations
lip syncing
character animation scripting - jill.walk(house); Jill.taptoe(60); Bill.open(house.door); Bill.wave(Jill); On(Bill.wave.stop,(Jill.run(bill))); On(Jill.run.stop,Bill.hug(Jill)));

I personally WOULD like to see the continuation of gameblender, but I think that would be a future project and would require a very different team.

sniff sniff I smell vapour…

Show me the code.

Zarficle

(who for once, actually agrees with Green)

To DanSellers2: I think it’s a good Idea to start. Go for it!

I Agree with pato about the small team and with Kid Tripod about planing your project first.

But I don’t agree with Green. Why has the leader be the main programmer?

True ,maybe Dan should have used the word coordinator.

To ssross: Despite the fact that Dan seams to be new. He is willing to do something! Many of the old users just wait and can’t live with the knowledge, that Blender -I don’t hope so- is maybe gone for good!
PS. You are newbie as well!

Suma summarum: Stop talking and take steps to go forward!

bug

PS. Dan I don’t know yet how, but I would like to help in your team.

Ok, i haven’t been here in a while, cause I’ve been working on other things, but recently, my mind has wondered back to 3d stuff. I have always thought about trying to start a really good 3d package, and so I’ve thought about implementation a lot, however, I’ve never really had the time to actually get any code out, or test any of my ideas. Anyway, as several people have said, before you declare yourself leader, you need code, and before you write code, you need a design. A really good design will allow you to add things easily, and keep you from having to change as many things later on.

One thing i think we should not do is remake Blender, especially when it comes to the UI. certainly, it did some thing very well, but they also made a lot of very bad decisions (for instance, you should not have functions that are only accessible as keyboard shortcuts. they should be in some menu, somewhere). A lot of people who used blender for a while (me included) didn’t think that a good UI seemed important, but it really is. If nobody can use your program, you shouldn’t waste time writing it.

As far as a language goes, i think C++ is the best choice. Its plenty fast, available on just about any OS, and its much easier to extend the program when its object oriented. When you look at a large project written in C, like GTK, you’ll find that they spend a lot of time trying to make the non OO language more OO. its much faster to just write it in C++ from the beginning, and not re-implement OO, IMHO.

Also, we need a real plugin interface, with C++ bindings. certainly, other languages should be supported, but i think a compiled language is the most important (3d isn’t fast, neither is an interpreted language, and both together, well, ugh). With all the talk about blenders plugin support, you really couldn’t do much with it. it was slow, and you didn’t have any real access to things like animation. One way to make sure the plugin interface is well designed is to make everything a plugin. If everything, from the basic polygon or NURBS modelers, to the animation support, IK, renderer and the more advanced modeling/animation support is implemented as a plugin, you will be guaranteed that the plugin system works well, and is very complete, and it will be easy for people to use alternatives, if they don’t like the built-in options. For instance, we could offer an IK implementation, but if somebody doesn’t like the interface, or they think it should work in a fundamentally different way, they can simply write their own, and people could use that instead of ours (if they prefer that). This also allows people to add to the project without actually being a part of the project, or adding to the overhead of managing the project (complicated plugins could be entire projects in and of themselves). It also makes the project more modular, so people with out much space/resources can opt out of installing things they don’t need.

another design suggestion that i have, that isn’t as inherent in the design, is to implement everything as a “parameter” class. These parameter classes would be guaranteed to be animatable over time, and would also probably have a built-in UI interface. This would both make things easier for the plugin programmer (they don’t have to worry about handling animation, and the GUI is done for them), and for the user (if there is something that they need to animate, they always can, even if the developer didn’t think it was something that needed to be animated).

Also, ditch game blender. It belongs in a completely separate project.

Sorry this got long
spiralman

Because there are often times when people in the project have honest and strong disagreements about things and a project coordinator needs to be able to settle these disputes. In order for the coordinator to have the authority to settle these disputes between coders he needs their respect. The coders need to respect the project coordinators knowledge and they must have confidence that he knows what he’s talking about and will most likely lead the project down the right path. Without this respect a project leader is hamstrung and the project will likely have numerous unresolved arguements, progress extremely slowly, fork and/or simply founder.

Because there are often times when people in the project have honest and strong disagreements about things and a project coordinator needs to be able to settle these disputes. In order for the coordinator to have the authority to settle these disputes between coders he needs their respect. The coders need to respect the project coordinators knowledge and they must have confidence that he knows what he’s talking about and will most likely lead the project down the right path. Without this respect a project leader is hamstrung and the project will likely have numerous unresolved arguements, progress extremely slowly, fork and/or simply founder.[/quote]

Exactly. Opensource projects is largly about respect since thats the biggest payment you get from working on it.

He doesnt havto be the main coder. he just hasto have repect among the developers and run the project well.

The problem is that we know nothing about this guy. He just pops out of nowhere says that he is going to run it. Then drops of the face of the earth again.
He doesnt have the respect needed for such a project.
And the only thing I can see that would give him that is if he started to actually produce some code. Get the project rolling.

Where and when in development do you state that it is released under the GPL if opensource ? What rights does individual coders and project managers have over the intellectual property?

I was wondering this about a project being headed up by someone that nobody knows anything about. Would there be any risk involved, although this could probably be handled with explicit license statements from the beginning. Also, how hard would it be for someone to come in and get others to do THEIR work for free?

Spiral Man:

Also, ditch game blender. It belongs in a completely separate project.

That kind of fits in with the Plug-in idea if some want the functionality of Game Blender they could write the plug-in.

Green is correct, he who writes the code and sets the project up will become the defacto leader of the project.
Maybe more than one project starts, then the project that the coders see as having the most merit will gain the support and go forward.
If you want to lead, start coding.

All things start as the vision of one.

$0.02 worth :slight_smile:

Licensing is generally stated in the source code repository (usually CVS) and with any released packages. Developers retain the copyright to the code they write unless they specifically sign over their copyright to someone. As for IP… There is no IP in the corporate sense since everything is right there in front of you in the source code and documentation. IP is a nonissue.

In short, no one person can hijack the project if its been GPLed and the coders retain their copyright (which is usually the case).