scotto3394 / TheOldRepublic

Learning project with a Star Wars flair
MIT License
0 stars 0 forks source link

UI choices #3

Open scotto3394 opened 7 years ago

scotto3394 commented 7 years ago

Using a pure Rust implementation, the use of Piston makes the most sense to implement any graphical component. Implmenting a map + sprites for combat seems feasible, but a Widget based interface for other interactions would probably require the Conrod crate from Piston. However, a cursory inspection shows that significant effort would be required to get up to speed on such a crate.

I'm open to suggestions, thoughts, and comments but I currently see 3 main avenues of approach. 1) Keep the graphical interface incredibly simple. Piston would be used for a simple combat map, text-based interface for the rest. +++ Simplest approach, stays within a pure Rust codebase --- Loses out on smoother, clearn interfaces.

2) Attempt to use Conrod to build the GUI for most of the interaction. +++ Pure Rust codebase and all the desired implementations --- Unstable codebase lacking documentation, potentially slow to implement

3) Switch to an alternate language GUI library (Python-based most likely) +++ Easier library to learn and prototype, most likely well documented --- Multiple language codebase, potential errors in interacting between libraries.

scotto3394 commented 7 years ago

Until a better solution can be found, the simplest solution moving forward is to use a Text UI system. I've decided to try out the Cursive library, which is a higher-level Rust wrapper to the appropriate windows and linux curses backends.