What are the chances for BRL supported 3D?

Community Forums/Monkey2 Talk/What are the chances for BRL supported 3D?

tiresius(Posted 2015) [#1]
Just conjecture here but the first thing I thought of when I heard MX2 would produce C++ was how much easier it could become to incorporate 3rd party libraries.

So what are the chances that we will get a 3rd party 3D library (OGRE, for example) that would be official supported (and therefore know it will work for future MX2 projects) ?


Nobuyuki(Posted 2015) [#2]
I'd say those chances are pretty low. Why support a 3rd party library officially (along with the baggage that goes with it) when great efforts are being made to make it easier to support one or many, unofficially, ourselves?


Xaron(Posted 2015) [#3]
MX2 is not a game engine, so chances are NIL.


nullterm(Posted 2015) [#4]
Exactly. The whole point is to allow for users to adopt 3rd party libraries on their own (or as a group) unofficially.

But personally, as long as OpenGL/ES/WebGL is still supported, I'll be happy as a clam. I've got my (thus far) private modules for 3D, which sit on top of MX1's opengl.gles20 module quite nicely and run on Win/Mac/iOS/Android/HTML5 "natively" (as native as Java and JS get).


tiresius(Posted 2015) [#5]
I understand the purity of keeping MX2 "just a language", open source, free from outside constraints and liabilities, etc.

Maybe I'm confused on how BRL will sustain itself in the future, given that MX2 is free and donationware. I just don't see new budding programmers (which ease of use languages cater to) paying or donating anything. People are CHEAP.

I thought maybe BRL officially hooking into a 3D engine and selling the module might be a way.


GW_(Posted 2015) [#6]
3D engines are HARD work. and in the end no one is happy. There are some great html5 engines out there that could be ported over and surely will be once the language is stable.
In the meantime I'd prefer the focus is on a rock solid language and runtime.
I've said it before but, Once the language is solid enough to attract a large number of developers (stable runtime, gc, IDE with autocorrect etc.. ) All the modules we want will come naturally as a by-product from the users.

The quality and quantity of modules for a language is directly proportional to the quality of the language. just look at python for example.
3d will come. but the language/runtime/core modules/ IDE comes first.


degac(Posted 2015) [#7]

I thought maybe BRL officially hooking into a 3D engine and selling the module might be a way.


Road already taken in past (Max3d module for BlitzMax) and ... abandoned for lack of interest/competitors etc
In my opinion abandoning Max3d was an error.
At the end, only advanced user who can understand/create an own engine, could use MX1* or MX2 with a 3d engine.
And - taken as example BlitzMax & its engines - excluding MiniB3D - there are nothing around.

I'm still believing that creating a 3d-engine as module for BlitzMax and MX2 (MX1 has too many target to support) could be a killer app.
MX2 could have the best syntax in the universe, but it seems already limited.

ps: simple question, how many MX apps are using a 3d engine (even for a single target)?


tiresius(Posted 2015) [#8]
I was merely a BRL forum lurker when the Max3D thing happened and I never looked at the code. I thought that was Mark trying to make his own 3D engine and not just tying into an established one...

Hey if all these module developers swoop in and fill in all the gaps that is great! Just some people would prefer to have official solutions they know will be supported for the longevity of the product. Maybe the market is changing and this is no longer true.


nullterm(Posted 2015) [#9]
Not to use the U-word, but if you want 3D with "official" support then look at Unity. Massive established solution for 3D with plugins, content, tools, code, tutorials galore.


EdzUp(Posted 2015) [#10]
I thought the idea would be to keep customers not bolster the competition due to lack of features?


skid(Posted 2015) [#11]
Massive established solution for 3D with plugins, content, tools, code, tutorials galore.


[ edit, soz ]

If monkey2 gets a 3d engine it should probably throw polygons out the window so to speak.

https://www.shadertoy.com/


tiresius(Posted 2015) [#12]
To be honest I do not really have a 3D game in mind for myself, I just think that lack of 3D is detrimental when what you are selling most is the dream of making games. (I know MX2 will be free, but Mark's got to eat.) Maybe the newly budding programmer will never finish that 3D game with realistic physics, but all it takes to initially pull money out of a wallet is the dream. (All this has probably been said ad nauseum in the other brl forums regarding BMax and 3D.)

I know I'm going to love the newer language. I know I'm going to enjoy learning Pyro and using shaders and other wonderful things. I just want the honeymoon period to last longer than MX1 did. In short, I'm just trying to see how to get MX2 to appeal to as many people carrying around wallets (or purses) as possible. I want MX2 community to grow in numbers, be a financial success for Mark, and last for a good long time. I think everyone wants that.... maybe 3D isn't the answer, but it couldn't hurt.


impixi(Posted 2015) [#13]
Mark stated in another mx2 thread that he is not going to write a 3D engine. And I doubt many of us are up to that task ourselves, for various reasons. So it looks like we must wrap an existing 3D engine.

I looked into this a while ago, and came to the conclusion that three.js was the best solution *for the web*, both technically and architecturally. It was relatively easy to wrap the basics for mx1, but given mx2's C++ -> emscripten -> web direction, I wonder if it's even possible to wrap for mx2, unless we port the entire three.js codebase to c++ first (ha!).

So, before I embark on a time-sapping, high noise-to-signal Google search, what are the good native C++ 3D engines we could potentially wrap for mx2? Personally I'm only interested in high-end Windows platforms at the moment, but obviously x-platform solutions are ideal. Non-commercial, open source too?

@skid: I agree in principle but as far as I can tell shadertoy and its ilk are for visual effect demonstration purposes mostly - you'd be in for a "world of hurt" trying to create a full-featured 3D game-engine replacement based around raymarching. (Not saying it can't be done, just seems like nobody's done it yet in an engine we could wrap for mx2).


skid(Posted 2015) [#14]
I didn't realise the reason for this thread is "because it would be nice".

I wish people would take monkey2 seriously and get with the program rather than requesting a requirement they have in reality zero need for.


marksibly(Posted 2015) [#15]
Settle down there Skid - asking whether there are plans to wrap an existing 3d engine as an 'official' module is a perfectly valid question. Or were you replying to something else...?

Nobuyuki has pretty much answered this for me though. Right now, I only plan to work on 'original' stuff for mx2, while (hopefully) making it easy for 3rd parties to wrap existing stuff. Ogre probably wouldn't be my pick here though (if I were choosing), as its very big and complex and c++-ish. Irrlicht is simpler, but smaller and likely to be easier to wrap.


impixi(Posted 2015) [#16]
Wow, I didn't realize Irrlicht was still around / maintained...

http://irrlicht.sourceforge.net/


marksibly(Posted 2015) [#17]
uBlock considers it an ad!

Just mentioned it off the top of my head really, wasn't sure if it was still around or not. Still seems to be kicking though.


tiresius(Posted 2015) [#18]
Thanks Mark for official response and setting the record straight. I for one am a believer and along for the ride.

I hope Patreon works well after the MX2 base language + mojo2-ish module comes out and starts gaining some traction. People in the impersonal world of the internet are especially cheap with their paypal clicks and I think something needs to be super-popular for donationware to become financially viable.


nullterm(Posted 2015) [#19]
I used Irrlicht 6/7 years ago on a project, was pretty good! Nice to see it still around, though I still am unsure how to pronounce the name. : )


Samah(Posted 2015) [#20]
Personally, I pronounce it "ear-licked".


Qube(Posted 2015) [#21]
Whilst true that monkey / monkey 2 are "languages", we also have Mojo, an officially created and supported addition by BRL which and I quote "provide a lightweight programming framework designed primarily for creating simple 2d games". There are other 2D frameworks that could be wrapped yet we have an official one. Would it be such a big bind to have an official Mojo3D ( even as an extra paid for module ) which gives the same lightweight programming framework?. Come on Mark, give us peasants a Blitz3D type Monkey module :) #IEitherHereMarkSwearingOrConsideringTheIdea.

I think we need someone as talented and more importantly dedicated like Ziggy ( JungleIDE ) and Playniax ( IgnitionX / Pyro ) to take on and quell the 3D request madness once and for all. To speak for all, we need 3D and we need it integrated into Monkey. Most of all we are all still waiting for the "CreateGame" feature.

Irrlicht... Personally, I pronounce it "ear-licked".

I thought it sounded more like "ear itch". Which fits in pretty well when you code some 3D and it doesn't look on screen as it should. "ear-licked" is something you do in private with your partner :p


abakobo(Posted 2015) [#22]
I hope the mx2 community will discuss/debate in order to chose free/open source 3rd party modules. And share effort on them to get some mx2 end user (app developper) friendly environements with templates and nice examples and tutos on how to use those linked(wraped? binded?) 3rd party libs. I suppose it's what will attract people to init into mx2.
I'm thinking about 3d, gui (for non game apps),physics ,advanced math ,net ,sound (compatible with music like tracking and sound generation), 2d advanced stuffs,DB ,.... and maybe marksilby can later (unofficaly ;P ) help in some critical points where full understanding of the beasts is needed!



Just a thought on how developpers (like me) like to use their very high level dev environements. Get the stuff done and don't care on how things goes on lower levels..

"earlicked" looks very mature by the way...


PixelPaladin(Posted 2015) [#23]
Irrlicht is German and means Will-o'-the-wisp.

Good thing that google translator has got a text to speech feature:
http://translate.google.de/?hl=de&tab=wT#de/en/Irr-licht
(The minus is needed because google translator didn't pronounce it right)

But yes – there should be a 3d library. It would be nice, if it could be combined with 2d mojo commands like it was in BlitzBasic3D … I think a mojo3D library would be really cool :)

Edit:
Okay – it is also on the faq-site of the irrlicht engine (there is also a wav-file): http://irrlicht.sourceforge.net/faq/#whatdoesitmean


TeaBoy(Posted 2015) [#24]
I've messed around with a few 3D engines in the past, one of them being Irrlicht and it's great to work with, fairly painless to build too.

Perhaps if there is enough interest maybe someone could persuade the developer of [Enter 3D engine here] to work on a version for MX ;)


rebelas(Posted 2015) [#25]
By google search for 3D C++ API, I got this as an answer this question:
Easy to use cross-platform 3D engines for C++ game development?

Answer:
My Opinion (only for open source 3D engines):

Irrlicht:
Light 3D engine
Clean C++ without dependencies and no STL.
Not very well documented but there are good tutorials.
Very small so you can customize it easily.
No OpenGL 3.X driver, Direct X 10.X or 11.X available in the official SDK.
Very good for mobile development;
Good community
Few extensions available
Ogre3D:
Big 3D engine
It uses modern C++ such as STL, exceptions and RTTI
Good documentation (There are published books).
Many renderers (OpenGL, DirectX and OpenGL ES...).
Ogre3D have many extensions as CEGUI or Bullet integration, Tree nodes...
But more difficult to extend Ogre3D if you want something specifics.
Big community
Many extensions
Crystal space: An old design and difficult to use. After few days, I stopped using this engine.
Horde3D
Small engine
Modern design
Light community
No extensions
Blendelf
Small engine with some dependencies
Modern design with moderns effects as DOF or HDR ...
OpenGL only
Light community
Bullet integration for physics
You use lua to pilot this engine3D

TL;DR:

For a desktop game (or future commercial game): Ogre3D
For a first game: Irrlicht
For mobile development: irrlicht (Ogre3D is too big)
For sexy effects: Blendelf

Another discussion is here:
http://cfc.kizzx2.com/index.php/irrlicht-vs-ogre-for-mobile-game-development/


rebelas(Posted 2015) [#26]
What is wrong with making a library based on OpenGL ES in C/C++ without OOP structure so that it could be used as a core for other engines like Blitz3D for MX2?


Samah(Posted 2015) [#27]
@rebelas: My Opinion (only for open source 3D engines):

Very cool stuff there, and something to think about.
Having said that, I still think it's out of initial scope of BRL support. The complexity of adding a 3D "engine" and/or bindings would increase the amount of work required tenfold. If there ends up being an "official BRL module", Mark will need to outsource to another developer. His knowledge/skills may be formidable, but there's only so much one developer can handle.


rebelas(Posted 2015) [#28]
Yes, I know. I didn't mean Mark. I read he said he won't a while ago.


Sledge(Posted 2015) [#29]
Relying on 3rd party 3d solutions has not worked satisfactorily for two languages in a row now. I'd be massively interested in MX2 were it to have in-house 3d support; without it I'm still kinda waiting for the end-user use case...?


nullterm(Posted 2015) [#30]
Reality is if there's a demand for Monkey 3D then someone needs to grab the baton and run with it. Discussion amongst a group is good, but it takes an individual to step up and actually start something. It's a BIG commitment


EdzUp(Posted 2015) [#31]
I think the official 3d solution is a good one, relying on third party solutions not only has the 'its not official and could disappear anytime' it sometimes isnt as complete or as functional as things like Blitz3d even.


Qube(Posted 2015) [#32]
Even a Blitz3D type engine with shadows would be great. First person to mention MiniB3D gets a hulk buster punch!