Message Boards

 Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Voxel

Pages: [1] 2
1
We have made all our information available on our boards, wiki, changelog, bugtracker and source code repository.

These wiki pages might be helpful:
http://odamex.net/wiki/Odamex
http://odamex.net/wiki/Releases

One of the main reason players tend to prefer Odamex compared to the ports you mentioned is that it allows smooth internet gaming while preserving original DOOM gameplay and physics. For example, Odamex supports playback of vanilla demos.

What you want to play is entirely up to you :)
2

Technical Support / Re: New protocol design ideas

« on: July 26, 2008, 03:35:36 »
also, i like the protocol doc you put together
3

Technical Support / Re: New protocol design ideas

« on: July 24, 2008, 18:39:43 »
Client uses exactly the same information as the launcher does, (probably implementation from the old csdoom days)

fyi, csdoom client didn't have this feature, but it is quite old :)
4

Devoblog / Re: 0.3 now available!

« on: November 05, 2007, 13:41:43 »
Oh, yes!That sounds good!I'm gonna to test it :)

Hm, I can't compile on linux.See output here - http://up.k10x.net/goglhfoccbtgp/output.txt

Memfis, please always provide a full description of what you did (commandline at the very least), and what environment you have (at least gcc version and distro). Looks like you're trying to link each object file twice into the same binary.
5

Developer's Corner / Re: Major engine restructuring.

« on: May 24, 2007, 09:00:22 »
Hi Zorro, you have put forward some interesting ideas in this thread. I'd like to contribute some of my opinions..

THE CODE
---------

As others have pointed out, remaining compatible (we have precision DOOM demo playback compatibility, for example) would be almost impossible without paying homage to the quirks of the original code. This means any roots-up reworking is going to be difficult. Yes, we can build a better game engine easily, but it won't be DOOM. For example, merely changing the order of tickers would break demo playback; taking the engine apart and putting it together "brick by brick" will do so to an unmanageable extent.

Given these restraints, I disagree with you when you say that the engine is a "mess" or a "jenga tower". For a start, Odamex code has amazing stability and portability compared to other ports. The code maintains all its traditional characteristics while accommodating newer techniques where appropriate (e.g. STL for string handling). The improvements have been happening over a long time (we have gone from 150,000 lines to 95,000 lines while improving features). Have a play with the old csDoom versions to understand why Odamex has moved miles ahead.

That's not to say that there aren't problems. Close module coupling and cohesion make modification more difficult than it should be. There is a lot of work to be done, adding proper spectator support and demo playback are two of the big modification challenges.

DEVELOPMENT
-------------

The major reason for slow development is a lack of developer input. That includes me, as I happen to be travelling the country in search of a job while working on a 100 page thesis. Other members of the development team also have important real-world business to take care of. Hopefully we will all have more time over the summer holidays.

We often have people proposing various changes and restructurings. There are plenty of people pulling us in different directions. Plenty of people starting their own ports (and rarely, if ever, finishing them). If you think you can significantly improve the code by rewriting a large part of it, I am quite happy for you to branch the project and look forward to see what you come up with! We'll even host the branch on our SVN.

However, what we really need is dedicated coder time. Not someone to pull in yet another tactical direction, but along with our common strategic goals. A developer that trusts our management and strengthens our team. Someone that actually does the work. Someone who can dig their teeth into a specific tough problem and not let go until it is solved (which may take months of hard work). That's how things get done, how to get credit. If anyone wants such a challenge, just ask :)

We don't need developers who can talk the talk. We don't need developers who can walk the walk. We need developers who walk the walk.

EXTENSIBILITY
------------

I have been thinking about the 'extensibility' problem and how it can be dealt with. The sad truth is that everyone wants some specific mod/tweak and they are not inherently compatible. If we follow all the suggestions, the engine will sprawl with millions of special CVARS and console commands.

The best answer I can come up with is a move towards pure scripting. A translation of the core game logic into Python/Tcl/Lua/<insert language>. This will offload development to whoever wants the change, rather than the Odamex devs. We can then have a classic engine, a CTF engine, and etc. Load them up like a lump and run them. Someone wants flag dropping, silent bfg and no strafe running? Just modify the engine and load the lump onto your server. Client will download the lump and run it. Odamex becomes the technical component that does graphics, sound, engine interpretation, and network connectivity while the pure game code is moved to the WADs. Truly a new standard.

Another benefit of this is, potentially, cheat prevention. A scripted engine can be quickly and subtly modified to test whether it is being circumvented. There are associated security problems of letting downloaded code run, but hey.. your browser runs javascript already. Lots of other questions.. What language should be used? Where do we draw the line between core and script?

Big project to do, but I think it is the best way forward.

NETCODE
--------

A scripted approach will also reduce the need for anti-cheat network code, which many people have been complaining about.

The client and server both use a working engine. This allows for both SP and MP. The client has a copy of the engine for prediction capability. To start with, we had two separate copies of the engine, one in client and one in the server. This has now been moved into a single 'common' engine. That took serious effort. Some lines have been moving around as a result. It may still look messy, but it is an improvement.

The chief reason for a 'blurry' line between client and server is perceived performance. In reality, neither client nor the server replies that the client gets are accurate, in terms of timing. The prior is ping/2 ahead, the latter is ping/2 behind. The player's weapon sound is played at the prior, the bullet hit is actually shown by the latter. Theoretically, both should happen at the same time, the client should delay the sound and do the bullet hit before a server confirmation (which is checked after it arrives). Changes in this area are tricky as there is no common structure defined to deal with the events.

The major hurdle in netcode is verifiability. We need tools to visualise network data streams and how they influence game state. We need a netwide demo recording and playback tool that also records the network data, so that we can play back an entire network game (prom the point of view of multiple clients at the same time), and see where the game state is desynced. Otherwise it is like testing/fixing an electronic circuit without an oscilloscope/voltmeter. Only way to really show how ghost monsters and other problems originate.

There's also an annoying issue in current anti-wallhack code, primarily because the BSP sight checking code is slow and erroneous (p_sight.cpp). There is a much faster way to do it, but the task is tricky and we don't have a developer to take care of it (see DEVELOPMENT above).

MISC
----

Many problems exist outside the main engine domain (e.g. osx midi crashes due to buggy SDL_mixer, tricky wxWidgets versioning), so work should be done to prop up our dependencies in that case. There are some issues that just need people to fix them, especially in audio.

It does not need patchwork, it needs a reworking.  It needs to be torn apart and redesigned as a client-server engine which lends itself to code reusability and sanity.

The only mistake is hotheaded development. If redesign was the answer, one of the other numerous ports would have already succeeded in our place. We should stop concentrating on development and start concentrating on testing. Regression testing and test driven development are the only way to stop making mistakes. We need testing tools that will, for any line change, tell us whether something (a demo, a visual, an audio, a protocol) breaks as a result.

Cheers,
Denis
6
NovaFlame, to build the master and server you'll need to right click the appropriate item in the "Targets" list in the Xcode project, then select "Build".

As for the WAD problem, not sure what that is caused by. You should probably use the terminal to navigate to the client directory then run odamex (cd /odamex-src/whatever/build/Release; ./odamex)

Don't worry about the Launcher, there will be a complete replacement in v0.3
7

Developer's Corner / Re: Refined transparent map

« on: April 08, 2007, 22:57:13 »
Teammate position info is already sent for F12, so that shouldn't be a problem.
8

Technical Support / Re: Mapscript examples?

« on: March 23, 2007, 08:04:19 »
The syntax for starmapscript is very simple:

Code: [Select]
if CVAR1 eq VALUE1 CVAR2 VALUE2

CVAR2 will be set to VALUE2 if CVAR1 is currently set to VALUE1. 'curmap' is a read-only cvar that tracks the current map, so it is a useful condition:

Code: [Select]
if curmap eq MAP01 skill 5
if curmap eq MAP02 skill 4
if curmap eq MAP30 hostname "join if you dare"

This code can be placed directly into starmapscript, or it can be put in a script, and starmapscript can be set to "exec script.cfg".

While bug 112 is still open, these scripts are SUBJECT TO CHANGE. Suggestions for improvement/replacement are welcome.
9

Developer's Corner / Re: ogl_hack

« on: March 16, 2007, 09:00:07 »
Any chances of the ogl_hack branch returning soon?  I would like to play around with it :P

Yes.
10

Devoblog / Re: 0.2 Alpha Available Now

« on: February 22, 2007, 09:50:27 »
I'd like to help compile Mac OS X, but I don't think I can. How can I install the compiler (what was it called again?) without going into Unix and risking screwing things up (especially when the instructions aren't really specific and for some stupid fuckin' reason mwhen I do this kind of stuff I never get results identical to the instructions)...
...Should somebody guide me through reliably, I'll gladly compile the source code for you guys over and over (doesn't take too long, right...?)
NOTE: I have a PPC computer, so compiling may only work for PPC. I doubt it, but it may happen.

Install "developer tools" off the OSX cd/dvds. That'll give you a /Developer folder, with xCode and all.
11

Technical Support / Re: Mac OS X support

« on: February 06, 2007, 05:19:12 »
That's probably because you don't have wxWidgets 2.8.1+ installed. I am looking at how to integrate these packages into our installer.

You can play without the launcher by copy-pasting (ctrl-c, ctrl-v) addresses into the client (e.g. "connect 123.123.123.123:1234") from our server list.
12

Technical Support / Re: Mac OS X support

« on: February 02, 2007, 11:57:46 »
Just double click the application and nothing happens.

Double-click which application?

I can't drag Doom2.wad into the goddamn game.

You should copy Doom2.wad into the game's directory. Dragging works for me.

I can't help you if you are vague and unspecific. Upload screenshots to demonstrate, if it helps.

Did you install SDL and SDL_mixer?
http://www.libsdl.org/release/SDL-1.2.11.dmg
http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-1.2.7.dmg
13

Technical Support / Re: Compiling Help

« on: January 27, 2007, 09:05:56 »
From the looks of your error message, you don't have the development libraries for SDL_mixer installed.

That could explain it. Good idea to check if you actually have the header.

find /usr/include -type f -iname "*mixer.h"
14

General Discussion / Re: Allow multiple key bindings?

« on: January 26, 2007, 12:15:06 »
I would like to have multiple keys bound to keys...

the people voted against it, that case is closed

Aliases are broke (not implemented) and I can not stand using a different key for Use and back and strafe + use on the mouse (double bound), I like to have my DOOM2.EXE  controls set up at all times in every port even Non doom FPS games!

command aliases work fine, any bugs should be reported on our bugtracker

15

General Discussion / Re: Allow multiple key bindings?

« on: January 25, 2007, 15:22:05 »
That was quite a decisive no. Thanks, bug closed.
Pages: [1] 2