User:Hurricaaane/Projects

From Valve Developer Community
< User:Hurricaaane
Revision as of 15:35, 2 November 2005 by Hurricaaane (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Three-floor elevator: Project exposition

  • REMEMBER:
WRITE THE PAGE
Check if something was forgotten
Check if everything is truly explained (have no timeline errors, or report errors, DOESN'T MEAN technical error that have truely happened)
Add schematic pictures
Correct spelling mistakes

This article is currently written. Do NOT modify it until this message have completely disappeared. EVEN to correct mistakes. This message won't disappear until complete end. This message will stay as long as it takes. Discuss about this page using related discussion page.

Warning: This text is a personnal explanation where I put all I've found at the right time. What I find can be true or false. As long as these explanations are taken from real conclusions, do NOT modify the text to correct something even if that is FALSE. You are only authorized to correct spelling mistakes. Please understand what I mean, this is not an encyclopedial page but some kind of report and reports don't have to be changed.

The project began on September. It's a challenge that I successfully accomplish what I want: What I want globally is to make an elevator with 3 floors on Source Engine.

Objectives

There are the objectives:

  • It needs a "call" button for each floor.
  • It doesn't have to stop between two floors.
  • It mustn't change direction while moving.
  • In the elevator, a "Go up" and "Go down" button are only required.
  • It doesn't need a "Go to floor 1", "Go to floor 2" and "Go to floor 3" buttons.
  • A "resend" button is not needed.
  • It must move at the same speed.
  • The elevator must have doors.
  • It must work in multiplayer game.

Any method can be used. The most important objective is: It must work in multiplayer game.

Because Multplayer can make conflicts, like an idiot that constantly calls an elevator or going up between floor 2 and 3, preventive methods have to be found afterwards.

First method: With a func_tracktrain

Explaining

First guess for me was the use of a func_train. I'd liked to do it with a func_train and an trigger_changetarget as it could be done on Half-Life 1 Engine. But when I saw that func_train have disappeared, I thought I could do the same with func_tracktrain.

I've tried to do that the way I could do with HL1. The method was to changetarget the train to a certain path. That way was terribly easy. But the func_tracktrain doesn't mind. Why the hack did they delete func_train? I've remembered a scene during the psychidelic sequence, where we san the Test chamber running. I've mapped for HL1 and I saw how the test chamber was made. The floading things were func_train. And If I saw them on HL², I had to know how it was made. Hopefully, the sequence was given along with the SDK. I ran the .vmf, and It was a func_train with undefinied classname in the FGD. Why the hack? (Why the hack is a personnal expression I use)

After some research, I couldn't find out why func_train was left. So I tried my chance with func_tracktrain. It is the main entity.

First thing I had to do is to study the entity. Here are the conclusions:

  • It doesn't use path_corners.
  • When it is set to stop at a path_track, it really stops. This is bad to make 3 floors as long ad I need the elevator to directly go to first floor if I call it when it is stationned on the third floor.
  • We can only say "Go forward" or "Go backwards". No "Go to this path" or other.

I call these conclusions constraints.

Theory

Theory is to find out how will I accomplish the objectives by avoiding the constraints using the main entity. What explained in theory is What entities do I need? Why? How will I connect them? Why will I connect them that way?

A theory can have of course unforseen problems.

Acting

Conclusion

Second method: With a hacked func_train

Explaining

Theory

Recent reports

These are reports that were recently made.

Last report

This was the last report. Last report happened on (YYYY/MM/DD): 2005/10/??

Other reports may come when something is found.