Back
A long time ago I started work on a space system, at first I was just gonna make a starship that I could fly around the game, then I was gonna add shuttles, and then a starbase to park it in, I was even thinking of a very small space area, that might link all the space things together, like satellites, the moon, etc.
Anyway, I never got very much work done on it, for one reason or another, either the queue cost might be too high, or it was too much work, or I just didn't feel like working on it. Anyway, I've decided I'm gonna try one more time to get to work on it.
I started it with star trek in mind at first, like most people do, but recently I've decided to go more in the direction of Stargate, with perhaps a little Star Trek thrown in here or there. I decided this for a couple reasons, for one it hasn't been done before, and I think it might make the coding a little easier perhaps. For example a ring transporter could detect whether there was a drop @lock. I didn't want to make just one more star trek based area it's just been overdone, this will ideally be both an area /and/ a vehicle(Although I think I personnally am just gonna work on the vehicle part, because I'm not a very good @descer).
If anybody has any suggestions for a cool piece of code I haven't listed, by all means let me know.
Anyway, in case you're interested here's a rough outline of some of the stuff I'm hoping to do code wise, I'm probably forgetting a lot of details.
- There is an unfortunate and virtually unavoidable problem with the bridge controls, the commands have a two second delay before executing, some things I might be able to code around it, but others I'll just have to deal with it.
- Of course it'll need to be able to fly through exits. (Manuevering thrusters?/Impulse?)
- Autopilot and course plotting using shortestpath()
- Warp Drive(Allow it to travel quickly through multiple rooms, most likely in conjunction with autopilot)
- Hyper Drive(@teleport) Possibly add aliases for locations.
Active & Passive Sensors. In one mode it'll just use @listen, in the other it'll use a softcoded scan command, this'll be useful in blocking spam and reducing the queue cost it takes to run.
- Maybe instead have two variables, autolook and sensors, autolook will determine whether it shows an autolook when you move and whether it's normal or the softcoded version. While sensors will determine what else is shown, Only allowed things, or everything that isn't blocked?
- Speaking of spam, Spam shielding. Possibly incorporating PageFilter code.
- Possibly spam weapons.
- Remote Probes.
- Maybe cloak.
- Beam Transporter (normal transporter)
- Transporter systems won't really be able to transport anybody up (without them typing a command) unless they are on property I control, or maybe if they have a compin that's @chowned and @set TRUST, which would be able to @tel them to a jump_ok room, assuming the room they were in wasn't NO_TEL.
- I think the number one problems with my transporter systems will be NO_TEL and drop @locks. Luckily neither are very wide spread. In fact drop @locks might interfere with shuttle launch as well as drones, probes, and anything else using the avatar to come into the room.
- Ring Transporter system?
- These are now going to just be a variation of the above, with some different messages, but working exactly the same, except more limited. Perhaps if I create a ring system that only the rings can go to?
This doesn't seem necessary any more. For transporting down, drop a 'rings' object, which drops the people.
This system will allow me to detect a drop @lock, by detecting whether the rings successfully dropped.
- This might not work so well for transporting up, which is why I have both ring and beam transporters.
- Puddle Jumpers(Shuttles).
- Compins/Combadges/Communicators(Whatever I'll end up calling em.) These'll be used for not only communication, but remote commands, and maybe to help with the transporter system.(To transport a crew member without them typing a command?)
- Incorporate Explorer Assistant, and Telematic Code(For aliases and error checking).
- Intercom?
- Alerts?
- Show room desc on viewscreen?
- M.A.L.P.s and A.R.V.s? (If so it's just one /more/ thing to code, so I'll hold off on it till at least one of the other things is done.)
- Stargates? (If so it's just one /more/ thing to code, so I'll hold off on it till at least one of the other things is done.)
- A kind of periscope object?(Hopefully with a better name), that can be used to 'look' as normal when in passive mode?
- Maybe also another object for remote look?(LRS?)
- ?Armory? (I'd have to code hand-held weapons.)
- ?Bombs/Mines from #5000? Would require authorization code. Spam weapons would be cheaper.
- ?Automated bomb containment system?
- ?Tractor Beam? This would either pick objects up, or could be used to make jumpers follow the ship maybe?
- Possibly have a cargo bay, and it can load and unload using a cargo lift.
- This would also be interfered with by drop @locks.
- Rank system, to give players different ranks and thus different levels of access.
- Automatic Shutdown of almost all systems if the owners money drops below a preset amount.
- Needless to say this would all be less difficult with wizard powers, but that's not gonna happen, so I'm gonna have to get creative.
- The main thing that makes it so difficult is that I have to successfully integrate multiple objects, I have to integrate the avatar, the jumpers, and the jumper bay, as well as the jumper and the space station, the ring system has to integrate the rings, the avatar, and the ring room, the compins have to integrate with all sort of stuff, the ship itself is an integration of objects, between the viewscreen, the avatar, the controls, etc.
- Seperate Comm System with two forms of communication, frequency which is the simpler, and hailing, which would allow point to point communication through handshaking.
- Perhaps a central space object which holds functions to handle space information such as dockable shuttles, and valid space objects, and maybe that rank thing I was considering.
Key:
(EC) = Error Checking(Just about all my code is gonna need it)
(??) = I really don't know if I'm gonna put this in or not.
(START) = Started.
(1/4) = Quarter Done.
(1/2) = Half done.
(3/4) = 3 Quarters Done.
(DONE) = Done.
(DONE-EC) = Done, except for error checking.
Ship To Do:
- Rooms
- (DONE) Bridge - Command center for the ship.
- (DONE) Jumper Bay - Place to store puddle jumpers.
- (DONE) Transporter Room - Place to beam/ring up/down to/from.
- (DONE) Airlocks - Place for airlocks to link to.
- (??) Engineering - Place to store important objects(I seem to be creating a lot, I got parents out the wazoo)
- (??) Cargo Bay - A place to store cargo with a cargo lift
- Transporters
- (DONE) Basic Beam Up/Down (EC)
- (DONE) Basic Ring Up/Down (EC)
- Something to control who can transport up. (EC)
- (??) Disable when shields up (EC)
- Something to simplify transport between rooms in the ship. (EC)
- Alias support (EC)
- (??) Perhaps allow to beam to distant JUMP_OK rooms
- Beam up/down people without them typing a command
- ?Advanced Functions?(Anything I haven't thought of yet?)
- Flight Controls
- (DONE) Basic exit navigation(Sublight drives)
- (DONE) Basic Command (EC)
- Autopilot
- (DONE) Course plotting with shortestpath() (EC)
- (DONE-EC) Loop to run autopilot (EC)
- Possibly some way to manually plot a course, or at least specify a starting point like a JUMP_OK room.
- (DONE-EC) Warp Drive(Rapid room navigation)
- (DONE) Disable sensors while in warp to reduce spam.
- (DONE) Change movement messages to show we're in warp.
- Hyper Drive(@tel)
- (DONE) Basic Command (EC)
- Alias support (EC)
- (??) Enter/Leave
I don't know if I'm gonna add these, because a starship entering anything doesn't make much sense. Unless it's a planet or a starbase.
- Sensors
- (DONE-EC) Basic look (EC)
- (DONE) Use softcoded look while in passive mode.
- Forget the above
- (DONE-EC) Look <Object> (EC)
- (DONE) Use periscope object
- Make periscope object obsolete
- (DONE-EC) Long Range Scan?(Look exit dest/player location) (EC)
- (DONE) Use periscope object
- Make periscope object obsolete
- (DONE-EC) +View Commands (EC)
- Adjust listen @lock to allow +view even when in passive mode.
Modes: Active/Passive/Off. (EC)
MODE 1 - Uses @listen and is thus the most laggy and expensive queue cost wise, but sees everything the avatar does.
MODE 2 - @listen is disabled and it uses a softcoded function to emulate look, shows a little more information in terms of dbrefs and flags, also uses Explorer Assistant code to color exits. However, it can't show when somebody/something in the room says something or enters/leaves(I might be able to code around the enter/leave thing but it'd be complicated.) basically it can't show what's going on in the room where the avatar is.
- MODE 3 - Similar to MODE 2 except automatic look when moving is disabled, this mode is meant for use by the autopilot to prevent unnecessary spam when moving.
Command to switch modes. (EC)
- Two things for sensors: Autolook & Sensors
(DONE) Autolook. This determines what displays when the ship moves. Either:
- Normal autolook
- Softcoded autolook(with normal autolook filtered out)
- No autolook(For when moving at warp and when we're in a hurry.)
Sensors. This determines what shows when we're standing still. Either:
- Default to block(Passive?) - Only allow stuff that's specifically allowed.
- Default to allow(Active?) - Only block stuff that's specifically blocked.
Those two should be plenty to reduce queue cost and spam.
- Anti-Spam code
- Scan command. Get more details on different types of objects.
- Room: Name, DBref, flags, owner, drop-to?, Parent info, description?
- Exits: Fullname, DBref, flags, owner, source, destination, description?, Parent info?
- Things: Name, DBref, flags, owner, parent info?, description?
- Players: Name, DBref, flags, parent info?, description?, residence?, etc.
- ?Advanced Sensor commands? - Whatever those may be.
- Airlocks:
- (DONE-EC) Linking code. Need to improve the error checking code.
- Boarding Code. Need to add a code to control what can connect their airlocks.
- (DONE-EC) Unlinking Code. Need to add some better error checking.
- Turbolift: Right now it's just a hub with multiple exits.
- Puddle Jumpers: Listed seperately
- (DONE) Dock/Launch support
- Adjust system to not require a command on the room
- Other
- Shields (EC)
- (??) Cloak (EC)
- (DONE) Explorer Assistant code integration
- Telematic code integration (Keep track of hyper drive destinations (EC)). (EC)
- Compins (EC)
- Intercom (EC)
- Red/Yellow/Green alert, etc (EC)
- (??) Cargo Bay
- Inter-Ship Communications (EC)
- (??) Probes
- (??) Weapons
- Rank System
Puddle Jumper To Do:
- Movement Commands
- Basic Exit Navigation(Sublight drive)
- (DONE-EC) Basic Command (EC)
- (DONE-EC?) Dock/Launch (EC)
- Hyperdrive/Jumpdrive?(@tel) (EC)
Should a puddle jumper have this?
- (??) Enter/Leave (I don't know if I'll add these.)
- Sensors
- (DONE-EC) Basic look command (EC)
- (DONE-EC) Look <Object> (EC)
- (DONE-EC) Long Range Scan?(Look exit dest) (EC)
- Active/Passive Sensors: Partially implemented. (EC)
- +views (EC)
- Anti-Spam (EC)
- Command to switch (EC)
- Auto-Switch to passive sensors. (EC)
- Misc
- (DONE) Hatch Open/Close (EC)
- (DONE) Land/Takeoff (EC)
- (DONE) Loudspeaker (AUDIBLE flag) (EC)
- Inter-Ship Communications? (EC)
- Remote Control?? (EC)
- (DONE) Cloak (EC)
- E.A. code integration? (EC)
- (??) OPAQUE flag switch (EC)
- (??) Tinted windows (EC)
- Maybe make it show softcoded look when tinted windows?
- (??) Light (EC)