/-/S'pht-Translator-Active/-/ |
Re: Jason Jones interview | ||
Posted By: M-Class | Date: 1/13/02 11:08 a.m. | |
In Response To: Re: Jason Jones interview (M-Class) Q. I'm guessing that you're considering porting Marathon to another platform at some point. A. Obviously for portability, assembly language code is a huge liability. Q. You mention texture mapping. What other parts of Marathon needed that final performance boost from assembly language? A. Actually, just the texture mapping. That's one reason why the texture mapping was kept seperate from the rendering. That front end that builds the surfaces loop.
A. Not really. We planned for that kind of stuff and it works pretty well. There's some tricks, but that was a fairly easy part of the project compared to say, the front end of the rendering engine. The collision detection code is really complicated as well.
A Just because it's a lot of gross maps. You're dealing with an object, an arbitrary polygon, that's moving around, and you have to make sure it doesn't go through a wall. In fact, you have to stop the object before it goes through a wall, not right up against the wall. you end up with a pretty weird, complicated set of equations. Q. Did you use signed integer math and keep away from doing flaoting point calculations?
Q. How do you manage the game map, or keep things mapped in memory, such as the tunnels? Is there a list, or what? A.Yes. It's just a bunch of lists. There's a monster list, a projectile list, a list of the walls, doors, stuff like that. It's a fairly straightforward arrangement. Anybody who's seen the map editor can pretty much appreciate what all of our low level data structures look like. There's a set of points, a set of lines that connect points, and a set of polygons, which are made of lines. They're just a bunch of lists in memory. Q. Now, about Marathon's network capabilities. Suppose several people are playing a networked death match. How do you handle network protocols and communications? How does that big global block of data get updated so that it looks the same on everybody's screen? So that what happens to one person gets relayed (or transmitted) to everyone else? A. One of the tricks we used in Marathon was to try to make its network operation no different from its local operation. That is, commands from remote machines are really no different than the commands from your local machine. Inside the game engine itself, we don't special-case the networking commands. Marathon is set up so it's almost like there are eight people on the same keyboard as far your machine is concerned. The network protocol itself is packet-based. We don't use any of the fancy, higher-level services of AppleTalk. We don't use any of the data streams stuff. It's all DDP. Q. Datagram Delivery Protocol. A. Exactly. We use DDP with some tricks to try to minimize the number of packets you send around the network, especially over LocalTalk, so that we don't overload the network. On an Ethernet network, we're sending packets 30 times a second to make sure that everybody keeps up with the game. The networking code is another thing like the rendering. It's just heinously complicated. |
|
Replies: |
Jason Jones interview | Andrew Nagy | 1/9/02 8:31 a.m. | |
Also, while playing Marathon 2 the other day... | Andrew Nagy | 1/9/02 9:10 a.m. | |
Re: Jason Jones interview | Hamish Sinclair | 1/9/02 9:17 a.m. | |
Re: Jason Jones interview | whocares | 1/9/02 11:31 a.m. | |
Re: Jason Jones interview | M-Class | 1/9/02 2:51 p.m. | |
Re: Jason Jones interview | M-Class | 1/9/02 3:11 p.m. | |
Re: Jason Jones interview | M-Class | 1/9/02 3:24 p.m. | |
Re: Jason Jones interview | M-Class | 1/9/02 3:43 p.m. | |
Re: Jason Jones interview | M-Class | 1/9/02 3:54 p.m. | |
Cool. Are you going to continue? *NM* | Hamish Sinclair | 1/9/02 9:28 p.m. | |
HAMISH!! | Khral | 1/10/02 2:39 a.m. | |
Re: HAMISH!! | Hamish Sinclair | 1/10/02 3:11 a.m. | |
yep, I got sleepy last night *NM* | M-Class | 1/10/02 10:58 a.m. | |
Re: Jason Jones interview | M-Class | 1/10/02 11:17 a.m. | |
Re: Jason Jones interview | M-Class | 1/10/02 11:34 a.m. | |
Re: Jason Jones interview | M-Class | 1/12/02 9:43 a.m. | |
Re: Jason Jones interview | M-Class | 1/12/02 10:06 a.m. | |
Re: Jason Jones interview | M-Class | 1/12/02 10:31 a.m. | |
Re: Jason Jones interview | M-Class | 1/12/02 10:44 a.m. | |
Re: Jason Jones interview | M-Class | 1/12/02 11:01 a.m. | |
Many thanks *NM* | Hamish Sinclair | 1/12/02 12:22 p.m. | |
Re: Jason Jones interview | M-Class | 1/13/02 11:08 a.m. | |
Re: Jason Jones interview | M-Class | 1/13/02 11:31 a.m. | |
Re: Jason Jones interview | M-Class | 1/13/02 11:58 a.m. | |
Re: Jason Jones interview | M-Class | 1/13/02 12:27 p.m. | |
Many thanks. *NM* | Hamish Sinclair | 1/14/02 12:14 p.m. | |
Re: Jason Jones interview | Dan Aris | 1/10/02 2:13 p.m. | |
I have this Book! I will sell it if anyone wants! | Ernie TMBM | 1/11/02 2:53 p.m. | |
Re: I have this Book! I will sell it if anyone wan | Hamish Sinclair | 1/12/02 9:05 a.m. | |
Re: I have this Book! I will sell it if anyone wan | Ernie | 1/15/02 12:39 p.m. | |
Re: I have this Book! I will sell it if anyone wan | Ernie | 1/15/02 12:40 p.m. | |
Re: Jason Jones interview | Vid Boi | 1/10/02 2:20 a.m. |
Problems? Suggestions? Comments? Email maintainer@bungie.org Marathon's Story Forum is maintained with WebBBS 5.12. |