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 - Zorro

Pages: [1] 2 3 ... 5
1

General Discussion / Re: "bug dump" thread

« on: August 02, 2007, 23:51:39 »
- "sxp pointer was NULL" at the end of each match.

it's "szp" (typo?).  Stand's for self-zeroing pointer.  It's a class which wraps pointer access to make it safer or something.  Used extensively in the mobj handling code.  When something goes wrong, it throws an exception which the engine catches and prints to the console.  Something must be effecting the integrity of the world's state (side effects of the wallhack prevention, I think).
2

Developer's Corner / Distributed SCMs

« on: July 04, 2007, 18:21:13 »
Someone handed me this link to a video of a speech given by Linus Torvalds on git and Distributed Sourcecode Management.  I thought it was pretty interesting and a bunch of the points made were true.
3

Developer's Corner / Re: New Scoreboards

« on: June 17, 2007, 10:58:47 »
So, anyway, how's this coming along?  We're actually coming close to having spectation complete.  If we put your scoreboard cleanup together with working spectator mode, we'd have a compelling reason to release v0.3 :)
4

General Discussion / Re: IDE & Odamex

« on: June 12, 2007, 13:40:19 »
You are perhaps the most blindly idiotic person I have come across this year.  Read the posts of the thread before responding.  Read them fully.  Understand them.  Check the official IDE website instead of injecting your non-factually based idiotic fantasies.
5

Developer's Corner / Re: Major engine restructuring.

« on: May 27, 2007, 12:18:06 »
(my opinions have changed a bit in the past week or two)

Yeah, I guess a "rewrite" would be unnecessary.  What we certainly need to do though is examine code for unneeded logic, and more importantly, logic on the client and the server.

As you said, a lot of things (such as demo playback) work perfectly with the engine just as it is.  We should fix up the hole in the tire, not replace the wheel
6

Developer's Corner / Re: Major engine restructuring.

« on: May 18, 2007, 19:04:36 »
Ok, I have come up with a pleasant way of making a thick server design work elegantly while maintaining the clients ability to run independent of any server.  In doom, everything is driven by the ticker procedures which are invoked with each loop.  This is a bad design as it lends itself to separation of subsystems, but if used properly, it could redefine how the engine functions.  Read this chat log (between me and a friend who is developing an engine, about the design I've been thinking of using)

Quote
<Zorro> basically you have the self-sufficient gamestate (not self-modifying), then a dynamic and modify-able list of 'tickers' which either modify it or use it to preform tasks such as rendering
<Zorro> the difference between a client and server can be determined by the list of tickers running
<Zorro> I'm not sure if that's been done or not, but it seems like a nice idea
<Zorro> in theory, you could add a ticker which would implement additioinal gameplay features (such as CTF or whatever) through dynamic linkage, or put the game logic ticker in it's own library

The gamestate would define where instances of what object can be found, the state of the map, and any other variables that contain information that other tickers will need (for example, screen resolution, which would be set by either the console or the menu tickers, but used by the renderer.

Tickers truly would act as modifyers applied to the state.  For example, in a local game, first would come the input ticker which would post events to a buffer, then the game logic ticker, which would use that information, then the sound ticker, then the render ticker.

Tickers should depend only on the gamestate, never on each other (in the finished product).  By being independent, problems are isolated and modifications are no longer engine hacks.

As I said, by using different tickers, you can get different behavior.  This will make the code we write higly valuable and reusable.

Local Client:
*Input
*game logic
*sound
*renderer

Remote Client:
*Input
*game logic
*client network tic
*sound
*renderer

Host Client:
*Input
*game logic
*server network tic
*sound
*renderer

Dedicated Server:
*game logic
*server network tic
7

Developer's Corner / Re: Major engine restructuring.

« on: May 16, 2007, 18:57:42 »
You post a lot of important points.  After a little chat on IRC, it would make more sense in trying to achieve our goal to start from scratch, although it will take longer.  We need to keep in mind that a decent portion of the code in doom is perfectly fine.  Code I would put in this category is mostly implementation code (as opposed to interface code).  for example, the audio interface works fine, but may provide a horrible interface (I'm not saying this is true, it is an example).  We can definitely borrow the audio interface's implementation and provide a better replacment interface to the already existing code.

I guess the biggest thing we can do to make this project possible (I was tempted to use the word "easier," but it is my guess that this will be far from easy) would be to keep everything slotted, and avoid sideways dependancies.  This way, for example, we can use the existing renderer with no problems, and when cardboard comes out, make the switch without raising any conflicts with other existing code.  These are the types of improvements we will be trying to make if this gets off the ground at all.

We should finally keep in mind, as Russell pointed out, that though we are trying to provide the classic "look and feel," we do not want the engine to be limited to that.  Things such as game modes and rules, the console, access to the display, should all be coded in a way where extension would be easy and non-destructive.

One thing I think needs to be addressed is the way client/server interaction is implemented.  Most engines work one of two ways.  Either the server controlls the game and the clients display it, or the clients control the game and the server relays it.  In odamex, both implementations are present, and one depends on the other in arbitrary points.  We should either go one way or the other, but the functionality should not *ever* require multiple implementations as it does currently. (perhaps this is a side effect of the ongoing client/server->common separation operation?  Either way, the client/server and common code should have a clear and thick line of distinction, and this will be very hard to achieve if lines and functions are randomly moved one at a time.)
8

Developer's Corner / Re: Major engine restructuring.

« on: May 14, 2007, 11:04:09 »
Quote
While I'd love to help participate in this, I would like to point out that we do aim to stick close to doom2.exe gameplay physics as closely as possible. We don't want to remove any game-affecting bugs like wallrunning, silent BFG and pseudo-random seeding. We put in effort to reinstate these bugs, and I'm sure we'd hate to see them removed.

I understand this completely.  What defines doom, or any game for that matter, is not the content, but the mechanics.  If we were to do things like cut out things like wallrunning and silent-bfg, we might aswell be playing counterstrike on D5M1.

Quote
I should also mention that there's roughly 100,000 lines of code. This will not be an easy task and is definitely a long-term project, and will require a separate branch.

It will be difficult, but it is either that, or work with the existing codebase, which is also a daunting task.  Alot of the written code is completely reusable, we just need to logically analyze and actively restructure things.

Actually, the idea of a separate branch may not be a bad idea at all.  A task this large would need revision control, and at the same time, we would not want to break odamex in the main repo, to avoid completely blocking development.
9

Developer's Corner / Major engine restructuring.

« on: May 13, 2007, 21:41:12 »
Today and yesterday I have gone deeper into the core of Odamex then I have ever gone before.  I began hoping that I would be able to better understand what makes Odamex tick, but after tinkering with it for a few hours, I had realized that warm fuzzy feeling had been missing for a while.

A few of the community members have asked why Odamex development has been coming along so slow; The answer is simple: the internals of Odamex are a mess.  Enough of a mess to scare away (possibly many) potential developers.  The current state of the doom engine can only be described as an unstable jenga tower.  As more work is done, it seems the tower is made more unstable and blocks are continually placed on top.

We are currently at the point where the tower is about to topple, The brave ones have stopped placing bricks on top.  The average coders have stopped long ago.  I think the only solution is to let it topple over and take all the bricks, one by one, and put it back together from the ground up.

The doom engine we have now is the result of 13 years worth of mistakes and oversights.  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.

Instead of running away, I would like to lend a hand in this.  The only way for odamex to succeed is getting this done as soon as possible.
10

Developer's Corner / Re: New Scoreboards

« on: May 11, 2007, 21:26:49 »
The spectator code will require the scoreboard to be heavily modifyed from it's current state, so you finishing your thing here will have to come first (dont worry, you have plenty of time untill anyone gets spectation working properly :P)
11

General Discussion / Re: CTF & Team colors

« on: May 11, 2007, 21:23:57 »
After playing Sauerbraten endlessly, perhaps a team system like it's would be interesting, where teams are just like second player names, and everyone who's team string matches is on the same team.  For this to work with maps which are made with a specific number of flags, there would first need to be a team limit.  The server slots the flags to teams and sets the team limit to the number of flags available on the map.  Additionally, the server sets the team colors to the colors of the available flags.

Some system allowing teams to set the team color, and allowing a team to be locked would also be nice, but I'm having a hard time thinking of the best way of doing it where it couldn't be abused.  Anyway, this functionality isn't neccesary for things to work.
12

General Discussion / Re: CTF & Team colors

« on: May 06, 2007, 07:13:25 »
I can't see this happening.  The CTF standard strictly defines the objects for red, blue, gold, green, and white teamstarts/flags.  Even if you cannot play zdaemon or skulltag maps in Odamex (which may not always be the case), you can still play odamex maps perfectly fine in both of those ports (which no longer makes i an odamex map, just a well-designed portable one).
13

Developer's Corner / Re: Refined transparent map

« on: April 20, 2007, 10:57:19 »
I have agreed with you completely from the start, but I guess I will now side with you.  I will leave the overlay and boxed automaps available with no server control.  If it is decided that this should be added, it can always be done with a followup
14

Developer's Corner / Re: Jump Sound Support

« on: April 14, 2007, 22:10:55 »
It should be something the wad editor can touch, as always.  It would be nice if by default, it was nullifyed by sndinfo, but could be set using it.
15

Developer's Corner / Re: Refined transparent map

« on: April 14, 2007, 22:07:36 »
What if the server is 'designed' for classical CTF? Or OS Deathmatch servers? Must take those into consideration aswell.

ctf was never classical :P

Though I agree, there are people who are anal about having their oldshool games who dont want to be playing first timers who think they are special because they can exploit the map
Pages: [1] 2 3 ... 5