Odamex is a free, cross-platform (Mac, Windows, Linux) modification of the Doom engine that allows players to easily join servers dedicated to playing Doom online. The goal of Odamex is to add enhancements to Doom while still retaining that "classic Doom feel" we all know and love about the original game.

Odamex is free software, however a copy of Doom or Doom II is recommended to play it. If you do not own Doom, it can be purchased on Steam. Other alternatives include using FreeDoom, or the Shareware version of Doom.

Latest version: 0.7.0

Released: March 27, 2014 :: Updated: March 29, 2014
 Source Package  OR 

Events & Tournaments

Cheryl Wilms Inspirepreneur and Law of Attraction Student
Cheryl Wilms Inspirepreneur and Loa University student
Cheryl is dedicated to demonstrating women exactly how make use of the law of attraction into their daily lives also to support other folks to open up themselves around discovering the actual amazing power all of us keep inside of. She is also the endorse of good and also motivational dwelling. Cheryl may be always been alert to the girl enthusiasm to supply insights to others in order to connect using their interior electrical power and are living a lifestyle many of us wish. Subsequently she has been learning as well as emersing their self using everything she will find the girl hands on together with the topic for the last Many years. Thoughts are items! And robust issues as well, while mixed with definiteness associated with purpose, and burning up need, may be changed in to wealth.Inch Napolean Hill
"We aren't human beings over a spiritual quest. Were religious beings with a individual voyage. "Stephen Covey
"Abundance just isn't one thing we acquire. It's some thing we tune directly into. In .  Wayne Dyer
"Our excellent function within this life is to help you other individuals. And if you simply can't enable them to, a minimum of NFL JERSEYS SHOP FOR SALE do not harm these. " Dalai Lama
"Change is not going to appear as we watch for somebody else or another time. We are the methods we have been waiting for. We have been the progres that people find. Inches Barack Obama
"Courage is the central of all of the benefits, because without braveness you can not exercise another virtue constantly. It is possible to practice virtually any advantage occasionally, but nothing at all consistently with no braveness. " She Angelou
相关的主题文章:

Changelog

5103 - Dr_sean
2014-09-02
-Rename the MemoryPool class to Pool and make it templated. The initial size of the pool is now specifies the number of objects to allocate rather than the availible memory in bytes to allocate.
5102 - Russellrice
2014-08-25
- Allow custom master servers from the config file (there is no UI option to edit this)- Reword the usage of the /m command line switch, that it overrides all master servers (default and custom)- Clea...

Bug Tracker

2014-08-29 13:32:06
lets make it official

News & Updates

Network-related Client CVARs
Network-related Client CVARs

Note that these apply to Odamex 0.7 and may change in future versions!

rate ("Bandwidth" in the Network Options menu)
Sets the maximum bandwidth the client can receive, measured in kilobytes per second. The default value is 200, though setting it higher to 750 will allow for faster in-game downloading if the server allows it.

cl_unlag ("Adjust weapons for lag" in the Network Options menu)
Allows the client to enable or disable backwards reconciliation ("unlagged") for hitscan weapons. Enabled by default, this setting allows a player to aim directly at enemies when firing hitscan weapons such as the shotgun and chaingun.

It works as follows:
Every gametic (there are 35 per second), the server records the position of every player.When the server sees that a player with round-trip latency of X milliseconds pressed the fire button, it temporarily moves all other players to the position they were in X milliseconds ago.The server determines if the shot hit anyone.Players are moved back to their current position.
cl_updaterate ("Position update freq" in the Network Options menu)
Indicates the frequency of position updates a client wishes to receive. The default value of 1 indicates they wish to receive an update every gametic while a value of 2 indicates an update every 2 gametics. More frequent updates lead to greater accuracy at the expense of more bandwidth usage.

cl_interp ("Interpolation time" in the Network Options menu)
Allows a client to smooth the movement of enemy players due to network jitter in the connection between that particular client and the server. This smoothness comes at the expense of increased visual latency.

If the most recently received position update is N, the default value of 1 will display players at position update N - 1. Similarly, a value of 2 will display players at position update N - 2.

Network jitter causes the client to not always receive position updates in a timely manner. If a client displayed position update N - 1 last gametic and has yet to receive a new position update from the server, it can display position N, maintaining accurate, smooth movement even when there is jitter or small latency spikes.

cl_predictlocalplayer
Allows the client to enable or disable client-side prediction of a client's player position. This prediction, enabled by default, allows the client to immediately move its player position based on controller input instead of waiting for confirmation of a new position from the server. This is much more responsive compared to the alternative, which does not change the player position (and in turn the rendered view of the world) until the the client's round-trip latency time to the server has passed.

Although prediction allows for immediate visual feedback, it can also be incorrect. This is often the result of collision with other players or being thrust by weapon damage. When the prediction is incorrect, the client considers the server to be authoritative about the real position of the client's player.

Although most players would find it difficult to play with this CVAR disabled, it is immensely useful in diagnosing recordings of games for debugging purposes.

cl_prednudge ("Smooth collisions" in the Network Options menu)
Sets the amount of interpolation between a client's mispredicted player position and the corrected player position from the server. Valid values range from 0.05 to 1.0. The client can choose how they want to trade off between smoothness and accuracy when their player position is mispredicted (see cl_predictplayerposition for further background information). A value of 0.05 will nudge the player towards the correct position gradually and as smoothly as possible where as a value of 1.0 will instantly jerk the player to the correct position to be as accurate as possible.

cl_predictweapons

cl_predictsectors

cl_predictpickup
Overview of Hitscan Latency Compensation (Unlagged)
Hitscan latency compensation is a topic that causes a great deal of confusion as to how it works and what side effects are to be expected. The community has long ago adopted the term "unlagged", which in itself is a source of confusion but hopefully this post can clarify several points. For further detail on the topic, please read this excellent overview by Valve, from which Odamex's algorithm was derived.

For the examples in this explanation, we will consider two players: Player A with a 150ms ping and Player B with a 20ms ping.

Background info:
Odamex has a fixed frame-rate of 35fps, which means each frame lasts roughly 29ms. That also conveniently corresponds to the network update rate and the game physics update rate.

Odamex also uses a term "world index" to refer to the particular set of actor positions that the client has received from the server and uses to draw the sprites for actors in the game (enemy players, etc).

How it works:
When Player A aims directly at Player B and presses the fire button, his Odamex client will send all of his input (eg, fire-button, mouse angle, etc) to the server as well as the current world index. The server will receive this input from Player A 75ms later. During this time, Player B may have moved significantly and without latency compensation, Player A would miss his shot.

With latency compensation, the server will temporarily move all players except the shooter to their position in the world index that was received from the shooter. In the case of Player A shooting, it means that Player B would be moved to his position 150ms ago. The server then performs hitscan collision detection and then moves all of the players back to their current real position. This compensation allows Player A to aim directly at Player B and successfully hit him, even with adverse network conditions.

One side effect of this compensation can be seen from the point-of-view of Player B. It is possible for Player B to have gotten behind cover of a wall and still be shot by Player A. This is due to the fact that Player A has high latency and thus his input takes a noticeable amount of time to reach the server and during this time, Player B can move behind a wall. The latency compensation will temporarily move Player B to his position at the time Player A pressed fire, which was directly in the line-of-sight of Player A.

Hopefully this description is not too technical and also did not omit any details that are necessary for understanding the way latency compensation works in modern FPS games. Let me know and I can further clarify any points which are not clear.
Odamex 0.7 Released!
** This is a required update **

* The Release *

After many revisions and improvements, the Odamex Team is proud to present Odamex 0.7.0. This new version of Odamex marks the first official release of the rewritten software renderer. This new renderer fixes many relics of old ZDoom code and also includes support for a 32-bit software renderer capable of displaying colors far beyond what was previously capable. Additionally optimizations for frame-rate improvements in 32-bit color mode have been implemented based on specific capable CPUs, (automatically) controlled with the cvar r_optimize.

Aside from the brand new renderer, a great deal of changes and bug fixes also come with this release. Mappers will be excited to see that Odamex now supports up to 65535 vertices and 65536 segs in a single map. The launcher has received a number of improvements as well: Odalaunch can now query servers faster and a bug has been fixed involving oversized packets that resulted in some players not being able to see a full list of servers. A new announcer is also included and only one announcer sound will play at a time per team. Screenshots can automatically be taken during intermission via cl_autoscreenshot and all screenshots are now saved in PNG format.

Windows users will be excited to see that Odamex is now offered in 32-bit and 64-bit binaries for improved speed on 64-bit compatible operating systems. Download Odamex 0.7.0 for your preferred platform now!

A full list of changes can be viewed here.

Have fun!
Netcode White Papers / Videos
As players often wonder how Client/Server games work "under the hood", I'm creating a small thread that lists some important white papers in the field of client/server game programming.

This paper describes the architecture of the TRIBES engine and subsequent TNL library.
http://www.pingz.com/wordpress/wp-content/uploads/2009/11/tribes_networking_model.pdf
Video and slides for similar information: http://coderhump.com/austin08/

This paper describes Doom 3's architecture, which is an advancement over Quake 3 Arena.
http://mrelusive.com/publications/papers/The-DOOM-III-Network-Architecture.pdf

This paper describes the CounterStrike architecture and the specifically client prediction of position and latency compensation for weapons.
http://web.cs.wpi.edu/~claypool/courses/4513-B03/papers/games/bernier.pdf

This video describes Halo's architecture, which is based heavily on the TRIBES architecture.
http://www.gdcvault.com/play/1014345/I-Shot-You-First-Networking