As one or two of you might know, I'm working on a Star Trek-like teleporters addon I'll be calling "Beam Me Up!". I'm at the phase where I've got a lot of the core mechanics decided, but there's still room for a little tweaking and I'm not sure which people would like to play more. So I'm asking you guys to give me your thoughts on the matter, hopefully giving me a clear direction.
Before the questions, though, let me explain the core mechanics already in place:
- Firstly, we have the transporters themselves, which can lock onto a set of coordinates and transport any blocks or entities from those coordinates to themselves, or the other way around. Each transporter operates on a frequency, which will become important in a moment.
- Secondly, we have ways of reducing a transporter's effective signal in an area, using either (powered) interdictor blocks (which can be configured to allow one frequency un-dampened) or interdictor grenades, which temporarily dampen all transporter signals in an area.
- Thirdly, we can boost the transporter signal by reducing the required signal to lock onto an area, using beacons which are charged with EUs in an MFE or MFSU and will consume that charge when placed on the ground. The beacons only affect the one block they're standing in and its immediate neighbours, and cannot be teleported while powered. On the other hand, they don't completely occupy the block they're in (they're like torches) so you can stand inside them. Beacons on the ground can be recharged using an energy crystal or lapotron crystal, and their charge lasts about five minutes.
These are the absolute core mechanics that are unlikely to change. Building onto these, we have these derived mechanics and design decisions:
- Two or more transporters on the same frequency will interfere with each other, making it difficult to acquire locks on any given coordinates. The interference is relative to their proximity to each other, so a transporter far enough away won't interfere at all. But wait, there's more:
- Two transporters on the same frequency will boost each other when transporting to each other by halving the effective distance between them. One can assume what's happening is one transporter sends to a halfway point, then the other transporter receives from that halfway point, all of this happening too fast to see. To do this, both transporters use power both for maintaining the target lock and for the actual teleport (Obvious corollary: if one transporter runs out of power, they're not working in tandem anymore).
- Interdictors' effectiveness stacks the more of them are covering an area -- the first interdictor halves the effective signal for any teleport, the second reduces the resulting signal to 2/5ths, the third to 3/8ths of the previous result, and the last to 1/3rd of the result of the other three reductions. An area covered by four interdictors is completely immune to teleporting (possibly barring two teleporters working in tandem, but that isn't a worry).
- However, this increased effectiveness comes at the cost of more EU/t consumed when more than one interdictor is dampening a target lock. The cost, however, does not increase beyond the fourth interdictor, given that the interdiction effectiveness also does not.
- Interdictors also consume EU/t while idling -- presumably, they're scanning frequencies within their range for transport locking attempts. This is a constant consumption that can be turned off only by disabling the interdictor itself (by applying a redstone signal, or using ComputerCraft).
- Beacons have a purely portable version that can be carried in your inventory (on your hotbar, specifically) which is a less effective signal booster than a placed beacon, but allows a transporter on the same frequency to lock onto your coordinates without needing to have them passed in. This is designed to work with wireless redstone to allow a remote teleporter that you wish to have retrieve you to do so.
I'm currently considering the configuration aspect of the mod, and ideally I want to have all the base values be configurable by anyone who understands the inner mechanics. So let's discuss the finely-detailed mechanics of how transporters work:
- Acquiring a lock on a remote set of coordinates requires some "signal" based on the 3-dimensional Manhattan distance to that block (abs(targetX - xCoord) + abs(targetY - yCoord) + abs(targetZ - zCoord)). Currently, this is set to be 1 signal required for every block of distance. A beacon can reduce this by a configurable percentage (currently 20%), but only if the lock is being acquired on the beacon block or its six neighbours.
- Transporters have a base signal value (currently 500) that can be boosted by a percentage of the required signal for a given locking attempt (currently set to 20% of that value), using up to a configurable amount of EU/t (currently 500) to provide the boost. Boosting works on a logarithmic scale, so the more EU/t you're using to boost, the less the next EU/t you invest will be worth. Interdictors reduce this value by the previously-detailed method.
- Transporter base signal, reduced by (distance * signal required per block), is also used to decide the strength of the interference between multiple transporters on the same frequency. This currently translates to transporters more than 500 blocks away from each other having no interference at all.
- When a transport lock is acquired, it has a signal strength which is the ratio of effective signal / required signal, modified by interdictors, beacons, etc.. The signal strength determines the effect of the teleport on the item being teleported (all of the thresholds being configurable):
- A signal between 90% and 100% means a guaranteed perfect teleport.
- Between 50% and 90%, teleporting a player or mob has a chance of giving them a bad potion effect, like nausea or blindness; teleporting a block with inventory has a chance of losing items from that inventory as they "never rematerialize".
- Between 10% and 50%, there is a chance of the teleport target shifting by up to 16 blocks in each of the six directions, and (this is very important) teleporting does not ensure that the destination is survivable! It's perfectly possible to get teleported into stone if your target lock was less than 50%; blocks trying to teleport into other blocks will just be bounced back, though, as an anti-griefing measure.
- Under 10%, there is a chance of the teleport failing completely and never rematerializing you, if this happens you will have been killed by "a transporter malfunction". You can also lose blocks this way, so if the signal strength is that low, you *really* don't want to teleport anything.
- A lock under 10% signal strength held for one second will be lost, sending its transporter into a cooldown lasting 10 seconds (again, configurable), during which the transporter cannot acquire new locks. If the lock is broken before the one second timeout, the cooldown is proportionally reduced. If the signal strength rises above 10%, the cooldown is completely mitigated.
- Transport lock signal strength can naturally vary by up to 20% (yes... configurable) of its normal value (e.g. a 10% lock can vary between 8% and 12%). This uses a Gaussian distribution, so it's more likely to remain near the real value, but can spike up or down reasonably far.
- One final bit of internal mechanics is the range at which the interdictor can affect a teleport lock, which is a cube with an odd number of blocks per side, configurable by setting how far away from the interdictor it is still effective (currently 8 blocks, giving a 17x17x17 cube).
Wow, that's a lot of information. I didn't really realize how much of it there is, as I just built it up over the last couple of days. If you got this far, thank you.
So now the feedback requests: I will carefully consider requests to change any of the mechanics involved, within reason. I had one specific question, but in writing this post I went over some of my calculations again and came to a conclusion, so it's basically a free-for-all. What do you like? What don't you like? Most importantly, what do you think will make for a better experience, and what do you think will make for a terrible experience?