/desktop-tux

WIP desktop-goose clone for X11/Linux

Primary LanguageCGNU General Public License v3.0GPL-3.0

desktop-tux

WIP desktop-goose clone for X11 (currently moving the rendering to OpenGL, I wanted to use Vulkan but decided to go for OpenGL for backwards compatibility).

Working on getting all the basic mechanics working. Haven't worked with X11/Xlib and documentation is a bit spotty, but I'm figuring it out.

A short demo of the current status (as of 5/2/2020) can be seen here. The recorded footage is 60fps 4480x1080 and shows off the use of both .xpm files and .png files, although using .png without a compositor has issues because of transparancy (note that .xpm does not need a compositor for this, but it still helps with the rendering & overall smoothness).

Once I feel like the overall structure of the program (especially rendering and input handling) is solid, I will start implementing the "AI" for the Tux/goose/whathaveya.

Current, specific "TO-DO":

  1. display images in OpenGL
  2. find a way to display at least .gif (maybe .mp4 and/or .webm as well? ) so that the Tux can drag a gif onto the user screen
  3. clean up code
  4. Decide how to implement sound capabilities & start working on them
  5. implement OpenGL rendering (finally found a way to achieve a transparent window, see here)
  6. investigaste multiple screen width/height issue (on multiple monitors the physical max height seems to follow the max height of the screen from which the program is started and I haven't found a way to distinguish between single physical monitors) (issue fixed but not committed, since the rendering will be rewritten I'm going to incorporate this in #5)

Current overall "plan":

  • Establish a solid foundation of structures and methods that are working , to build up on
  • Customizable characters/animations (both in at least the .xpm and .png file formats)
  • Customizable sound effects in both .mp3 and .ogg
  • Different behaviors that are independent from one another so that you can toggle whatever you want
  • Customizable typed messages