- Joined
- Jul 10, 2007
- Messages
- 6,306
A long time ago I was planning on making a system that would be like OpenGL and would draw and render the objects in-game using JASS. In this way you could have full control of each model from fractioning off very specific pieces to shaving pieces of wood to deformations, collision detection, whatever.
Well, I think something like OpenGL that allowed people to do this would be a great feature to add into RtC. In this way people would have very small models we'll call particles for now (blocks normally) to build up the image. From here they can use textures to texture the different blocks, skeletons to place the blocks along, and whatever. From here we could do things like reflections, deformations (by changing the skeleton around or the block formations on the skeleton), fractions (spitting blocks off of the skeleton or breaking the skeleton up), and well, depending on how detailed it is, you could have things from breaking very small chips of stone off of a rock to full dust particle effects from moving around on the ground.
I think that this would be an incredible system to add into wc3.
Suggestion #2:
I know that you've already improved the game cache, but I think it still needs improvement. People need to create their own data structures in the game cache, so the game cache should take any amount of dimensions for data. Another possible idea would be to create something like hash tables for JASS and allow people to store entire tables into a single game cache entry and from there read the file and withdraw it (similar to PERL).
Suggestion #3:
Full 3D gridding capabilities. Currently, there are only rects (2D grids). I was going to create a system that allowed a player to define a 3D grid and place propeties within each cell of the grid. This would allow for radically detailed terrain by painting each cell wall and creating shadow walls (like angling the cell wall) to create terrain deformations. It would also allow players to create a skeleton for their environments (the grids) and well, add special properties, textures, and so on to the cells to create buildings, and I don't know what else. This would give people a whole new level of power for warcraft 3. Instead of creating a model and importing it into the map or whatever, people would just create textures used to wrap around different sized particle models (based on the level of detail you are going for). Warcraft 3 already this this built into it to a very small degree, but it's possible to enhance it a lot. I know that this will be pure JASS, but : ). From here, you can use these particles to create the shadow walls (walls that aren't really there, simple particles, and are based on the positioning of a cell's border) and whatever ; D. In essence, full dynamic terrain that can change in any way in real-time.
Object Data Structures:
I know that JASS newgen adds data structure into the language, but linking it up with various objects and so on requires people to design systems. It should really be built into Warcraft 3. Everything should be able to take a full data structure. I know you can use an in-game pointer to a data structure, but then we start getting into creating systems. Most of the time, when someone creates a system, they are creating something that should already be a part of the language.
Vector Forces:
This will enhance the graphics portion and allow people to manipulate their data structure based on the forces about. Just create something for collision detection and vectors (full 360 degrees). The rest can be done with a physics engine. I've seen systems for vectors, but these would be better as natives.
More of an extended math API:
Calculus 1 through 4? These would be very useful in something like the openGL expansion I mentioned above.
Networking:
Making a process to allow someone to host an instance of a map at a constant rate and keep it in the tray or something (not hosting through wc3). From here they can go play without disrupting their hosting. This would be pretty useful for keeping users connected even when the host is playing and loading up different maps. The map that's being hosted by the process will still be using functions and what not. Maybe even just creating an application to set up a server that doesn't use any JASS but just takes instructions and stores data. Maybe it's own script language or straight C++?
These are just some ideas : ).
Please tell me if I'm expecting too much : p. I know I can do all of this in JASS and some of it has alraedy been done in JASS, but custom natives would be *much* better.
Tell me what you guys think : D
Please feel free to reply with comments on what you think of these suggestions : )
Well, I think something like OpenGL that allowed people to do this would be a great feature to add into RtC. In this way people would have very small models we'll call particles for now (blocks normally) to build up the image. From here they can use textures to texture the different blocks, skeletons to place the blocks along, and whatever. From here we could do things like reflections, deformations (by changing the skeleton around or the block formations on the skeleton), fractions (spitting blocks off of the skeleton or breaking the skeleton up), and well, depending on how detailed it is, you could have things from breaking very small chips of stone off of a rock to full dust particle effects from moving around on the ground.
I think that this would be an incredible system to add into wc3.
Suggestion #2:
I know that you've already improved the game cache, but I think it still needs improvement. People need to create their own data structures in the game cache, so the game cache should take any amount of dimensions for data. Another possible idea would be to create something like hash tables for JASS and allow people to store entire tables into a single game cache entry and from there read the file and withdraw it (similar to PERL).
Suggestion #3:
Full 3D gridding capabilities. Currently, there are only rects (2D grids). I was going to create a system that allowed a player to define a 3D grid and place propeties within each cell of the grid. This would allow for radically detailed terrain by painting each cell wall and creating shadow walls (like angling the cell wall) to create terrain deformations. It would also allow players to create a skeleton for their environments (the grids) and well, add special properties, textures, and so on to the cells to create buildings, and I don't know what else. This would give people a whole new level of power for warcraft 3. Instead of creating a model and importing it into the map or whatever, people would just create textures used to wrap around different sized particle models (based on the level of detail you are going for). Warcraft 3 already this this built into it to a very small degree, but it's possible to enhance it a lot. I know that this will be pure JASS, but : ). From here, you can use these particles to create the shadow walls (walls that aren't really there, simple particles, and are based on the positioning of a cell's border) and whatever ; D. In essence, full dynamic terrain that can change in any way in real-time.
Object Data Structures:
I know that JASS newgen adds data structure into the language, but linking it up with various objects and so on requires people to design systems. It should really be built into Warcraft 3. Everything should be able to take a full data structure. I know you can use an in-game pointer to a data structure, but then we start getting into creating systems. Most of the time, when someone creates a system, they are creating something that should already be a part of the language.
Vector Forces:
This will enhance the graphics portion and allow people to manipulate their data structure based on the forces about. Just create something for collision detection and vectors (full 360 degrees). The rest can be done with a physics engine. I've seen systems for vectors, but these would be better as natives.
More of an extended math API:
Calculus 1 through 4? These would be very useful in something like the openGL expansion I mentioned above.
Networking:
Making a process to allow someone to host an instance of a map at a constant rate and keep it in the tray or something (not hosting through wc3). From here they can go play without disrupting their hosting. This would be pretty useful for keeping users connected even when the host is playing and loading up different maps. The map that's being hosted by the process will still be using functions and what not. Maybe even just creating an application to set up a server that doesn't use any JASS but just takes instructions and stores data. Maybe it's own script language or straight C++?
These are just some ideas : ).
Please tell me if I'm expecting too much : p. I know I can do all of this in JASS and some of it has alraedy been done in JASS, but custom natives would be *much* better.
Tell me what you guys think : D
Please feel free to reply with comments on what you think of these suggestions : )
Last edited: