TheGameCreators / GameGuruRepo

The GameGuru Repository For Community Collaboration
http://www.game-guru.com
139 stars 56 forks source link

GGMAX - Feature Request : 3D Primitives #1713

Open UltraVox001 opened 2 years ago

UltraVox001 commented 2 years ago

Hello everyone,

It would be interesting for GGMax to give us access to a menu dedicated to 3D Primitives, as in the image below. I don't know of any game creator (in serious contenders) without a minimum list of texturable and editable primitives.

image-de-solides

Thank you.

MonkeyFrogStudio commented 2 years ago

There's a lot of reasons to use base primitives in these other game engines, particularly because you can edit them in the viewport and easily replace them if needed. There's much less of a need for them in an application like GameGuru MAX, in my opinion. However, if you need base primitives, it simple to get a set in. Just open a free program like Blender, create whichever ones you require, export them out, and import them into MAX. Then you can have them to use whenever you need. There's really no need for MAX to have it's own native set of primitives to use since MAX has no internal ability to edit geometry and apply textures/materials to them like these other engines do.

UltraVox001 commented 2 years ago

So let's keep saying that Max doesn't know how to do, and that he shouldn't learn how to do. Let's continue to say that you have to use external programs to make a simple primitive form. Let's continue to say that Max must not know how to manage the basis of 3D: primitive forms. Let us continue to accept that he does not know how to do anything like others do. I do not know where we are going with this, but certainly not very far. From my point of view, Max should give us access to a CSG, rather than forcing us to use external programs for basic shapes. There are plugins for Blender which make games with much better rendering quality than Max. But let's keep referring people back to them. I'm sick of Blender and SketchLab. Due to the memory problems Max is having, I have to shut it down to use another program. Then I have to re-open it and reload the map, then import my template. Did I save time? No. I think the current Structure Editor should know the primitives, know how to edit and texture them. And give us access to the texture, tiling and stretching parameters. This is the minimum required for any level editor.

MonkeyFrogStudio commented 2 years ago

You must use external tools for some things, even with engines like Unreal, Unity, etc. You use Photoshop/GIMP/Clip Studio Paint/SIA/Krita/Etc. to paint your textures. You don't do that initially in Unity/Unreal/S2 or even in MAX. So, you need external tools at some point. MAX is very limited in what it allows you to actually edit. It provides good tools for editing terrain. It does not provide any tools to edit any other kind of geometry. As a result, having Lee and Co. provide them 3D primitives would be a waste of time, especially since you could easily (and I mean really easily) provide them yourself. It would literally take just a few minutes of your time to export all of these from Blender and import them into MAX for you to use them as you please. Why, then, should TGC have to make this an actual part of the program since it would be nothing special?

UltraVox001 commented 2 years ago

I am aware of some relatively necessary external tools, especially for textures. For the rest, I am sorry to contradict you. If the other engines offer the primitives, it is to speed up the mapping work by avoiding using other software, because it is a waste of time. A simple wall modeled on Blender (or whatever) won't necessarily have the exact right size you want. You will have to modify its size, either in the modeler or in Max. In either case, you will be forced to retouch the tiling and stretching of the texture. Unity, Unreal, S2, don't need any external software to do this. They do it themselves because the developers know it saves time in designing a map. A minimum of comfort in the design is important. After that, I am not saying that this request should take priority over the other requests, because this is not the case. Personally, I am thinking of a finished product developed to allow editing facilitated by internal tools, included in Max. If you believe that TGC will develop a Prefab system without going through this type of technology, you are wrong. Because the Prefabs require a CSG (Constructive Solid Geometry) edition. Without CSG technology (and its Primitives), there will never be a Prefab with Max.

MonkeyFrogStudio commented 2 years ago

I don't disagree with you ... in principle. I highly doubt that TCG will ever add a prefab system to MAX. In any case, the reason that most of these systems have basic primitives is because they also have a basic ability to manipulate them beyond scale, rotate, and translate and they also have the ability to add and manipulate materials on those base primitives. MAX doesn't. They would have to build all of these systems. And, once again, you can do all of this yourself already simply by importing what you need via an external tool. The main reason these other engine bother with them is not so you can build complete and final levels with them. The main reason they supply them is for "greyboxing" - roughing out a game levels for the purpose of testing the flow of level game play. Greyboxing allows you to place the basics of a level and to then replace the rough geometry with finalized geometry later on. MAX isn't really set up for this sort of workflow. MAX doesn't work well with a team of developers. It's more for a single developer or a very small team. It doesn't work well with file sharing, etc. It doesn't have a real mechanic for replacing assets that are already placed in the level (swapping out already placed entities, one for another, etc.). So, greyboxing is not really possible (or easily possible) with MAX. Greyboxing is the primary reason why primitives are supplied in most of these other engines, not for actually building final levels. Most of the actual heaving lifting is done externally in 3D modeling packages like 3D Studio MAX, Maya, MODO, Blender, etc. Greyboxing is done internally using the engine-supplied primitives because it's fast, it's there, and it allows level designers to get down to the business of testing game-flow without having to worry about the details of ... well details. ;) MAX is, at it's heart, a hobbyist's engine, made for people who want to build games using the supplied assets. That's not to say that there won't be series games made with it. You can sort of greybox with MAX's assets already if you want. So, there's that.

In a nutshell - It's faster, by far, to simply download, create, and export the primitives you need from Blender and import them into MAX than for the TGC team to have to create the systems needed for you to have the primitives in MAX and for you to be able to manipulate them like you want in order to be able to actually use them in MAX. It's not just supplying the primitives. It's adding the ability to edit them beyond scale, rotate, and translate as well. And that would be turning MAX into a bit of a modeler to some degree (i.e. allowing it to manipulate edge, vertex, and polygonal face so that you can stretch out a cube into a rectangle of the size you would want). It would literally take you minutes to export what you need from Blender. It would take the team days, weeks, or perhaps months to do the other ... taking them away from the more important work on MAX ... just so you can have primitives in MAX ...

AmenMoses commented 2 years ago

There is another reason for needing primitives; Physics.

Take for example my forklift truck physics vehicle, it uses primitive shapes (which are unscaled with origin in the centre) in order to make up the axles, wheels, chassis etc. The visible entities (which are physics off) are then simply positioned IRT by the script to make it look like a proper fork lift truck.

The ability to construct 3D primitives of a set size in the engine would make constructing compound physics structures (like, but not limited to, vehicles ) a much easier proposition.

MonkeyFrogStudio commented 2 years ago

Again, they are super simple to create. Takes about a minute. In fact, here are a set you can all use:

primitives.zip

If you all want more basic sets, just let me know. :)

UltraVox001 commented 2 years ago

ArgentArts, of course it is "faster" to go and find the primitives elsewhere, rather than asking Max for them. This is also the reason why I ask. Because I won't have to look for them elsewhere if they were already in Max. Because if we start on this principle, we might as well make a game with Blender, which can do everything 100 times better than Max. Because it's "faster" and "more beautiful", etc. However, I would like to see this tool (Max) evolve towards constructible and non-destructive geometry. The contributions would be considerable in terms of level-design, and on other aspects as well. You are always more comfortable working directly in the 3D environment concerned, rather than in an empty space, unrelated to the 3D of the game. Look at Max's character creator. Was it really useful? If I had to listen to you, I would have to say no, because there are other tools for modeling characters. Yet it is a considerable asset. Over time it will evolve and be better. But with your reasoning, we no longer code anything. We are content to provide graphics packs that contain 3D models ... We must not hesitate to make proposals, all kinds of proposals to move forward, and make TGC understand that we expect much more from Max. than an ordinary "Game Maker", barely more powerful than GameGuru. Personally, I expect a lot more! I mean, in the end product. You said that Max gives good tools to make a field. But it's wrong ! The tools offered by Max for editing the terrain date back at least 15 years ago. It's ordinary. I was using Unreal 15 years ago, and he already knew what Max does today. I am obviously convinced that it will evolve, but in the meantime there is absolutely nothing new. To begin with, I will have chosen a Voxel technology for the field. We could have made caves ... Here, we are deprived of that and the land is not destructible. We are already 10 years behind the others. And for your primitives, they are not editable. And Max doesn't know how to texture them. It's totally unnecessary as it is. Whereas if Max knew how to do them, the only limit would be the imagination.

UltraVox001 commented 2 years ago

I remember a long time ago I played with FPS Creator. And I said to the TGC team : "but why can't we go outside? Why can't we build outdoor land? Why are we always locked inside?"

They replied : "We can never go outside! It will never happen!"

Watch today. The situation is completely reversed. Everything happens outside, and hardly anything inside :) If you don't ask, you will never get.

MonkeyFrogStudio commented 2 years ago

I've made you your 3D primitives. Put them in MAX. They can always be there for you now and forever. No need to go outside of MAX. ;) Have all the fun with them you please.

UltraVox001 commented 2 years ago

Thanks, but your primitives are useless, because they are not editable as with an internal CSG technology. I can't do nothing with it. What I'm asking for, beyond the primitives, is the resulting CSG technology. There, it's downright very useful :)

AmenMoses commented 2 years ago

I think you are missing my point, scaling screws up physics so any primitives need to be created on the fly at 1:1 with origin centred correctly for physics use. I have a set made by GraPhiX which I use but I need to put them into a 3D editor and scale them correctly for each application, which is a bit of a faff to say the least. Btw for physics use they don't even need to have textures, but obviously to see where you are placing them in the editor it helps to be able to see them. :)

MonkeyFrogStudio commented 2 years ago

You are really asking for a lot. You are asking for a core, fundamental change to what MAX is. A fundamental change to the editor itself. It's not just asking for the addition of primitives, but asking for the ability to edit those primitives. It's beyond the scope of what GameGuru MAX is intended for, from what I understand. If you want AAA game editing features, then go to Unreal, Unity, or one of the other myriad game creation engines that already feature these things. That's my opinion, of course. And, yes, you had (and have) every right to ask. But based on what they are trying to do with MAX, I just don't really see why they should offer this basic feature ... especially when it's so dead easy to get what you need elsewhere. Even for physics testing. If you need a wheel of a certain size, then you create one. It's a cylinder. It takes a a few seconds to create and export and ... done. If you need them at various sizes, you can easily create a variety of sets, expert them and be done with it. Create once and be done with it. Have them to use always for testing. In fact, just about all the time we've all spend going back and forth could have been spent creating just about whatever you've needed as base primitives for testing this or that.

Granted, those basic primitives can make life easier. And in engines like Unreal, when doing things like greyboxing, they are a lifesaver. But the tools just aren't available in MAX and, from the looks of things, never will be. Heck, there isn't even snapping on the up axis in MAX and probably never will be despite it being asked for a few times. There are so many necessary things we've asked for to get fixed that just aren't being fixed. In principle, I am not against the addition of basic primitives in MAX. I just don't think that TGC would do them justice, to be frank. I think that you would get little better than what I've already provided you - a set of un-editable primitives that you can only scale, rotate, and translated because I highly doubt that they are going to add tools to actually edit vertices, edges, and polygonal faces in MAX.

AmenMoses commented 2 years ago

It's not that big a change really, the EBE makes structures from primitives on the fly, what is being asked for is way less complicated than the EBE!

MonkeyFrogStudio commented 2 years ago

I would beg to differ. But that's neither here nor there. I mean, what it comes down to is we can all agree and disagree all we want, right? From what we've all seen, most likely Lee and Co. are just going to do whatever they want anyway, regardless of the requests. I'm still waiting on basic lighting/shadow issues to be fixed. ;)

AmenMoses commented 2 years ago

Personally I would wish for the ability to create primitives, and texture them on the fly, from within scripts. I would also like to be able to create textures on the fly from within scripts, from images loaded on the fly, images created using sprites or from video files or even created from snapshots taken in game. None of that will happen though.

MonkeyFrogStudio commented 2 years ago

Heh. Sounds like the old days of working with POV-ray. ;)

AmenMoses commented 2 years ago

Lol, when it took all night to render the scene you mean. ;)

MonkeyFrogStudio commented 2 years ago

When it took all night to render a sphere with a single texture on it! :D

UltraVox001 commented 2 years ago

When you ask for a CSG you always have the impression that you are asking for something crazy. But this technology is old, and all the necessary codes are available on the web, in different languages. It's not like reinventing the wheel! Evolved, (an advanced DBPro user : https://www.evolved-software.com) coded his MapScape CSG alone. Josh from Leadwerks Engine coded his CSG alone, and TGC sold it! The program was called "3D World Studio" and today it is included in the Leadwerks engine. In my opinion, it is the Structure Editor that must be changed to become a CSG editor, included in Max. We can leave it its floors, ceilings and walls. But let's give it some CSG editing possibilities. At least give the community the opportunity to code it! If Lee doesn't have time. Since TGC seems closed to the possibility of including Plugins in Max, which is very damaging !

MonkeyFrogStudio commented 2 years ago

CSG is Constructive Solid Geometry. That's different than providing the ability to manipulate vertices, edges, and polygonal faces. CSG and polygons are different types of geometry (just as CSG and polygons and SPLINES and NURBS are different types of 3D geometry). In any case, it's not that this is difficult per se (for a programmer that knows what they are doing). It's that it would be adding yet another system to MAX. It would, in essence, be making MAX, to a limited degree, a 3D editor, capable of manipulating edges, points, and faces of 3D primitives ... something it cannot currently do.

As far as opening MAX up to plugin/addon development - I am ALL open to that! But that's a different request altogether. ;)

UltraVox001 commented 2 years ago

Everything that Max can do now, he did not know how to do before. It is no different for CSG technology and it is not surprising. I remind you that it would be a question of integrating CSG into the Structure Editor. This is already less restrictive than if it had to be integrated directly into the main editing window, as Lee does with recent functions (trees, vegetation, etc.).

For plugins, it's very simple : it will NEVER exist with TGC. Their policy is too dogmatic to relish the particularity of having a hyper active community around a flagship product, as for Unity.

MonkeyFrogStudio commented 2 years ago

CSG, or Constructive Solid Geometry, is primarily used to create complex surfaces via Boolean operators (union, difference, and intersect). Currently, MAX does not feature CSG primitives. It uses polygonal geometry, which is a different sort of geometry. Lee is using the Wicked Engine for MAX and I don't know if Wicked supports CSG geometry, either. Therefore, I don't know if Lee is willing to consider adding CSG geometry to MAX as a result. And, again, why? If you need to do such things (create geometry that you can add to, subtract from, or create intersects from), you can do that in the modeling package of your choice, including the freely available Blender.

UltraVox001 commented 2 years ago

No, CSG does not exist in Wicked, which is why I titled "3D Primitives" and not "CSG". However Wicked can create and edit Voxels and Triangles in real time. I spoke about it with Turanszkij, the creator of Wicked Engine, and it doesn't seem to pose a particular problem. It is mainly (for me anyway) to offer some editable structures in the Structure Editor to come. So as not to get stuck with square corners (for example) and walls systematically of a single height. Also propose simple shapes, which can be modified as little as possible, without entering into structures that are too complex, but which can give an apparent set of complexity (visually). One need only look at the GameGuru forum to understand that many GG users are not advanced users. These are users who, for the most part, have no particular knowledge of 3D. They just want to play games. Evolving the Structure Editor into something more appealing to these users would be a good thing. Those who like to use external tools are free to continue using them. This is not a problem for them, since they do not (or very rarely) use Structure Editor.

MonkeyFrogStudio commented 2 years ago

Great point, actually. And CSG primitives would be perfect for them. It's actually too bad that Lee didn't develop an advanced BSP engine for games (sort of like Josh's Leadworks) as they are really fun to work with, especially when it comes to creating levels. Beats working with the Classic structure editor (imo). There's so many shapes you can create with them and applying textures is a breeze. I could definitely see using CSG for something like this. Sorry I wasn't getting the connection before between CSG and the structure editor. I just never think of the structure editor at all.

UltraVox001 commented 2 years ago

Wicked Engine goes as far as Voxelizing an entire scene, including lights and shadows. It remains to be seen whether a simple voxelized shape would bring something positive to the general idea. If this simple shape is not editable, or if the editing parameters are too poor, then it's not worth the work. It is up to Lee and TGC to do some testing (when the time comes) to determine if this method is viable. But I have no illusions about it (as for others).