in-game mapping?
I've been thinking about it for ages... what if it was possible to build a map while in-game like the base builder mod? You choose a block type (square, hexagon, 8-face cylinder and so on) and size (you could just modify it with a menu), you would place it where you would like to and move it around. Then make some walls and teleports. The plugin would save all the stuff to a .rmf file which you could load on Hammer to texturize the map and customize it. Imagine how cool would it be if it was possible. I know it can sound stupid but I've always thought about it since the first time I played base builder.
Unity has BSP mapping mod, its allow you mapping geometry *ingame*, switch (like Alt-Tab) between redactor view and player view with physics. Also unreal engine has smth like this.
For Goldscr based games like counter-strike its possible realize via custom injects ( vac unsafe ), but need already compiled empty room.
P.S. *map format only is compatible for that idea.
P.S.S. Idea nice, I thought about that too for a long time, but who will pay for a programming job?
I made a simple plugin to test out this idea.
source: https://gist.github.com/skyrim/ea9fc879a0570c1549ab15f31876ad0a
amxx: https://ufile.io/v9vy0
demo: https://ufile.io/8saq6 (if you only want to see how it looks)
Commands (I recommend binding them):
- say /createblock - creates an entity (only func_wall, other types like triggers and such could be added but I couldn't be bothered)
- say /movemode - changes to move mode (default)
- say /rotatemode - changes to rotation mode
- +use (E button usually)
Aim at an entity and hold +use to move the block or rotate the model of the entity (depending on the current mode)
While holding +use, hold left mouse button to push or right mouse button to pull the entity
More features could be added.
Here's pseudo code of RMF file format I made https://pastebin.com/ggVrDH3Q while looking at code I found here https://github.com/LogicAndTrick/sledge/blob/feature/simplification-project/Sledge.BspEditor/Providers/RmfBspSourceProvider.cs
It would be possible to get all blocks created in game and make an RMF file which could then be loaded in Hammer.
BUT,
Engine limitations:
- You must use a model to visualize the block.
- Model can be rotated, but the bounding box of the block can't be rotated.
- Model can't be scaled, but the bounding box of the block can be scaled.
Workaround could be to create a func_wall in editor with any shape you want and then move it in game.
You can test this using the plugin above. Open a map with a func_wall entity and you'll be able to move it.
In the end, the idea sounds good but it's not viable.
Will not work correctly because of radiosity (lights) they are straight calculated into the bsp from the radiosity process.
- Model can be rotated, but the bounding box of the block can't be rotated.
It can if you specify it in model's properties. You can make hitboxes responsible for collision.
Would be fun to be able to test the jumps before actually compiling the map. This would have saved me so much time years ago :D
i don't see the point, and i doubt anyone will waste their time developing something like this.
If you compile the map with vis / rad set on "-fast" the map compiles in seconds. If the map is too large you can also use cordon tool in hammer to compile just a small segment of the map...
There are some amx plugins that can do similar stuff to what you want, like block maker
Had a little bit more fun with making this plugin. Changed block rendering, added scaling, removed rotation and added a menu (say /edmenu). Gonna leave it here if anyone finds it useful https://ufile.io/u8eef
Please log in to post replies.