openairlinetycoon / openatdeluxe Goto Github PK
View Code? Open in Web Editor NEWThe open source remake of Airline Tycoon Deluxe
License: GNU General Public License v3.0
The open source remake of Airline Tycoon Deluxe
License: GNU General Public License v3.0
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
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
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.
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)
When entering a room from RoomAirport
and then leaving it, the camera should return to its former position.
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
Figure out how
are structured
Get all rooms in a list and set the full background according to the current room
Only includes visual content, no game logic
Loading and displaying characters in the airport.
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
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.
@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:
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.
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
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
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
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
Expected behavior
Screenshots
n/a
Desktop (please complete the following information):
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
[...]
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.
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
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!
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.