simple a 3d engine

Community Forums/Monkey2 Talk/simple a 3d engine

EdzUp(Posted 2015) [#1]
If possible can the base release have a 3d engine even a basic one like Blitz3d's it would add a jewel in its crown and make a brilliant selling point.

In my honest opinion it is one thing that max would have been brilliant with, an official 3d engine. Minib3d does do loads but it was only third party.


Danilo(Posted 2015) [#2]
REMOVED unnecessary comment.


EdzUp(Posted 2015) [#3]
@Danilo:WTF are you drinking I would like a pint of that. Let me clarify your points for you:


What "brilliant selling point" with full and free OpenSource? Paid Support/Manual/Books?


The more people use it the better it will become because of it.


I think you should change your capitalistic (Money-making) world view radically...


That statement is utter bull tbh I for one have released LOADS of source code over the years and havent charged so much as 1 pence for it. How not very capitalist of me.


You lost Vietnam 40 years ago, just face it. God is dead!


No I didnt seeing as im British not american, and I dont give a toss about ya god thing you talk of as tbh you seem to be the one with the problem.


Danilo(Posted 2015) [#4]
Sorry for that EdzUp, had way too much at the MX2 announcement party!
Was about time for going to sleep...


EdzUp(Posted 2015) [#5]
No worries, apology accepted

The only thing worrying me is how do I know this is gonna be right.

Marks last complete project was blitz3d

Plus needed excel sheets
Max needed official 3d and fixes
Monkey he has stated was wrong first time round

So yes I'm worried


Danilo(Posted 2015) [#6]
At least in theory it's possible to import external libs/sources (GUI libs, 3D Engines, etc).
The problem is most likely that importing something like OGRE, Unreal Engine, QT, ...
would be a huge work already.


EdzUp(Posted 2015) [#7]
I think the thing comes to mind if you can wrap these up already why not use them as they too are free?


Soap(Posted 2015) [#8]
They also add complexity / baggage / dependency. Unreal Engine also is not free. Unreal Engine is still really good. It's free to use, but that doesn't mean it's free, it does have cost (though fair) which must be recognized. If you want to make a 3d game still right now best to use those engines directly. I've used UE4 in unpublished projects and really like it.

Doing 2d right should be first priority, supporting things like shaders well out of the box is a good idea, and transitioning to 3d can happen with the right foundation. If Mark made a new official 3d thing I would probably use it over UE4 and other options!

I wish I could have read your full comment, Danilo, it looked entertaining!


Sammy(Posted 2015) [#9]
No 3D support off the bat has already proven to be the quickest way to kill off any interest in a new game development language IMHO, no matter how sophisticated the syntax is.

It should have priority over 2D. If Mark wants to avoid the burden of a creating a 3D engine then use an external one (commercial or not) but official support has to be there, no one will invest time or serious money in a new project otherwise.


EdzUp(Posted 2015) [#10]
I think its one failing in max when max3d took a nosedive and something that it never recovered from. Monkey will take a hit from the 'failed first time posts' but hopefully MX2 will succeed.


Danilo(Posted 2015) [#11]
Somebody should inform the BlitzMax guys (like Brucey) to take part in discussions in this forum section.
After all, MX2 could possibly be BlitzMax 2 - so it would be very nice to hear BMX power user's wishes and opinions,
as well as some fresh opinions from outside BRL world, of course. ;)

EDIT:
Just found out that it was announced in "General Discussion": http://www.blitzmax.com/Community/posts.php?topic=104526
I was looking in "Monkey Discussion" section.


dawlane(Posted 2015) [#12]
There is a problem to Sammy's suggestion of using a third party 3D Engine solution. And that is that I haven't seen an all in-one for the targets being suggested. You could use more than one engine to get round it, but then that would become a nightmare to maintain and the MX2 user would have to fart around installing more software development kits.


Why0Why(Posted 2015) [#13]
I think Ogre supports all of the requested targets.

http://www.ogre3d.org/about/features


EdzUp(Posted 2015) [#14]
None will be as sought after as a official b3d replacement, all other things change over time making more to do but official stuff changes as the programmer requires


GW_(Posted 2015) [#15]
If possible can the base release have a 3d engine even a basic one like Blitz3d's

Simple 3d already exists. It's called 'Blitz3d, Minib3d, Openb3d, Hardwired DX 3D. If one of those doesn't meet your needs, then you've got bigger problems.
Start with a fast, well designed language and the other libraries will come along naturally.


tiresius(Posted 2015) [#16]
Start with a fast, well designed language and the other libraries will come along naturally.

But as a language to sell (or to prompt subscription-based donations), you would want as much available in the regular package as possible. Give promise to the availability of something out of the box. Not the promise of figuring out how to link up with 3rd party "unsupported" libraries that could break with a language update.
This was a problem for BlitzMax with the dropped Max3D, and an even worse problem for Monkey. I love these languages syntactically but the lack of a basic feature (basic 3D, shaders) means less sales from new customers, which means less support for Mark, etc....


CodeGit(Posted 2015) [#17]
I tend to agree, the quickest way to let MK2 fail, is to NOT include a 3d engine.


JoshKlint(Posted 2015) [#18]
People will say they want shaders, etc., but that is because they have no idea how these things work and how they increase the difficulty of using the commands. What people need is a simple self-contained, no-fuss way to do simple 3D commands. It doesn't need a "full" 3D engine, just some basic 3D rendering. There will be requests for shaders, effects, etc., but that leads down a road of increased complexity and a need for visual tools to control it all. And then you're just making a 3D engine, which is a huge amount of work in and of itself.


EdzUp(Posted 2015) [#19]
This is why I said a engine like Blitz3d simple of for loads of things THEN later stuff can be added and other features can be added.


Samah(Posted 2015) [#20]
Design of the core language and the source translation engine are the first priority. A 3D graphics API (or even 2D for that matter) are modules and are out of scope of the first release.
Once the language is "usable" in some raw form (C++ tool, etc.) we can work on hardware interfacing and wrapper modules (SDL or Allegro would be good choices).


Nobuyuki(Posted 2015) [#21]
I agree with Samah. People looking for a "simple" 3d engine would probably benefit from taking a look at Unity or UE4 blueprints. Shaders would be a nice "bonus" that may come with bringing the existing capabilities up to date with the last half-decade or so of progress since monkey was first conceived as gxtk or whatever, but 3d as it would exist in terms of feature parity to other engines is a pipe dream that many people severely underestimate the kind of undertaking it represents. It would be a huge distraction that would take away from the core language design if it was considered this early on.

If you need proof of this, try doing 3d in Monkey yourself using raw OpenGL calls. I'm pretty sure it can be done without externs, but you'll soon find out the amount of effort it would take to get anywhere at all with this! All of that can come later, when the language's practical utility can be demonstrated to a wider enthusiast community. I wouldn't mind seeing something like this come out with monkey2, but I'm not about to push for it, because it's a high-risk-low-reward scenario for one programmer, especially one who hasn't been designing 3d engines predominately for 20+ years like Sweeney or Carmack. (not to presume, but!)

If it's a choice between burdening the end-developer with too much cruft and the language designer, I say leave the burden to the individuals. A canonical 3d engine is not more important than the language itself, not even close.


Sammy(Posted 2015) [#22]
Then there's no carrot, no one will buy, all you have is a rather complex new dialect of Basic(again). If you want this to be remotely commercial in the modern world you need to be reactive to its needs, like it or not. Depending on community support for essential features like 3D will not help matters.


EdzUp(Posted 2015) [#23]
One thing that jumps out is every version after Blitz3d is the request for 3d to be in there.

Before everyone jumps up these are FREE systems available to all

Max has max3d(discontinued) and minib3d(discontinued and not official), loads of others that are in different stages of development or abandoned.

MonkeyX has minib3d (abandoned or sketchy support)

Blitz+ has the odd one but not supported anymore iirc.

Its one thing people still flock to blitz3d for come on merge ALL the blitz platforms into one kick ass product that will once again cement the fractured blitz communities together again then we can all move forward with MX2 or Blitz together as one. To miss that opportunity would be a crime.

Before everyone jumps saying the community could do it there has been LOADS of failed community projects so most will only trust official stuff.


CodeGit(Posted 2015) [#24]
I thought it best to post my comment again.

"the quickest way to let MK2 fail, is to NOT include a 3d engine"


Skn3(Posted 2015) [#25]
One thing to really consider hard is emerging markets..... VR.... currently the main choices for VR development are Unity/Unreal and you sign yourself over to their limitations if you choose that route. Not everyone likes to use "maker" style languages so it could be a real boon to future blitz product to tout that there is an alternative approach for rapid VR development...


Nobuyuki(Posted 2015) [#26]
@Sammy
Then there's no carrot, no one will buy, all you have is a rather complex new dialect of Basic(again). If you want this to be remotely commercial in the modern world you need to be reactive to its needs, like it or not. Depending on community support for essential features like 3D will not help matters.


I keep hearing this from different people the past few days, most of which I haven't had the pleasure to interact with much on this forum before. What is there to buy? This is going to be an open source project; the usual "I'm the customer and if you want my money then you should capitulate to my pet feature" doesn't apply, does it? If I'm missing something, then please feel free to point it out here. It doesn't sound like monkey2 is lacking a carrot at this stage as much as it sounds like some people have the stick at the ready.

Perhaps there is a more persuasive argument to be made in favor of a 3d engine than "nobody will buy it without one"? One that addresses the problem of feature bloat / focus drift that can tank a single-coder project?


EdzUp(Posted 2015) [#27]
I think the argument simply is 'if you want all the blitzers to get behind it' then add 3d otherwise you will still have the blitz3d group that wont bother even having a look.


Nobuyuki(Posted 2015) [#28]
@EdzUp
I think the argument simply is 'if you want all the blitzers to get behind it' then add 3d otherwise you will still have the blitz3d group that wont bother even having a look.


You're the only person I know on this forum who insists regularly on 3d, not counting all these new monkey-forum faces I'm unfamiliar with. If they haven't moved on by now to something else in the 10+ years since blitz3d stopped development, it's unlikely that they will. Attempting to appease them all would likely be an exercise in futility, since most of them would appear to be pretty set in their ways given the fact they're still on blitz3d.

@skn3
One thing to really consider hard is emerging markets..... VR.... currently the main choices for VR development are Unity/Unreal and you sign yourself over to their limitations if you choose that route. Not everyone likes to use "maker" style languages so it could be a real boon to future blitz product to tout that there is an alternative approach for rapid VR development...


This is the most convincing argument I've seen in favor of a 3d framework, in this thread or anywhere else on the forum. There is a small window to capitalize on that opportunity, however, and it may end up being for naught should VR be a flash in the pan like Facebook games were. Regardless, even if it isn't, the establishment of a new genre would give Mark plenty of time and opportunity to approach it and make a good stab at it after laying down a solid foundation.

Blitz3d actually springs to mind in this regard, as it appeared at the tail end of when 3d was still "hot", without coming out so late that it would've been completely irrelevant. It built upon BlitzBASIC after BB was already established.


EdzUp(Posted 2015) [#29]
So by your argument anyone wanting 3d should move onto something else, great sales tactic and a brilliant way to get mx2 a big user base.


tiresius(Posted 2015) [#30]
What is there to buy?

Mark is requesting subscription-based donations through Patreon. He wants our money and will give us something in return. The fact that some people will just get it for free doesn't mean he is not "selling" something and we are not "buying" something.

Monkey1 is (to me) a very beautiful language. I love the syntax. I personally haven't run into any of the advanced language quirks and annoyances that some people want fixed with MX2, so I'm no expert and might have rose colored glasses on.

But let's agree that Monkey1 is a beautiful language at a certain level, and it still was not financially successful for BRL in the long run. How can providing a "more" beautiful language alone be successful? People won't donate money on patreon for a nice looking language unless it serves a purpose for them.

So the answer to getting more patronage on patreon is features, features and features.

True Mark needs to focus on getting a strong language syntax down pat and build the core modules. But there must be some sort of plan for adding supported features that will make game development faster (good ide/modules), entry point into game development faster for newer people (good doc/examples), and a wider range of game genres possible (good features). After all, we're not only after Blitz3D users only who may want a more supported language to switch to. We're not just after Monkey1 users who wanted the language to become more BlitzMax-ish. We're after everybody OUT THERE who might be interested in making games.

So that is why certain people are clamoring for basic 3D support and other such stuff. It gives the user the potential to do more out of the box.

It sounds like restriction to C++ code generation will make a lot more things possible and will avoid some inherent weaknesses in Monkey1 features.
So time will tell and I wish Mark all the success he deserves and I will definitely be with virtual wallet in hand for patreon, I hope he makes it work.


Skn3(Posted 2015) [#31]
Monkey2 really needs to think long and hard about this. The USP of monkey1 was that you could compile 2D games to a ton of platforms . Most impressively html5 was a target, which even a lot of the competing products hadn't rolled out yet... Back in the early monkey days.

Monkey2 is dropping one of its USP, so what will take its place? I would say it's a hard sell to say the improved language, that is a USP but it doesn't really say WOW factor. So where can Monkey2 succeed where other languages fail? What can Monkey2 offer that will draw in the punters?

3D is a good one but there are plenty of competing languages that offer 3D.

Mark you need to think outside the box here a little. Look at swift from apple, it offers enhanced features for developing that monkey could take a good lesson from? The ability to debug/tweak properties on the fly with a compiled language, and running cross platform..something like that would trump 3D for me any day!


Samah(Posted 2015) [#32]
Ok, let's look at it like this then.

1) Language design and grammar.
2) Translation to target languages.
3) Module to interact with target platforms.
4) Module to draw 2D.
5) Module to draw 3D (raw commands, not a fancy 3D scenegraph).
6) Fancy 3D scenegraph engine to rival Unity. NOT part of core release.

All these steps need to be done in order. Of these, I would class 1 to 3 as Monkey 2 "tech preview". Step 4 would be "beta", Step 5 can be "1.0". THEN we can work on the 3D "engine". Remember an engine is not the same as an API. I would not call SetColor part of a 2D "engine" for Monkey, merely the graphics API for Mojo.

The figurative "carrot" is completion of that list, but let's not get ahead of ourselves. I certainly agree that to be competitive it will eventually need a 3D scenegraph engine, but discussing step 6 before we've even planned steps 1 to 5 is counter-productive.


Nobuyuki(Posted 2015) [#33]
@tiresius
But let's agree that Monkey1 is a beautiful language at a certain level, and it still was not financially successful for BRL in the long run. How can providing a "more" beautiful language alone be successful? People won't donate money on patreon for a nice looking language unless it serves a purpose for them.


I hate to break it to you, but people don't donate in general. It is not typically a sustainable way to make a living unless you have rich friends, or are able to whip up a frenzy of people using agitprop, or a combination of both. I'm sure Mark knows this, seeing as he ended up getting a day job after open sourcing large parts of Monkey. I don't disagree with you that Monkey is a very nice language, however.

What I'm saying is that the way he is proceeding seems like the legitimate open source path to me, the way many other languages entered widestream adoption: They start off as enthusiastic pet projects of a developer who has an existing day job, but because they are not constrained by the demands of a rabid fanbase, they're able to design something more or less in tune with their vision, rather than by the market forces of the niche their language happens to fall into. They are not compromised by the flavor of the day; they work with their own priorities, and so (if they survive past the hobby stage) many of them become respected general-purpose languages. This is the most likely demographic that will bring Monkey out of obscurity. Not the old blitzers, unfortunately, as loyal and well-intentioned as they were, but the new people who see a great language and want to contribute to that vision.

New life and breath is critical to garnering better community support for Monkey; I commend the efforts of the wider Blitz community for the progress they've made in extending past BRL languages to support various things they wanted, but the truth of the matter is that their efforts have been unsatisfactory. If they were capable, they probably wouldn't be complaining to Mark to code their pet features for them. Mark is just one person, however, and it doesn't seem there's agreement that a 3d engine would be a good focus, so likely that sort of thing will have to be handled by the community -- and for that to happen in a satisfactory manner, the community needs new life! I personally find it very unlikely that Mark could make something satisfactory to the old blitzers without making sacrifices to the quality of monkey2 at large.

True Mark needs to focus on getting a strong language syntax down pat and build the core modules. But there must be some sort of plan for adding supported features that will make game development faster (good ide/modules), entry point into game development faster for newer people (good doc/examples), and a wider range of game genres possible (good features). After all, we're not only after Blitz3D users only who may want a more supported language to switch to. We're not just after Monkey1 users who wanted the language to become more BlitzMax-ish. We're after everybody OUT THERE who might be interested in making games.

So that is why certain people are clamoring for basic 3D support and other such stuff. It gives the user the potential to do more out of the box.

You and I both know that basic 3d already exists for Monkey. It is not a selling point because it is relatively difficult to pull off out of the box and relies on a lot of finite state machine stuff instead of shaders and other modern amenities. Making that not-as-difficult to use won't magically bring in the type of users that will help the language expand and flourish. It would only be done to appease old users who want a certain level of functionality. Everyone NEW who wants 3d almost certainly wants the modern amenities which go with it. Making that "simple"/approachable for newbies is a huge undertaking, one that would likely take a long time and be a large investment. That's why everyone with sense has been saying that if it does happen (as a first party module), it will likely happen later, because it is nowhere near as a big a priority as the language itself, even though it's as large an undertaking in its own right.

It sounds like restriction to C++ code generation will make a lot more things possible and will avoid some inherent weaknesses in Monkey1 features.
So time will tell and I wish Mark all the success he deserves and I will definitely be with virtual wallet in hand for patreon, I hope he makes it work.


Agreed. Monkey does need some sorta "gimmick" to draw in people, make them say something other than "what, another new language?". 3d could be it, but I personally think it's a bit early to even consider. Trans-compilation stuff was Monkey's initial killer feature, and this doesn't appear to change for Monkey2. Mojo was icing on the cake. Monkey does trans-compilation better than Haxe IMHO, but Haxe gets the attention because it has a better-backed userbase which migrated from ActionScript, whereas BMax/Blitz was already niche, and many people don't take BASIC seriously anymore. There are a multitude of ways to break this impression, but none of them seem "easy" or apparently more obvious than the other. Mark has chosen the open-source route, which signals to me anyway that he is going to choose to eschew the "product gimmick" route as the way to promote its adoption in favor of a more "institutional" approach. Just my 2 cents, however, I can't speak for the guy.....

Edit: WHEW I sure said a mouthful. Just wanted to throw in there that I agree with what skn3 and Samah have said in the past couple posts as well.


EdzUp(Posted 2015) [#34]
Noboyuki:I agree with ya a gimmick is gonna sell and most of the major language gimmicks have already been done, occulus support is in Unity indie as is 3d. I think this is something that is gonna have to be thought long and hard about as another language without an edge is just that, another language. Also as has been proven time and time again people dont donate to something they dont believe in so he will have to get LOADS of users onside etc and do the dreaded marketing thing.


Playniax(Posted 2015) [#35]
Roughly I agree with Samah.

3d stuff if it comes, it has to come last. A good foundation is important. But why compete with Unity on 3d? (I don't believe that is possible) It's a complete diffrent way of doing things. I would primary focus on 2d and performance and try to excel in that!

PERFORMANCE NEVER GOES OUT OF STYLE !

When Monkey 2 as a language attracts enough people I believe 3rd party stuff will close the gaps.

I suppose we all know the strengths and weaknesses of Monkey but I believe if the money comes in it will motivate Mark to keep adding features.
Time and time again I read here that people like to donate to 'save' Monkey so now guys is your chance to put the money where your mouth is!

I will support this!


Sammy(Posted 2015) [#36]
There are tonnes of decent mature languages out there already. Why would an indie game developer choose a 2D only Monkey 2? It has nothing on offer via syntax alone that hasn't already been established in other open source languages for many years now.

Theres a lot of people here putting their commercial heads in the sand here because they simply don't have any real interest in 3D game development IMHO.

Monkey 2 has to appeal to the greater game development community out of the box. A slow start, with promises of future features will be irrecoverable from a marketing point of view.

No 3D, it won't sell, I've heard nothing to convince me on this thread otherwise.


EdzUp(Posted 2015) [#37]
I think another big put off would be the BlitzMax debacle, yes promising 3d later is a idea but in the back of everyones mind would be 'is it gonna be max3d?' This is why a 3d engine at the start would kill that question off immediately.


Playniax(Posted 2015) [#38]
> No 3D, it won't sell.

Let's just say we agree to disagree :)
For the types of games I want to make I don't need 3d and will probably never need.
I am probably not the only one. If one day I will need full 3d I will probaly use something like Unity or Unreal engine.

However using 3d technology to enhance 2d is something interesting...


therevills(Posted 2015) [#39]
Once the language is finished, maybe Mark will sell modules add-ons such as a 3D engine module.


Playniax(Posted 2015) [#40]
I guess he can 'experiment' with this.

Create an open source language and sell commercial add-ons 'on the side'.
This can be a 2d graphics API, 3D engine, network modules etc.

That is what I would do.

Remember that mojo is not all free.

And there is plenty of room for 3rd parties to provide modules usch as us, the 'Diddy guys' or others.


Skn3(Posted 2015) [#41]
Yeah I didn't really think of the move to complete open source as being a major factor in the language. But thinking about it, It does make sense that this is to be taken as part of monkey2's "gimmick".

But monkey still needs something to draw in users. Regardless of its distribution model. A lot of people create 3D content, so it would seem a safe bet that you could increase your user base by supporting 3D.

The add-on route seems like a good one to me, just need to be careful that you don't do a full public release too early without your feature set in place.


Nobuyuki(Posted 2015) [#42]
I know that there's plenty of people who have been hanging around here just chomping at the bit wanting to help improve the community. Ziggy and Playniax I think did a great job attempting to kick-start the business end of Monkey with the bundling deal, and kudos to whoever else was involved in that deal. Similar things would be great for the Monkey ecosystem, and I have said all along that it would be even greater if we could somehow facilitate that right here on the site (with the help of some web-savvy developer) by making the commercial arm of the product become a portal for all things Monkey. Something like the Unity asset store, but specific to here, linked into our forum accounts and what-not so it's easy to combine the social networking aspects with not just the creation aspects (something else that could be improved), but the commercial aspects as well.

Another avenue of approach is the Krita one -- a future Monkey bundle with all of the "best" of commercial utilities which provides an end-to-end build chain experience, on a place like Steam, to increase user awareness. But, I can't stress enough how much I believe a better portal would help Monkey. Nothing gets green devs more excited than the prospect of showing off their shiny new thing, being able to share it with the world, and being able to make a buck or two off of it. A portal, though, it's another big undertaking. Would need a back-end dev and a webmaster/janitor to handle it. (I'm guessing that's one reason BRL never went this route)


Playniax(Posted 2015) [#43]
I had this idea some time ago for our website so naturally I love your idea! :)

An asset store where Mark can sell his own modules and the community too.
He can still open source the core language but charge money for mojo etc.
Also other assets like gfx, music etc.
It's actuall one of the best ideas I saw here in a long time.

Nobuyuki, Maybe 'we' should open a dedicated topic about this?


Nobuyuki(Posted 2015) [#44]
Playniax: I'm not sure which forum would be the best place for that. I'm not a web-dev, and I don't know who on here is. The way I see it, it's only worth making a push for it if there's people on-board who'd be willing to handle all of that stuff. Might be worth fielding some of the people around here about it, or seeing if there are turnkey portal solutions that would work for this, but that's presuming BRL's even keen to the idea.

Last time the site had a visual refresh, it seemed a bit like it was a Bootstrap / 960 side project for someone's portfolio. It was exciting, but ultimately not much came of it! (Sorry Simon!) This sorta idea's gonna take some pretty big guns.


Samah(Posted 2015) [#45]
@Playniax: But why compete with Unity on 3d?

Poor wording on my part. My point was more that a super 3D engine is not the highest priority, and I used Unity as an example of a super 3D engine.

@Playniax: I would primary focus on 2d and performance and try to excel in that!

This is what Monkey 1 does, and it does it very well. We need to get a clincher for the Monkey 2. I think one of the most promising aspects is that since it's (potentially) only targeting C++ platforms, we can design it from the get-go to have better support for C++ bridging (pointers, structs, etc.) This makes it much easier for us to bind other libraries (Lua, Python, BASS, Irrklang, LibOVR, etc.)

@Playniax: When Monkey 2 as a language attracts enough people I believe 3rd party stuff will close the gaps.

Yep. This has happened for many languages/frameworks. If it doesn't exist and people want it, someone will make it. Often the "unofficial" stuff gets picked up as "official" and becomes part of the core release.

@Playniax: And there is plenty of room for 3rd parties to provide modules usch as us, the 'Diddy guys' or others.

I should go through all of the Diddy source code and change the MIT license to be "Copyright 'The Diddy Guys'". :)

@Nobuyuki: Something like the Unity asset store, but specific to here, linked into our forum accounts and what-not so it's easy to combine the social networking aspects with not just the creation aspects (something else that could be improved), but the commercial aspects as well.

I'm liking this idea. I have a Unity account and have bought a bunch of stuff off the Asset Store, so I can this as being a good option. It provides developers an easy way to give back to the community, and can be a potential source of income for both Mark and the module/asset authors. There's no reason you couldn't have a plethora of 3D implementations on there. I'm just aching to start writing frameworks and wrapper bindings...

@Nobuyuki: Might be worth fielding some of the people around here about it...

Sure, why not.


nullterm(Posted 2015) [#46]
Stick with the current formula. Out of box 2D support and OpenGL [ES] as a basis for building up 3D through extenal/3rd party modules.

2D is much easier to define a basic pipeline with PNG files.

3D is far too open ended. You need 10x the work/code/support for different model, textures, animation files, skeletons, rigging, physics, etc. All created from different tools (3DSMax, Maya, Blender, XSI, etc) each with their own export tools and file formats.

If that's what you want (out of the box 3D engine) then look at Unity or Unreal. It's not something Monkey needs to be.


dawlane(Posted 2015) [#47]
You need 10x the work/code/support for different model, textures, animation files, skeletons, rigging, physics, etc. All created from different tools (3DSMax, Maya, Blender, XSI, etc) each with their own export tools and file formats.
I don't know where that idea came from, but all those 3D tools can export to fbx or collada with their plugins. You would only need a to write a converter to change such formats into an optimised format for your own 3D Engine. And as for images, well there already are a hell of a lot of tools out there to convert one format into another.


EdzUp(Posted 2015) [#48]
One thing loads of systems come with out of the box these days is 3D if its not there from day one there better be a bloody good roadmap and tried and tested proof its going to be coming soon after as that is going to be one of the biggest asks, it was with max and monkey. IIRC Mark said max would have 3d after initial release (max3d) and there would be a 3d system for monkey called Mojo3D (nothing after initial announcement here http://www.monkey-x.com/Community/posts.php?topic=5548&page=first ).

These are the things that future released will be judged on and tbh without the initial release you are not going to get people onside without 3d. Its all very well for everyone to go 'if you want 3d go to Unity' but thats not a really good sales tactic is it. Mark wants people to use his language so he can possibly sell future expansions but if the userbase is already divided about its capabilities and pushing people to other systems then why the hell would new people come here, most would just bugger off to Unity or something else which has everything they need out of the box and its tried and tested.


Nobuyuki(Posted 2015) [#49]
I'll try and be brief:
* Monkey isn't 'selling' or 'not selling' on 3d, and Monkey2 (the language) isn't going to be sold as a product
* 1st-party 3d isn't likely to be the feature to bring significant contributors to the language itself
* 1st-party 3d is a feature to "sell" the language to people with little stake in the fate of Monkey / BRL (ie: people who have nothing personal to lose)
* Judgement comes from people whose stake in the game is primarily self-motivated
* Implementing good/useful 3d is complicated
* There's little for BRL to gain, and very much to lose by focusing too much on 3d

@EdzUp: I wouldn't push your luck considering you've threatened to leave the community (I believe) at least twice before....


EdzUp(Posted 2015) [#50]

I'll try and be brief:
* Monkey isn't 'selling' or 'not selling' on 3d, and Monkey2 (the language) isn't going to be sold as a product
* 1st-party 3d isn't likely to be the feature to bring significant contributors to the language itself
* 1st-party 3d is a feature to "sell" the language to people with little stake in the fate of Monkey / BRL (ie: people who have nothing personal to lose)
* Judgement comes from people whose stake in the game is primarily self-motivated
* Implementing good/useful 3d is complicated
* There's little for BRL to gain, and very much to lose by focusing too much on 3d

@EdzUp: I wouldn't push your luck considering you've threatened to leave the community (I believe) at least twice before....


I shall go through your points in sequence:
1) Monkey isnt selling as its to hard to set stuff up to use, its always been one of the stalling blocks
2) Given the nature of the beast and past events it would be better supported early than 'possibly' later
3) Not always if you want more business then you have to get demos out there which show things people want
4) Were all self motivated not all of us require monkey to get stuff out there but it does ok in some aspects.
5) Yes I agree which is why I suggested Blitz3d (cross platform version) as a lowest common denominator this would then give everyone a foundation to build on
6) I didnt say focus completely on 3d and never have done, networking etc is also as crucial if not more so but dismissing it completely would be insane given the competitions products that all support 3d in some form or other.

As to our last comment I do not give a monkeys as to your personal opinions yes I have left the community for a time and came back later on to see if anything has changed, its stupid elitist comments like that which make me think that this forum is slowly turning into the Unity forums with fanboys touting how their product is better than all the others. I use the best tool for the job and if you cannot understand that then thats our problem. Also it wasnt a threat to leave the community I did for a while it was Mr Wickers comments made against me regarding a KeyGen that made me return. I havent use BRL products in a major way since 2009, why because they dont bring anything new to the table. Max was marks last brilliant language, monkeyx is good for prototyping and testing on tablets but for 2d only but I tend to use other systems these days. Maybe your opinions are right maybe its time to go for good like GfK who now uses Unity as BRL wasnt going anywhere, maybe its time to move on for good.

EdzUp out...


Sammy(Posted 2015) [#51]
There was never any real support for 3D in Monkey 1 (except the terminally buggy unofficial MiniB3D port)?

Also anything that has the line "I wouldn't push your luck...yada yada yada" is argumentative and trolling. Give it a break, were pretty short of forum members here, we don't need you trying your best you force people to leave.


MikeHart(Posted 2015) [#52]
@Sammy, +1


dawlane(Posted 2015) [#53]
Well speaking of cross platform 3D Engines. This one (Minko) may show some promise.


marksibly(Posted 2015) [#54]
Right now, I am just trying to write the best compiler I can, and haven't thought much beyond that, so things like 3d engines, MMO systems (thanks a lot Richard!) etc aren't even in the picture yet.

As for whether monkey2 *needs* a 3d engine, IMO if it can't survive without one I reckon it's toast anyway. Times have changed since the b3d days, and there are now plenty of ultra awesome 3d game creation systems out there - most of them free. Even if I wanted to, I wouldn't have the resources to take them on, and if monkey2 presented itself as a '3d game creator' you can bet it would be compared with them and would inevitably come up wanting.

Which is not to say there isn't a place for some kind of 3d engine in there from BRL. I do quite like (and have thought about in the past) JoshK's idea of something super simple, perhaps with an 'un-programmable' mega shader or something that is quick and easy to use. But realistically, anything I do is not gonna have 1/100th the impact that b3d did, and the vast majority of people wanting to do 3d stuff ARE going to choose unity or unreal or whatever instead. And so they probably should!

And blitzmax has done all right without any official 3d support. I still believe there's room for a 'basic like' language for hobbyist/serious game programmers that provides useful low level access while providing nice, easy to use high level stuff. And with a sexy language, decent module/build system etc.

No doubt there will be people unhappy with above, but I'm just trying to be clear about where I'm coming from.

> Give it a break, were pretty short of forum members here, we don't need you trying your best you force people to leave.

I agree, but to be honest I would prefer quality over quantity here!

I set up this forum mainly so I could get technical ideas and suggestions for a language in early development, not so people could rehash 'to 3d or not to 3d' style arguments again.

I don't want this to end up like the shortly lived 'devteam' forum at blitzbasic.com, which I eventually abandoned because there was SFA actual development discussion in it.


EdzUp(Posted 2015) [#55]
Well either way I will test it for ya, I do think that you should expose the OpenGL systems like max this will give monkey2 a fighting chance as 3d engine could be written by us for it if required. Monkeys access does seem convoluted and chaotic so the access should be made simple and easy.

Something like:
[Code]
#OpenGL_Version=2.0 'set it to use OpenGL/ES version 2.0
#Use_OpenGL=True 'this would initialise OpenGL version dependent on the target

GLGraphics( 1024, 768, 32, True ); 'last true is full screen etc

...use OpenGL stuff here

GLEndGraphics
[/code]


Nobuyuki(Posted 2015) [#56]
@Sammy
Also anything that has the line "I wouldn't push your luck...yada yada yada" is argumentative and trolling. Give it a break, were pretty short of forum members here, we don't need you trying your best you force people to leave.


Fine. I will admit that I was starting to get a bit confrontational, but I'm starting to get tired of people who claim their ideas represent what's best for the community all the while they're making vague 'threats' about what will happen to Monkey if those ideas are not followed through. Having one's hand out for features with implied threats of failure if they're not met is not going to get anywhere, particularly when the typical commercial model no longer applies. If people want to make veiled threats that they're gonna leave and things like that, then why dance around the issue?


@marksibly
+1, I appreciate you taking the time to post something in this thread. Perhaps the "3d or not 3d" issue can now be laid to rest for the time being..? I very much want to help with Monkey2 however I can, even though I'm not a language designer and have little-to-no formal programming skills in that area. I hope that others in this thread are of the same mindset as well, regardless of their personal priorities.

By the way.... Before Monkey, I was still using Multimedia Fusion to make games. It has quite a number of limitations, but one thing I did find superb before I made the switch was the way it handled shaders. Shaders in MMF were written in HLSL, and you "plugged them in" using a specific syntax to an existing system which let you apply a shader to any arbitrary surface in its system. This meant sprites, backgrounds, layers, and the main drawing surface. Main disadvantage: Variables had to be defined twice - once in a MMF-friendly metadata file, and again in the shader for MMF to send the proper values to the shader program.

I don't know what the targets for monkey2 are going to be, but allowing some sort of specially-formatted GLSL to be loaded and attached to an Image or the main surface would probably give people 99% of the functionality they'd want out of it. If that breaks with the spirit of the language then perhaps there's a way to let that "megashader" be semi-programmable in Monkey itself at least, as without programmability, it's unlikely anything can be implemented that the OGL people didn't already think of in version 1.1 with the finite state machine. I'm guessing that you'd have to generate intermediate shader scripts anyway if you plan to support them at all, so why not allow the user to override it with a specially-crafted one at design time and let them handle the x-platform discrepancies themselves?
IDK, food for thought, but something which probably should be in a separate, future thread...

@edzUp
Monkey already exposes OpenGL ES 1.1 and 2.0. I also hope that for Monkey2, the full OpenGL will be exposed, as this is the minimum necessary to set the casual coder on his way should he want and try to climb that mountain himself. But I can live without it "for now" while the language itself is under development. It seems like it would be a given, in any case, as exposing OpenGL to 'monkey managed' code would be important for testing Monkey's capabilities before a full mojo port / rewrite is available.


GW_(Posted 2015) [#57]
IMO, Blitzmax has proved that a solid language and runtime will attract these libraries in the long run (3D etc..) Half the strength of a language is in it's interface and catalog of libraries. Just look at Python for example.
I 100% agree with Mark. Make a language people want to use and the libraries will come naturally. A friendly syntax combined with very optimized code generation really is the winning ticket.
I'm excited for this!


EdzUp(Posted 2015) [#58]
I will admit that I was starting to get a bit confrontational, but I'm starting to get tired of people who claim their ideas represent what's best for the community all the while they're making vague 'threats' about what will happen to Monkey if those ideas are not followed through. Having one's hand out for features with implied threats of failure if they're not met is not going to get anywhere, particularly when the typical commercial model no longer applies. If people want to make veiled threats that they're gonna leave and things like that, then why dance around the issue?

Who made veiled threats, most people have made observations about what could happen in regards to the competition in this area but nobody said 'do it or else'. Also nobody has ever stated their ideas represent what is best for the blitz community we all have ideas on how to refine and improve it but no one of us talk for the community as s whole.


nullterm(Posted 2015) [#59]
OpenGL [ES] 1.1 and 2.0 support is in Monkey. That's all MX2 needs to maintain.

There's nothing stopping anyone from building 3D games/extensions. I've got one in the works that is based on OpenGL ES 2.0 for iOS/Android. It can be done right now outta the box, as long as you know OpenGL (the #1 cross platform API for 3D).



If someone wants a 3D engine in Monkey, go for it! Someone has to build something as a spark and there has to be a community want/need for it.


tiresius(Posted 2015) [#60]
Thanks for replying Mark it is nice to hear official word on things and get confirmation where you are heading. I guess some have different views on the business direction the new product/venture should take but that is okay as I have never sold a language or run my own business so I will get over it ....

Who knows, perhaps if the language will be as gluey to existing C++ libraries as promised, hooking into OGRE or some other cross platform 3D library will be simple enough to do for the community to fill in and support something of value after all.


Samah(Posted 2015) [#61]
Right now, I am just trying to write the best compiler I can...

Personally, this is pretty much what I was hoping for. There are so many modern language features Monkey could have that were dropped due to the lack of target language support. Restricting the targets will help with this. Alternatively, getting non-C++ targets working with C++ code will help immensely.

@marksibly: As for whether monkey2 *needs* a 3d engine, IMO if it can't survive without one I reckon it's toast anyway.

This.

@marksibly: ...and if monkey2 presented itself as a '3d game creator' you can bet it would be compared with them and would inevitably come up wanting

Also this.

@marksibly: ...perhaps with an 'un-programmable' mega shader or something that is quick and easy to use

Not this. Even intermediate developers will want programmable pixel/vertex shaders.

@marksibly: And blitzmax has done all right without any official 3d support.

Because that was never BlitzMax's goal. For desktop-only game development, I'd probably not look past BlitzMax. It does what it does well.

@marksibly: ...not so people could rehash 'to 3d or not to 3d' style arguments again.

@Nobuyuki: Perhaps the "3d or not 3d" issue can now be laid to rest for the time being..?

Agreed. I think people need to drop that and focus on the language itself. If the 3D discussion really needs to continue, it should take place somewhere else. It's irrelevant until "version 0.1" is released, at the very least.

@GW_: IMO, Blitzmax has proved that a solid language and runtime will attract these libraries in the long run (3D etc..) Half the strength of a language is in it's interface and catalog of libraries.

Exactly.


EdzUp(Posted 2015) [#62]
Because that was never BlitzMax's goal. For desktop-only game development, I'd probably not look past BlitzMax. It does what it does well.

Actually max3d was meant to be an official product to allow max to have a 3d engine but it was discontinued and support was moved to the community.

I would settle for max like OpenGL access


JoshKlint(Posted 2015) [#63]
The hidden megashader is a good approach. People asking for shaders have no idea what they're asking for. If they get that, then the first thing they will start asking for is a simpler system that hides away the shader code, i.e. a visual editor.


Nobuyuki(Posted 2015) [#64]
@JoshKlint
I hope you don't speak for everyone when you say that; I've written plenty of shaders in the past, and it's simple as pie. If you can wrap your brain around Monkey, then you can wrap your brain around a shader language.


Samah(Posted 2015) [#65]
If it's just GLSL, any kind of visual editor is out of scope anyway. I'm sure there are plenty of other tools that can spit out GLSL code for you to embed.


JoshKlint(Posted 2015) [#66]
I'm sure there are plenty of other tools that can spit out GLSL code for you to embed.

Except those programs rely on code, uniforms, and vertex buffers that are always in a different arrangement, which is why none of those programs ever can export reusable modular shaders, making them useless. And GLSL itself comes in 2.x, 3.x, 4.x, and ES varieties, none of which work together.

I've been doing this for a while, I know how this story goes.


DruggedBunny(Posted 2015) [#67]
I *loved* playing with pixel shaders and the depth buffer in Max3D. If even a basic Blitz3D-style engine (with default shader setup) ever comes along, I'd like to just see those on top of it...

Also a limited Monkey-based language that allows you to define GLSL shaders in your Monkey source would be REALLY cool...

PixelShader Blur ()
	SetPixel GetPixelRGB (0, 0) + GetPixelRGB (-2, +2) ' x/y offsets from this pixel!
	' You get the gist...
End


And a pony...

Oh...


And GLSL itself comes in 2.x, 3.x, 4.x, and ES varieties, none of which work together


In my fantasy, that's handled by Monkey2-3D per-target!


nullterm(Posted 2015) [#68]
Actually, Monkey's GLES2 support is cross platform. As long as you target GLES2.

I'm guessing there's a few keyword substitutions it makes to the shader code between your game and OpenGL.

I'm using the same OpenGL ES shaders on iOS, Android, Win, Mac. The only bit I need do is the #ifdef GL_ES at the top. Not every function/keyword is compatible, but if you stick with a subset and/or make some #define's to make them compatible, it works.

Vertex...


Fragment...



Richard Betson(Posted 2015) [#69]
Mark's point on the market placement of Monkey2 is I think dead on. I think, as has been commented previously, if the language rocks like BlitzMax then the 3D support will materialize. I also think Mark has the right idea in designing the architecture, make it sexy, make it friendly, go for quality and completeness of core features. I also cant agree more that If 3D is what your looking for then Unity would be a better option for example (at least for now). When you think about it taking on language development and developing or even implementing 3D in addition is a lot for one guy to do. ;)