I have been continuing to work on the code. At first I was focusing on doors and door related systems, and so I've implemented the following:
- Door locking and unlocking with keys
- Thievery style lockpicking by using lockpicks on a door for a length of time
- Door damage, resulting in the door eventually breaking and staying unlocked.
- Door repair with a repair kit.
- Door sound effects
These necessitated implementing a number of basic features, like the ability to use items on a frob target and the ability to hold down the use button to use an item for a period of time.
After that I did a bit of work with Dalai on getting the stealth system working. I'm happy to report that the stealth system is now implemented and players become translucent to invisible in shadows. Still need to make stuff attached to players translucent too, like their weapons.
When working on UnrealScript I try to always keep the following desires in mind: Cheat prevention, low-bandwidth consumption and client-side responsiveness.
Cheat prevention is mostly a matter of ensuring that the server is boss and that anything the client sends is checked for sanity. An example of this is the frob command - the server checks to ensure that what the client is frobbing is within frob range, and not on the other side of the world.
Keeping bandwidth usage low is a matter of ensuring data is only exchanged where necessary and making sure that data is kept to a reasonable size. Avoiding string replication where possible is good. Having information baked within a map so clients always have it is good too.
Client-side responsiveness is a bit of illusion, but is generally achieved by having the client assume something will work and play sounds and display effects immediately rather than waiting for a message to be received by the server and the result to be returned. An example is having lockpicks start making their noise immediately on the client, rather than waiting for the server to create the lockpicking noise.
- Door locking and unlocking with keys
- Thievery style lockpicking by using lockpicks on a door for a length of time
- Door damage, resulting in the door eventually breaking and staying unlocked.
- Door repair with a repair kit.
- Door sound effects
These necessitated implementing a number of basic features, like the ability to use items on a frob target and the ability to hold down the use button to use an item for a period of time.
After that I did a bit of work with Dalai on getting the stealth system working. I'm happy to report that the stealth system is now implemented and players become translucent to invisible in shadows. Still need to make stuff attached to players translucent too, like their weapons.
When working on UnrealScript I try to always keep the following desires in mind: Cheat prevention, low-bandwidth consumption and client-side responsiveness.
Cheat prevention is mostly a matter of ensuring that the server is boss and that anything the client sends is checked for sanity. An example of this is the frob command - the server checks to ensure that what the client is frobbing is within frob range, and not on the other side of the world.
Keeping bandwidth usage low is a matter of ensuring data is only exchanged where necessary and making sure that data is kept to a reasonable size. Avoiding string replication where possible is good. Having information baked within a map so clients always have it is good too.
Client-side responsiveness is a bit of illusion, but is generally achieved by having the client assume something will work and play sounds and display effects immediately rather than waiting for a message to be received by the server and the result to be returned. An example is having lockpicks start making their noise immediately on the client, rather than waiting for the server to create the lockpicking noise.
Comment