GithubHelp home page GithubHelp logo

openairlinetycoon / openatdeluxe Goto Github PK

View Code? Open in Web Editor NEW
102.0 20.0 13.0 6.98 MB

The open source remake of Airline Tycoon Deluxe

License: GNU General Public License v3.0

C# 74.06% Python 1.19% GDScript 24.75%
mono game cross-platform godot remake godot-engine

openatdeluxe's Introduction

Imgur

OpenATDeluxe

This is the repository of the Open Source remake of Airline Tycoon Deluxe. It will add support for Full HD resolution, and native support for platforms like Windows (10), Linux and OSx.

Contributing

Join our Discord!

You can help by getting involved in active development of things to do, by suggesting new features, reporting bugs of the original game, or by bug-testing the game in its current state. Thanks in advance !

Progress

  • Game rooms are nearly all added #10
  • Data import is 90% finished #5
  • The airport is implemented
  • The player character is implemented
  • All of the gameplay is still missing

Todo

How to compile the Godot branch

  • Download Godot 3.2 Mono or later
  • Install Airline Tycoon Deluxe and download this repository
  • Build the project in godot ("Build" in the top right corner in godot)
  • Go to the new Build Manager tab on the upper left corner of godot
  • Enter the Airline Tycoon Deluxe path and hit "Extract Images" in the Images tab of the builder interface. Godot will now load all files. This will take a little while. You have to restart godot to see the new files, as godot does not update the explorer

(The game images can't be posted on github due to copyright reasons. Thats why there are files missing inside the project. Opening scenes let's godot know that there are files missing and it will delete all references to those files. If we run the project before godot checks for files, all missing files will be added!)

How to build the project

  • Go to the Build Manager tab on the upper left corner of godot
  • Go to the Build Management tab.
  • Click on Prepare Build. This will empty all of your image files in the Images folder.
  • You can now Export the project using the export feature of godot. (Don't forget to re extract all the image files)

WIP Pictures

All images are work in progress!

Imgur

Imgur

atd.gif

openatdeluxe's People

Contributors

serphentas avatar wizzardmaker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openatdeluxe's Issues

Is the project abandoned

Hi,

I see that the latest change dated by 6 months ago. So, my question is reasonable: is the project abandoned?
I would help you, but not sure how. I've never participated in gamedev projects

Increase loading performance

Currently loading a room means blocking the main thread and stopping everything.
That is not really desired behavior.

We should test the performance of multithreaded loading and the InteractiveLoader of Godot.
Or maybe we can just load every room into the game to prevent any mid session loading

Missing Cursor

Moved from #4
The cursor sometimes doesn't show, even though the files are there.

Could be a Z-fighting issue with the CanvasLayer being on Layer 1 - the default layer

Game Export needs special files

The game export, when exporting with godot, needs some more libraries for the text handling/saving. The original files are saved in the 1252 Windows encoding. This encoding needs the I18N.dll and I18N.West.dll. Sadly godot doesn't add them to the exported files, meaning we need to add them manually.

This step should be added to the export procedure where the image file stripping is handled.

License needed

We should decide on a licence for the code.

I would go for the MIT Licence as its already common among open source ports (Like CorsixTH)

Compiling the GOG source code

@WizzardMaker I'm working on reverse engineering the missing headers for the libraries in the GOG source code. I've already got everything compiling, though to get the static libraries to link I actually have to use Visual Studio C++ 6.0 (yes, the one from the 90s).

Of course just getting everything to compile is the easy part, there are a few crucial bits of header-only code not present in the static libraries that has to be reverse engineered (including the memory layout for each class). I'm making some good progress on that, my latest build can actually get in-game, though it quickly crashes on sprite corruption:

airport

I'll upload the source code to GitHub as soon as I've finished fully reverse engineering and debugging the header-only code. If you have any questions I'd be happy to answer them.

Add some screenshots in the README

I think people will be more interested in testing this re-implementation and maybe collaborate with some code if you show the current state of this port. Even early screenshots are fine!

Crash when starting a free game

Describe the bug
When starting a new game (FREE GAME from the main menu), the game crashes with this error:

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
  at (wrapper managed-to-native) Godot.NativeCalls.godot_icall_2_378(intptr,intptr,intptr,bool)
  at Godot.Node.AddChild (Godot.Node node, System.Boolean legibleUniqueName) [0x00000] in /tmp/build_GodotSharp/GodotSharp/ObjectType/Node.cs:389 
  at RoomManager.ChangeRoom (System.String newRoomName, System.Boolean isAirport) [0x000a2] in /home/xerxes/Documents/coding/OpenATDeluxe/src/RoomManager.cs:77 
  at MainMenu+<>c.<.cctor>b__4_1 () [0x00001] in /home/xerxes/Documents/coding/OpenATDeluxe/src/Menus/MainMenu.cs:17 
  at CharacterItem._GuiInput (Godot.InputEvent e) [0x00035] in /home/xerxes/Documents/coding/OpenATDeluxe/src/CharacterItem.cs:32 

To Reproduce

  • Select NEW GAME from the main menu

Expected behavior

  • The airport scene should load fine

Screenshots
n/a

Desktop (please complete the following information):

  • OS: Linux Mint 19.1
  • Original Game Version: Deluxe
  • Version: Steam (BuildID 867111)

Additional context
When forcing a game data import, the following warnings can be seen:

[...]
Error loading!
Error opening file: /home/xerxes/Downloads/Airline Tycoon Deluxe/data/clan.csv - Error FileCantOpen
  at BaseFileDecoder..ctor (System.String _filePath) [0x0002c] in /home/xerxes/Documents/coding/OpenATDeluxe/src/BaseFileDecoder.cs:28 
  at CSVFileDecoder..ctor (System.String _filePath) [0x00000] in /home/xerxes/Documents/coding/OpenATDeluxe/src/CSVFileDecoder.cs:10 
  at ClanCSVFile..ctor (System.String _filePath) [0x00000] in /home/xerxes/Documents/coding/OpenATDeluxe/src/ClanCSVFile.cs:17 
  at ATDGameLoader+<>c.<LoadOtherData>b__23_2 () [0x0000d] in /home/xerxes/Documents/coding/OpenATDeluxe/src/ATDGameLoader.cs:214 
  at ATDGameLoader.TryAction (System.Action action) [0x00002] in /home/xerxes/Documents/coding/OpenATDeluxe/src/ATDGameLoader.cs:178 
Error loading!
Error opening file: /home/xerxes/Downloads/Airline Tycoon Deluxe/data/brick.csv - Error FileCantOpen
  at BaseFileDecoder..ctor (System.String _filePath) [0x0002c] in /home/xerxes/Documents/coding/OpenATDeluxe/src/BaseFileDecoder.cs:28 
  at CSVFileDecoder..ctor (System.String _filePath) [0x00000] in /home/xerxes/Documents/coding/OpenATDeluxe/src/CSVFileDecoder.cs:10 
  at ATDGameLoader+<>c.<LoadOtherData>b__23_3 () [0x0000d] in /home/xerxes/Documents/coding/OpenATDeluxe/src/ATDGameLoader.cs:220 
  at ATDGameLoader.TryAction (System.Action action) [0x00002] in /home/xerxes/Documents/coding/OpenATDeluxe/src/ATDGameLoader.cs:178 
Wrong Texture Size! GFX: ZEIGER01
Wrong Texture Size! GFX: ZEIGER02
Wrong Texture Size! GFX: ZEIGER03
Wrong Texture Size! GFX: ZEIGER04
Wrong Texture Size! GFX: CONSTRUC
[...]

Excerpts from brick.csv and clan.csv (respectively):

Id;Beschreibung;RAM-Priority;opaque;Triggered;Layer;Speed;FloorDist;BaseX;BaseY;GridX;GridY;MinY;MaxY;Obstacle;TGA-Name
5000;Horizont1a;3;1;0;3;0;0;20;-18;88;1;132;132;0;BACK_A1
5001;Horizont1b;3;1;0;3;0;0;20;-18;88;1;132;132;0;BACK_A2
5002;Horizont2;4;1;0;3;0;0;20;-18;88;1;0;0;0;BACK_B
[...]
Typ;Group;Comment;Update;W'keit;Speed;Faktor;Koffer;Gimmik beim laufen oder Gimmick OffsetX;Gimmick beim warten oder Gimmick OffsetX;OffsetX;OffsetY;Palette;Norden;...;Anz;Osten;...;Anz;S<FC>den;...;Anz;Westen;...;Anz;Rennen: Norden;;Anz;Rennen: Osten;;Anz;Rennen: S<FC>den;;Anz;Rennen: Westen;;Anz;Gimmick;Anz;Winken;Anz;SitzenN;Anz;SitzenS;Anz;Stehen;Stehgimmick;Anz
10;-;Schwester Anne;0;100;3;3;-1;3;3;0;0;SCHW_PAL.LBM;SCHW_N01;SCHW_N01;3;SCHW_O01 SCHW_O02 SCHW_O03 SCHW_O04;SCHW_O01;6;SCHW_S01 SCHW_S02 SCHW_S03 SCHW_S04;SCHW_S01;3;SCHW_W01 SCHW_W02 SCHW_W03 SCHW_W04;SCHW_W01;6;SCHW_N01;SCHW_N01;3;SCHW_O01 SCHW_O02 SCHW_O03 SCHW_O04;SCHW_O01;6;SCHW_S01 SCHW_S02 SCHW_S03 SCHW_S04;SCHW_S01;3;SCHW_W01 SCHW_W02 SCHW_W03 SCHW_W04;SCHW_W01;6;SCHW_W03;-1;SCHW_W01;-1;SCHWSITN;-1;SCHWSITS;-1;SCHW_WN SCHW_WO SCHW_WS SCHW_WW;SCHW_WN;-1
-;-;-;-;-;-;-;-;-;-;0;0;-;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;SH_BIG;1;SH_BIG;-1;SH_BIG;-1;SH_BIG;-1;SH_BIG;-1;SH_BIG SH_BIG SH_BIG SH_BIG;SH_BIG;-1
[...]

Initial File Loading Bugged

The current check, whether we should update all files is bugged. It will try to get a new path and re-import all files on game start, when starting from the standalone export.

There are problems with the saving a version number with the game data as it will ultimately end up in the editor and thus in the exported game.

This is rather low priority, but still needs to be addressed.

Transparency issue with the status bar

The status bar has some black pixel, the image extractor makes them transparent.

We should maybe add a black texture behind the status bar to hide possible background overlap

Project death?

Dear WizzardMaker,

it seems that there is no work in progress here. Is your project death or will there be a release soon?

Kind Regards,

Krawei

Sometimes RoomManager can't find the room scenes

Was already mentioned in #4 by @Serphentas

It looks like a Godot bug. Directory.Open(PathName) returns an error 31 (InvalidParameter).
The script works when the base scene is started and not loaded from the load.

Fix would be to change the system from searching for rooms to add them in the editor manually.

Pawns

Loading and displaying characters in the airport.

Recreate rooms

Get all rooms in a list and set the full background according to the current room

Only includes visual content, no game logic

Image Management System

Initially started by @WizzardMaker

We need a system to easily access all needed files and their textures. A central place where all GFXLibs are loaded and we have a template system with objects/scenes for all files, or maybe use an editor for a level with a saved level file for loading

programming language decision

We have to decide a language for the project when using Godot.
I don't want a mumbo jumbo of 4 different languages having to work together.

We have to decide between:
C# - not yet 100% production ready in Godot, but feature complete and has all the benefits of C# like strong typing, LINQ, easy understanding

C++ - fully supported by godot, Godot enforced overhead for editor variables, standard functions etc. Not as easy to get into learning curve wise for other contributors

GDScript - 100% supported by godot. Unknown language for me and maybe others

Le projet est il abandonné en 2024 ?

Bonjour, je viens vers vous pour savoir si le projet Airlines Tycoon était abandonné en 2024 ?
Car je vois que depuis quelques années il n'y a plus de contribution malheureusement et j'ai de plus en plus de mal à faire tourner le jeu original sur Steam.
Merci d'avance

File pathing wrong for non windows game versions

Is your feature request related to a problem? Please describe.
Linux and Mac store their files in a different folder structure and also handle the file name capitalization differently.

Describe the solution/addition you'd like
Custom helper class for File handling would be needed. It will search for the needed file in the game folder. This will prevent errors about missing files (except when they are not in the game folder to begin with) and wrong file name capitalization.
This could fix #16 and #21

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.