Coder Social home page Coder Social logo

openairlinetycoon / openatdeluxe Goto Github PK

View Code? Open in Web Editor NEW
102.0 102.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%
cross-platform game godot godot-engine mono remake

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

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

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

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.

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)

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

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

Pawns

Loading and displaying characters in the airport.

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

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.

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.

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

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

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

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.

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

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!

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

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.