Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New building mechanics. #146

Closed
dany-on-demand opened this issue Feb 9, 2015 · 23 comments
Closed

New building mechanics. #146

dany-on-demand opened this issue Feb 9, 2015 · 23 comments

Comments

@dany-on-demand
Copy link
Collaborator

I know you all want to buff destroying. I want too as well, but doing that we must consider the counterweighing game mechanic of building.

We could just build a 3^3 cube, but that messes with expectations of movement.

I categorically oppose click and drag. One of the main reasons is spam.

Here, I propose a list of possible solutions:

  • The obvious one, prefabs. AoS 1.0 failed badly at this. The interface is bulky and hard to use. However I propose we should prototype our own prefab solution like this:
    • Building is the same, you have to place a block. However the block, provided for example you are near it, will "naturally grow" into your prefab. Prefab "selection" could be done with arrow keys. We would reduce the colours to one row, selecting colours with left and right keys, and up/down arrows would select prefabs. selection of prefabs could be done while in the process of "natural growth". This makes it still just as bulky, but somewhat easier to grasp.
    • Alternatively, click and drag would be there except for the "natural growth" mechanic. The non-built blocks could be using a transparent texture using the new VA.
    • Alternatively, after you built the block, if you're still looking at it, scroll the wheel to choose a prefab. "Natural growth" ensues. Interferes with tool selection mechanic
    • Alternatively, all blocks will naturally grow into a wall if you hold the rifle while building, they will grow into 3x3x3 if holding a grenade, grow into stairs if holding the spade.
  • Builder "rank". "slightly controversial"
  • Blocks build a 3x3x3 but player height is elongated to 4 blocks tall.
  • More brainstorming required.
@MajorLunaC
Copy link

Oh, for quicker building, so far I've seen what build-and-shoot has, which allows you to drag-and-select an area to fill in with blocks, but building in the air is a slight issue (need framework first, like a pole). Or what some minecraft clones use, which is selecting a source block and a destination block and then auto-filling in-between. Building more rapidly is also an issue of:

  • Building range: building across a gorge is a nightmare.
  • Building in the air: Selecting a position to build in the air for auto-filling of blocks to that point. It might help to use the mouse or keys to select a position in the x and y plane (as if part of an invisible wall) and have a couple of keys to shift along the z plane/depth. Basically closer to an editor, than manual building. Slow-speed zip-lines (source block + destination block; walking speed) and ropes/ladders could help too, but that might be pushing far beyond building.
  • Block supply: To build something that won't disappear in 1 shot, you have to build large reinforced structures, but you just never seem to have enough blocks. Full reload of blocks should happen at your base flag, but you should also be able to dig faster, especially since the maps seem much bigger (I think). Total inventory supply should be greater to begin with, especially what you start out with. Maybe even being able to drop a backpack full of blocks (ally helping out to supply from base, or dead enemy).
  • Build size: Just changing the size of the number of blocks to build would do wonders. Right now, it's just 1x1x1. Imagine being able to set the build size to a platform 4x4x1. The visual 3D reticule would change to the size and shape accordingly. The change in size would be set by scrolling through preset shapes and sizes, and could also be customized manually in a menu?
  • Thinking it's worthwhile building something: I don't like the concept of AoS and build-and-shoot for destroying blocks, because your amazing tower or bridge that took hours to build can be destroyed in seconds, and there wont be anything left because it all magically disappears. I would at least prefer for the blocks to just fall straight down like sand when they're disconnected, maybe even reconnect at the lowest point of contact, instead of disappearing. This would also make some interesting ceiling-crush traps and floor-fall-away traps.

I'm sure I can come up with more ideas and solutions if you really want, but I think these are just about all of the most practical ones.

EDIT: I was posting this in Vehicles Concept while you were writing this Issue, so much of the same.

@MajorLunaC
Copy link

Also, there is a concept I was saving for a Command & Conquer mod: Construction Box. Which is something like a minecraft Furnace (or similar). You place one on the ground, use it to access a menu which has a list of prefabricated buildings. Select the building you want and insert the blocks it needs to build it. It will build it progressively block by block, some set distance away. Keep supplying blocks and the structure pretty much auto-repairs itself over time. Remove the block to stop auto-repair.

@dany-on-demand
Copy link
Collaborator Author

Construction box - did you read nothing of the original post? This does not belong in a build-to-survive FPS

@LeComm
Copy link

LeComm commented Feb 9, 2015

Prefabs might restrict the creativity part, resulting in everybody building the same, unless one has to create all his prefabs on his own.
The idea of encreasing world and player size sounds good, but opengl would run even slower.
There should be no building "rank" or class, your "class" should be defined by nothing than your own personal skills.

@rakiru
Copy link
Collaborator

rakiru commented Feb 9, 2015

I know you all want to buff destroying. I want too as well, but doing that we must consider the counterweighing game mechanic of building.

You know grease and i have mentioned several times in the past couple of days that we want to make building faster, right? We've discussed prefabs a bunch too.

Click-and-drag could work if implemented well. I think the restriction would have to be that you can only build them, say, 5 long, so you can't simply put them up across the map by holding the mouse button and running over to the other side.

Prefabs could also work, but I would suggest only having basic ones (3x3 wall, 3x3 floor, 5 tall pillar, etc.) so that, as LeComm pointed out, we don't end up with every player building the same thing.

I don't like the idea of restricting the colour selection any more. What would left-right change? The hue? Then we're stuck with all bright colours or all washed out colours. The saturation? Then you're stuck with whatever colours are on the map already for you to pick-block from. I'm not sure about others, but I consider my colours when building, and I wouldn't want that ability taken away just so I could build prefabs.

The natural growth thing could be interesting, but if not done right, I feel like it could be awful. And how would that look to other players? Would they see the semi-transparent outline? If they didn't, then it could look weird, depending on how the "natural growth" happens. It feels weird that they would see it though (the enemy's at least), as they'd basically be seeing the plan someone else is doing.

As for rank, that's up to servers. If we want, we can attach permissions to everything (the system to do so is there), then let server admins do whatever the fuck they want in regards to that.

@MajorLunaC You raise a few good ideas, so I'd like to address each bullet point:

  • Generally would would build under your feet, not across the other side Rather than buffing range though, some of the other ideas may help this anyway.
  • The block place marker already works in the air, so any auto-fill mechanic could probably already be used easily like that.
  • Block supply is an issue. I think perhaps starting with full blocks rather than half as it is now would be a good idea. Alternatively (not as well), your idea of collecting blocks from dead enemies could work, as that gives a second source of getting blocks while not near your base, rather than having to dig for ages. Making digging faster kind of counters your first point though, in that yes, you could get more blocks to build something more substantial, but someone could dig apart your base quicker too.
  • As I would prefer that prefabs were basically just different sized boxes, I think being able to customise your own may be a great idea. They would still be boxes, but you could fit them to suit your play-style or current project better.
  • I think something like this was suggested before, and I personally thought it was a great idea. We would have to make some changes so that being inside blocks doesn't look like a glitch (because it currently is) and gives you suffocation damage over time or something, but It would be far more fun than giant buildings just vanishing into the ground. If we do implement this, we will need to make fixing the current glitch(es) that let you go inside blocks a priority, as you could accidentally injure yourself quite easily.

@LeComm Please stop complaining about OpenGL being slow without basis. You complained about me doing that the other day, so refrain from doing so yourself. BR has already tested varying map sizes and it has very little effect - anything past the fog distance isn't rendered anyway. I just loaded up a gen map at 64x64 and again at 512x512 - I got about a 5% drop in framerate. If we started actually using much bigger maps, we would obviously look to deal with any performance issues they bring.

Edit: @MajorLunaC I forgot about your second comment. No, I don't think any form of auto-repair (or for that matter, unsupervised building) would be a good fit.

@MajorLunaC
Copy link

@dany0 I read every bit of it the first time, and it's very close to your "naturally growing" prefabs, but you put a special block (or machinery or whatever) to do it, and keep doing it. That's pretty much it, although having to keep still while something is building in an FPS is usually fatal. The only other thing I was considering was making it removable only by teammates, and is otherwise indestructible (or at least VERY tough). This would NOT cause problems because it relies on people to keep refilling it with blocks, and it's not like it's truly an offensive weapon anyway. I suppose you can allow enemies to steal blocks out of it. I say an auto-repair-like ability is essential. Some of the gorges are uncrossable without a bridge. To have something reliably constantly rebuild it is essential in an onslaught.

As for anything being slow, iceball is quite efficient and fast for the most part. If you want some model or code for some more efficiency, I recommend Craft (currently VERY stagnant): https://github.com/fogleman/Craft
Techniques associated: http://0fps.net/2013/07/03/ambient-occlusion-for-minecraft-like-worlds/
I do NOT recommend any Minetest or minetest derivatives, as they are ridiculously slow and can hardly even load a singleplayer map properly.

@rakiru
Copy link
Collaborator

rakiru commented Feb 9, 2015

Having to stay somewhat still ensures that you can't simply run as far into enemy lines as possible, then build an instant bunker around yourself. Building should be something you do progressively, except in the more safe areas inside your own territory.

Craft is written using "modern OpenGL", which isn't really an option here. Likely, LeComm would find that even more of an issue to run. As for the ambient occlusion, we already have that effect thanks to the brilliant @melchips.

Something I forgot to bring up - block types. I think block types exist (1.0 uses 0xFF for lights, I believe?). @iamgreaser would have to verify. It may be possible to create stronger blocks, perhaps at the expense of costing more block ammo to place. This would likely require textured blocks to actually be viable in terms of game-play, since you'd probably want to tell them apart, so that may be a long way off, if ever.

@BR-
Copy link
Collaborator

BR- commented Feb 9, 2015

BR has already tested varying map sizes and it has very little effect - anything past the fog distance isn't rendered anyway.

All tests on gen_flat (map size by fog distance is fps):

64x64 128x128 256x256 512x512 1024x1024 2048x2084
64 147 146 141 123 56 17
128 147 144 141 123 54 16
256 146 144 141 123 52 16
512 143 143 141 120 50 16
1024 142 142 141 120 48 19
2048 142 141 141 120 48 18

There is a considerable performance degradation as the maps grow past 512x512, even at low fog ranges. However, fog (which is what I actually tested - you must've misremembered) has very little effect.

EDIT: all of this with frame_limiter 100

@rakiru
Copy link
Collaborator

rakiru commented Feb 9, 2015

I misremembered a bit, yes. The findings do match up to what I said and found though. Whatever happens between 512 and 1024 is obviously an issue that needs sorted however.

@MajorLunaC
Copy link

"simply run as far into enemy lines as possible, then build an instant bunker around yourself." That actually sounds like fun! Although probably just single walls. Sounds like some sort of Alchemy Wars. Blocks and team coordination would be your limits. I guess that should be saved for a nice mod.

Oh, and why does it have to be a textured block? I see the base flag and suitcase to look plenty fancy.

@rakiru
Copy link
Collaborator

rakiru commented Feb 9, 2015

I was incorrect with my previous statements about the map format, so derp herp, ignore that for now.
The reason I'd want a different textured block is that otherwise you don't know it's a reinforced block. I feel like that would be too weird for players, and isn't exactly intuitive. I don't see what the base, flag and suitcase have to do with this. As for running as far as possible then building a base, no, that just ruins the whole point of building. You could simple run, place a base, repeat, and grab the intel that way.

@MajorLunaC
Copy link

Hmmm... maybe I've been playing the shotgun mod too much. Walls seem like butter to a shotgun, maybe even the SMG, easily blowing 3x3 holes in a wall. But yeah, that's a mod.

As for the flag and suitcase, I know they're not solid, but can't the same images be placed around (not necessarily right on) a normal-looking block?

@rakiru
Copy link
Collaborator

rakiru commented Feb 10, 2015

They are a bit, but you eat through your shotty ammo in seconds if you do that, and you'll get shot even quicker.

The base and intel are entities, and thus have models. Blocks on the map aren't that complex.

@LeComm
Copy link

LeComm commented Feb 10, 2015

Probably a shitty idea, but worth a thought.
Maybe group several blocks (or one prefab) into one single object. Hitting one of the blocks would damage the whole object, but it would have accordingly more armor. Would either need prefabs to rebuild once destroyed or a way to repair it. But this could solve the problem of thick walls (where you have to go just where the enemy shoots to be able to repair damage).

@dany-on-demand
Copy link
Collaborator Author

Build gestures maybe? Build a block -> "swipe up" -> "natural growth" of a wall. Swipe left, 3x3x3. Swipe right, 5x1x1 pillar.

I propose the following interface:

  • Build block
  • Look at it
  • Camera locks onto the centre of the block
    https://dl.dropboxusercontent.com/u/18131766/ShareX/2015/02/2015-02-10_09-26-36.png
    • (ie, you need to make a larger movement with your mouse to change your PoV, like moving the mouse cursor 64px, depending on sensitivity of course)
  • While in lock mode, a 16x16 circle appears instead of the crosshair.
  • Clicking and dragging in a direction, in this example upwards, will draw a thick line with colour inverted to the block colour colour behind it over the HUD.
  • Finally when the line grows from inside of the block, a 3d arrow appears.
  • Releasing the mouse from this mode will commit to the prefab building.

@hwgprojects
Copy link

Maybe get some transparency on the block to show it's a "potential" building? Or am I getting the wrong end of the stick?

@iamgreaser
Copy link
Owner

If we're doing translucency, we have API calls for that to actually work in the git repo (0.2.1-1 for translucency, 0.2.1-2 for other really useful calls) - just remember to use client.gfx_depth_mask(false) before, and client.gfx_depth_mask(true) after drawing the translucent stuff. (It has direct access to glBlendFunc(), so you can do additive and multiplicative crap too.)

@dany-on-demand
Copy link
Collaborator Author

Here is how I imagine "natural growth" would make sense:

First row: Block is placed
Second row: Prefab initiated
Third row: Block "growing" out of neighbouring block (I fucked up 2nd - 4th columns, imagine it's growing out there like in the first column)
Fourth row: Block placed, more of the future prefab seen

@rakiru
Copy link
Collaborator

rakiru commented Feb 10, 2015

Gestures sound like a horrible idea.

I don't entirely understand what your last image is meant to be showing.

@dany-on-demand
Copy link
Collaborator Author

Gestures are certainly a better idea than a prefab menu.

Aww, look, they think they are in a competition:

https://www.youtube.com/watch?v=NCLdwKGT914

Soo cute, just like Apple and PC!

@rakiru
Copy link
Collaborator

rakiru commented Feb 10, 2015

Well, as I stated above, I don't like the idea of prefabs being anything more than different sized/shaped boxes anyway.

@iamgreaser
Copy link
Owner

That's a screenshot of the map editor. It's supposed to have a massive library.

In the actual game, your prefab selection is limited enough that you have a grid where you can pick them from.

But of course if you actually play 1.0 you'd probably know that you really only need the platform, tower and wall... or you substitute one for that fucking huge block if you're playing demolition.

@rakiru
Copy link
Collaborator

rakiru commented Feb 21, 2015

Closing as not really suited to an issue tracker. A better place to discuss potential future mechanics is the subreddit: http://www.reddit.com/r/buildandshoot

@rakiru rakiru closed this as completed Feb 21, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants