lazerus
Team: Rank: Director Main: Lazerus Level: 2345 Joined: Thu Jul 01, 2010 10:58 pm Posts: 108 Location: Milky Way, Sol, Earth, Australia.
|
Software Efficiency
Software Efficiency
The great thing about writing computer software is that you can fundamentally get it to do anything you want it to do provided you understand what your computer and its sophisticated architecture is capable of achieving.
Initially you write your programming linguistics to perform what you would think you'd have your computer do, logic incarnate as best as you can imagine it, defined by the manner in which you yourself would have its architecture inact, best achieved by routine action that makes tasks successively repetative as to reach your goal as quickly as possible.
The most intuition is achieved when a master programs in a manner that teaches as he goes with remarks all the way that elude to the technicalities and summates their performances so the developer that comes along can understand how its done and how to further integrate neuonces into the greater nature of that which is functioning before him.
Modern computer processors these days are so powerful that one could be forgiven for not realising the need to make programming as efficient as possible, not just by measure of code performance but by action of intuitive data proficiency!
If you turn your programming into efficient machine-code mnemonics, your most of the way forward for the pleasure of the users experience, yet the need for protocol handling and data transport that is precisely minimalist due greater understanding is the final step to a smooth clientell for gameplay.
Striving to make things work as fast as possible makes for greater time-share for all the other things the user might want to accomplish amidst his or her favourite persuits. Making sure that the least amount of data back and forth between a server and its clients means that so many more can participate because the client predicts what the server is managing and the server itself relys on the clients understanding of what the server is handling!
It needs to be said that any and all server and client relationships these days with the modern internet need to focus on a premise where the client does all it can to take the load off of the server, and thus the server need only instruct, not inform, the client for all facets of gameplay.
If the client withholds the software mechanics then the server need only instruct, as apposed to total information, which would make for a dumb client and an over active server, then you experience a situation where the server is boss, but the client is architect!
All too often now days you see subordinate clients that are far from outperforming their greater responsibilities and you have servers that are over worked trying to inform their clients of every activity beyond the servers innate responsibilities.
Efficiency is the key to greater performance and more cost-effective gameplay for the end-user!
A server doesnt have to do everything that the client could be capable of!
The data communications between server and client dont need to be all encompassing, they only need to be informative and retrospect!
Turning programming into code, making client responsible instead of lame, cureing server of its headaches and making client responsible for its user experience is how you achieve truely masterful performance for the player, and also how you avoid an over-heated internet connection which is commonly understood as lag!
Sending a linguistic String of text to client takes time to interpret and loads down your connection compared to a succinct stream of compact data! Having client expect the data stream means server is considering much less per user and sending and thus receiving much less per player, so the lag for the user is at its least, like past efficiencies, instead of at its worst with most recent, less refined, communications!
Use a mathmatical, functional instruction of Arc, instead of communicating every point of movement, for example, and have client exact such vector instead of server concentrating the communicated instruction apon every point of that movement.
Software Efficiency can be more successfull than you may first think, its just a matter of considering what can be done better and faster, sharing the duty between client and sever, remembering that sometimes sequential performance can trump routine activity, yet for the most part functional routine makes for more adequacy!
True Efficiency is achieved when the programming is full of coded routines that are comparatively unintelligable, where the new developer has to go back to original structure charts and then consider the handbooks on how to compact such functionality for best architectural performance.
PS: As usuall, besides an effort to proof-read, there are spelling errors and conflicts between American and Australian English, not to mention colloquialisms that are no doubt borne of diallect! Apologies, I've had a few to drink tonight. ;-}
_________________ There wouldn't be a Knight if it wasn't for the Black-Smith!
|