The following warnings occurred:
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 94 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 573 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 573 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined variable $can_access_moderationqueue - Line: 749 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 749 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined array key "avatartype" - Line: 889 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 889 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined array key "avatartype" - Line: 889 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 889 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined variable $awaitingusers - Line: 34 - File: global.php(956) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/global.php(956) : eval()'d code 34 errorHandler->error
/global.php 956 eval
/showthread.php 28 require_once
Warning [2] Undefined array key "style" - Line: 1021 - File: global.php PHP 8.0.30 (Linux)
File Line Function
/global.php 1021 errorHandler->error
/showthread.php 28 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5196 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 5196 errorHandler->error
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/inc/functions.php 5233 build_theme_select
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 1021 build_theme_select
/showthread.php 28 require_once
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1404 fetch_forum_permissions
/showthread.php 103 forum_permissions
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key 1 - Line: 1449 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1449 errorHandler->error
/inc/functions.php 1414 fetch_forum_permissions
/inc/functions.php 2953 forum_permissions
/showthread.php 661 build_forum_jump
Warning [2] Undefined array key "mybb" - Line: 1997 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 1997 errorHandler->error
/inc/functions_indicators.php 41 my_set_array_cookie
/showthread.php 669 mark_thread_read
Warning [2] Undefined property: MyLanguage::$ratings_update_error - Line: 5 - File: showthread.php(772) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(772) : eval()'d code 5 errorHandler->error
/showthread.php 772 eval
Warning [2] Undefined variable $postsdone - Line: 905 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 905 errorHandler->error
Warning [2] Undefined array key 934 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 935 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 941 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 945 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 949 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 963 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 994 - Line: 911 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 911 errorHandler->error
Warning [2] Undefined array key 935 - Line: 1640 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 1640 errorHandler->error
/showthread.php 1642 buildtree
/showthread.php 923 buildtree
Warning [2] Undefined array key 941 - Line: 1640 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 1640 errorHandler->error
/showthread.php 1642 buildtree
/showthread.php 923 buildtree
Warning [2] Undefined array key 945 - Line: 1640 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 1640 errorHandler->error
/showthread.php 1642 buildtree
/showthread.php 923 buildtree
Warning [2] Undefined array key 994 - Line: 1640 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 1640 errorHandler->error
/showthread.php 1642 buildtree
/showthread.php 1642 buildtree
/showthread.php 1642 buildtree
/showthread.php 923 buildtree
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions_user.php 816 is_member
/inc/functions_post.php 416 purgespammer_show
/showthread.php 924 build_postbit
Warning [2] Undefined array key "profilefield" - Line: 6 - File: inc/functions_post.php(484) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/inc/functions_post.php(484) : eval()'d code 6 errorHandler->error
/inc/functions_post.php 484 eval
/showthread.php 924 build_postbit
Warning [2] Undefined array key "canonlyreplyownthreads" - Line: 672 - File: inc/functions_post.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions_post.php 672 errorHandler->error
/showthread.php 924 build_postbit
Warning [2] Undefined array key "showimages" - Line: 758 - File: inc/functions_post.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions_post.php 758 errorHandler->error
/showthread.php 924 build_postbit
Warning [2] Undefined array key "showvideos" - Line: 763 - File: inc/functions_post.php PHP 8.0.30 (Linux)
File Line Function
/inc/functions_post.php 763 errorHandler->error
/showthread.php 924 build_postbit
Warning [2] Undefined array key "invisible" - Line: 1565 - File: showthread.php PHP 8.0.30 (Linux)
File Line Function
/showthread.php 1565 errorHandler->error
Warning [2] Undefined variable $threadnotesbox - Line: 33 - File: showthread.php(1597) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 33 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $multipage - Line: 36 - File: showthread.php(1597) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 36 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $multipage - Line: 68 - File: showthread.php(1597) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 68 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $addremovesubscription - Line: 82 - File: showthread.php(1597) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 82 errorHandler->error
/showthread.php 1597 eval
Warning [2] Undefined variable $thread_deleted - Line: 104 - File: showthread.php(1597) : eval()'d code PHP 8.0.30 (Linux)
File Line Function
/showthread.php(1597) : eval()'d code 104 errorHandler->error
/showthread.php 1597 eval




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
My thoughts on TAP
#1
As this is going to contain a fair amount of criticism, some things upfront:


All that is said here is based on V1 (0.41 to 0.51), as I can't get TAP V2 to run. So some things might already have been addressed in V2


I own about 7 different offline Airline Management Simulations, from early ones running under DOS to TAP, Airline 7, Airpro 8. I've also played about an equal number of on-line sims.

The Airline Project is one of, if not the favorite sim among those I played. It offers a lot, for free nonetheless, and my only real complaint would be the instability. So don't take the following things to hard.



So, what do I have in mind?

1) Airliner classes

TAP makes the same mistake as pretty much any other airline management sim by using Economy class as basis. For anything before the 1960s, the main and often only class was first class. PA introduced Tourist class fares in 1952 ... and the IATA actually put up a boycott of any flight containing Tourist class passengers, so PA could only offer these new low-fare tickets on few routes.

Tourist/Economy class became more common in the following years, after US courts declared the IATA boycott an illegal trade hindrance (or something similar).

As of TAP V1 0.51, 1st class appears only in 1960


2) Route demand

This is a huge area for discussions, and probably the most difficult one to program. Most sims use fixed demand numbers, and I like about TAP that it is actually possible to "create demand". Other sims use airport categories (by size or pax demand) and calculate route demand from there. Although not ideal, I think this is a better starting point.

To explain this, in a quite simplified way: Most airports have an 'area of influence', from which they draw their passengers. This can be a city, or more likely an area. So basing pax supply/demand on population density within the airport's 'area of influence' is a good start.

But airports almost never have their 'area of influence' for themselves. Most are interconnected to several airports. Well-known examples would be NYC (3 major airports), London (4 major/medium airports), or Paris (3 airports). But they're not the only examples. Sometimes, a city has 2 or more airports (Chicago, Houston), sometimes the respective area is quite large. For example, I live in northern Switzerland, which is served by two airports (ZRH and EAP/BSL). There are also some airports in Germany (e.g. FDH) that people may use.

What airport people actually choose, is based on some criteria such as:

- airport reputation (size, number of routes offered, amenities/attractions, ease of access)
- distance to airport

People usually want to go from Place A to Place B, not from Airport X to Airport Y. That's what low-fare airlines use to cut into markets: Offer a route that closely matches peoples destinations, but from airports that are smaller/less reputable and further away from people's homes. If the price is low enough, people will use the somewhat less comfortable connection.

Example: I live about 20km away from ZRH. I want to travel to Germany (LEJ). There is (was) no direct connection, but I can go to Berlin and take the train/car from there. ZRH - TXL is/was available (DLH, Swiss), as is BSL - SXF (EasyJet). I took the latter one, even though it takes me more than twice the time to get to BSL, compared to ZRH.

One big difficulty would obviously be defining the 'area of influence' for each airport. Using airport/pax supply or demand categories would be an easier substitute. Even more complicated would be the question, which airports are interconnected. For NYC, do you consider only LGA, JFK/IDL, and EWR, or also Teterboro and Westchester County?


3) Cabin layout

This is something that bothers me quite a bit...

At the moment (V1 0.51) the cabin layout is based on a number of seat spaces available, and the size factor of each seat (category) chosen.

If you try to model real world layouts, particularly from the early times, you run into some issues. On paper, the size factor of each seat (category) is easily calculated. Take seat width and pitch, use one as base (e.g. 18in wide/31in pitch as 1.0) and you get the numbers for different seat widths and pitches easily.

It just never fits.

Plus, you have to correct the available seat space for some planes. The de Havilland Comet 1 is a perfect example. Yes, these were configured for either 44 (BOAC) or 48 (AF) passengers. But the seats were not economy seats at 31in pitch. They were 1st class seats, around 24in wide and with 44-48in pitch.

Up comes the next issue: If you change the seat space in the Comet I to fit 44-48 1st class seats (say, to capacity passengers="72"), somebody might actually run it with 72 Economy seats. So now we have to look at the max. number of seats allowed (exit limit).


Long story short:

- It should be possible to change the number of seats in all classes.
- The total number of seats should be capped (exit limit).

Ideal would be a graphic interface for creating a cabin layout, and being able to also place things like galleys, coat racks, passenger bar or buffet. They also use up space.

Furthermore, it should be possible to use different seats or seat pitches in the same class. Take a look at http://www.boeing.com/assets/pdf/commerc...ps/dc8.pdf -> pages 25ff

You'll notice that not every row has the same seat pitch. Same on modern planes ... airlines are selling bulkhead or emergency exit rows as "comfort seats", as they offer more leg space (greater seat pitch).



4) Airplane data

Ok, a lot of data comes from Wikipedia. And also for technical stuff, Wikipedia is a better source than for ideological/political stuff, it still isn't great. Sources like airliner.net are probably better, but the best would be pilot's manual or similar.

But not only data quality is an issue.

Airplanes do not have a fixed range. It's more of an range envelope. The limiting factors are max. take-off weight (MTOW), fuel load, and payload. An airliner can't fly its full ferry range with a full load of passengers and their baggage.

Again, take a look at http://www.boeing.com/assets/pdf/commerc...ps/dc8.pdf - this time page 50ff. You'll see the range/payload diagrams.

Granted, programming this (less range with more pax/cargo) would be a pain. But there need to be some guidelines what data to use.

Same goes for fuel consumption, the one thing hardest to determine and the one I changed most often im my game copies. You may find the total tank capacity of a given aircraft, but that's not the usable capacity. Plus, things like "typical range" usually include a 20-45min reserve. Ferry range usually is max range, no reserves.

Once again, there need to be some guidelines what data to use. It's not about how correct they are, but more about how comparable the data for all the aircraft are. Same amount off is better than different standards for determining/calculating data.


5) Airplanes

It's true that a lot more Cessna and Piper aircraft are manufactured than Boeings and Airbusses. And yes, some airlines actually use them. But do I really have to scroll through hundreds of them to find some "real" airliners?


6) Documentation

I like to write contracts (for charter routes, or essential air service) and scenarios. But I'm seriously hampered by lack of documentation for the usable XML elements/attributes. Ok, it's Alpha/Pre-Alpha, but please make sure to document to some extent. It also makes community participation much easier. Just using what you can see in example files isn't always enough.



Well, I think that's about it for now.


Cheers,

DocS73
Reply


Messages In This Thread
My thoughts on TAP - by DocS73 - 03-10-2017, 02:04 PM
RE: My thoughts on TAP - by nnick - 03-10-2017, 05:48 PM
RE: My thoughts on TAP - by blueboi - 03-11-2017, 03:04 PM
RE: My thoughts on TAP - by nnick - 03-12-2017, 10:45 AM
RE: My thoughts on TAP - by r3dhawk95 - 03-13-2017, 03:02 AM
RE: My thoughts on TAP - by DocS73 - 03-14-2017, 12:47 AM
RE: My thoughts on TAP - by nnick - 03-15-2017, 04:42 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)