Giter Club home page Giter Club logo

flexlay's Introduction

SuperTux

Windows MacOS GNU/Linux Android

WebAssembly Ubuntu Touch Github All Releases

SuperTux is a jump'n'run game with strong inspiration from the Super Mario Bros. games for the various Nintendo platforms.

Run and jump through multiple worlds, fighting off enemies by jumping on them, bumping them from below or tossing objects at them, grabbing power-ups and other stuff on the way.

Screenshot

Story: Penny gets captured!

Tux and Penny were out having a nice picnic on the ice fields of Antarctica. Suddenly, a creature jumped from behind an ice bush, there was a flash, and Tux fell asleep!

When Tux wakes up, he finds that Penny is missing. Where she lay before now lies a letter:

Tux, my arch enemy! I have captured your beautiful Penny and have taken her to my fortress. The path to my fortress is littered with my minions. Give up on the thought of trying to reclaim her, you haven't got a chance!

-Nolok

Tux looks and sees Nolok's fortress in the distance. Determined to save his beloved Penny, he begins his journey.

Installation

For major platforms, stable releases are built and available for download from supertux.org or alternatively directly from GitHub. You should be able to install these using default tools provided by your platform. On macOS, when Gatekeeper is enabled (default) it will refuse to open SuperTux. This is due to the lack of a signature on the application. If you wish to open SuperTux anyway without disabling the Gatekeeper feature entirely, you can open the application from the context menu (control click on the icon). macOS will then remember your choice the next time.

Documentation

Important documentation for SuperTux is contained in multiple files. Please see them:

  • INSTALL.md - Requirements, compiling and installing.
  • README.md - This file
  • NEWS.md - Changes since the previous versions of SuperTux.
  • LICENSE.txt - The GNU General Public License, under whose terms SuperTux is licensed. (Most of the data subdirectory is also licensed under CC-by-SA)
  • data/credits.stxt - Credits for people that contributed to the creation of SuperTux. (You can view these in the game menu as well.)

Playing the game

Both keyboards and joysticks/gamepads are supported. You can change the controls via the Options menu. Basically, the only keys you will need to use in-game are to do the following actions: jump, duck, right, left, action and 'P' to pause/unpause the game. There isn't much to tell about the first few, but the "action" key allows you to pick up objects and use any powerup you got. For instance, with the fire flower, you can shoot fireballs, or with the ice flower fire ice pellets.

Other useful keys include the Esc key, which is used to go to the menu or to go up a level in the menu. The menu can be navigated using the arrow keys or the mouse.

In the worldmap, the arrow keys are used to navigate and Enter to enter the current level.

Community

In case you need help, feel free to reach out using the following means:

  • IRC: #supertux on Libera Chat hosts most of the discussions between developers. Also, real-time support can be provided here. If you don't know how to use an IRC client, you access the channel using a web-based client. Please stay around after asking questions, otherwise you will be disconnected and might miss potential answers.
  • Matrix: #supertux:matrix.org is bridged to our IRC room.
  • Forum: The SuperTux community is very active on the forum, the discussion ranges from feature proposals to support questions. In particular, most community-contributed add-ons are published there first, so this is worth checking.
  • Mailing Lists: The supertux-devel mailing list is dead. Here is the archive.
  • Social Media: Mostly on Twitter at the moment.
  • Discord: Also, you can join our Discord server to get in touch with us.

Development status

As of now, with the release of SuperTux 0.6.3 (December 2021), the Forest World is almost finished, since the ghost forest section has been included. However, some levels, especially the Ghostree Level, are considered to be placeholders, because for the next version (0.7.0) a great overhaul is planned with new features like reworked boss fights, graphics, and worlds. If you have some Constructive Feedback, Contributions or ideas to share, don't hesitate to contact us with one of the possibilities given above.

flexlay's People

Contributors

grumbel avatar karkus476 avatar matzeb avatar maxteufel avatar tobbi avatar vampy avatar

Stargazers

 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

flexlay's Issues

Worldmaps

See #35

  • Delete old worldmap code
  • Handle unknown tags
  • Write to file. (Currently tileset isn't. Try running a worldmap)

Crash During Write Damages Target

A crash or other interrupt of the writing to a level file leaves it in a half-written state. This means the level cannot be used any longer.

Let the player interact with objects instead of tiles

Interacting with tiles is exhausting (since you need to select them one-by-one). Better idea would be:
Have objects (like the run sign which consists of those 4 or whatever tiles)
Objects that have variable height could also be possible, height could be adjusted using the scroll wheel, or something.

Create climbable ladders

Instead of first creating a ladder and then putting a climbable object that covers it, we should create some item that makes creating a climbable ladders easy.

Create a "Resource library" instead of specifying file paths

Specifying sprite filenames for badguys each time is simply bad. IMO we should scan for .sprite files and add them to a "Sprite library". Then selecting a sprite would be much easier!

Actually, let's create a resource library! Makes it much easier to deal with resources of any kind.

Hover Mouse Text is Always 'Text'

When you hover over a button in the editor, some text appears displaying 'Text' rather than the function to be executed upon clicking.

Project View

We could combine creating levels, worldmaps and other content in a project view.

That could be a sidebar tree view that contains all content, parent node is the add-on project.

Sub-nodes can contain media (custom sprites, custom sounds etc.), levels and worldmaps.

Update to PyQt5

Latest and greatest. I think it's better to stay updated.

Can't Edit Worldmap Files

Traceback (most recent call last):
File "supertux/gui.py", line 544, in load_level
self.load_worldmap(filename)
File "/supertux/gui.py", line 561, in load_worldmap
worldmap = WorldMap(filename)
File "supertux/worldmap.py", line 51, in init
tree = load_lisp(self.filename, "supertux-worldmap")
File "supertux/util.py", line 30, in load_lisp
raise Exception("Error: '%s' is not a '%s' file" % (filename, root_symbol))
Exception: Error: 'data/levels/world1/worldmap.stwm' is not a 'supertux-worldmap' file

Support For Multiple Sectors

Currently only one is added, even though many may exist

  • Update LayerSelector
  • supertux/gui.py : self.sector -> self.sectors

Minimap background

Could show a shadow outline or minature version of the level. This means you can easily see where you're editing

New Level Wizard

Create a wizard to set some values that are expected of a new level straight away.

  • Level Name
  • Level Author
  • Level Music
  • Level Background
  • Level Width & Height
  • Level Camera Style
  • Level License (drop down?)

Source View

It would be great to have a source view for the lisp contents of a level, preferably with syntax highlighting.

Add add-on packaging wizard

Packaging an add-on is rather difficult at the moment. A wizard that automatically creates a zip file out of a couple of levels, images and sounds (if needed) would be really cool.

Fix EditorMap Organisation

Currently the EditorMap has a list of layers which only ever has 1 item! This ObjectLayer contains all the objects. Anyone reading the code may think EditorMap.add_layer(tilemap_layer) would add that layer, but it won't.

Graphics Update

It looks like the graphics in Flexlay are a little rusty, I found this cool site with tons of free icons:
https://icomoon.io/#preview-free
You can download them as a number of different formats such as png, pdf, and even svg. So you can edit them!

Image Thumbnail

Display a thumbnail in the properties widget when showing images

Layers

You can't change layers at all at the moment!

  • Add/Remove layers
  • Hide/Show layers.
  • Hide All/Show All layers
  • Paint/Select on a certain layer
  • The above, except with tilemaps that don't start at (0,0)

'Project' Tab

A QTreeView which mirrors the format of the level file's s-expr tree

Layers Render in the Wrong Order

Currently, the background layer often appears in front of the interactive layer. This appears to be a problem with the loading of the levels, rather than the rendering of them.

TODO File

Can be found at flexlay/supertux/TODO :

ToDo:

  • smooth selection
  • tile editor
  • wrapper sexpr parser into a read class, LispReader like
  • scrollbar in tileselector
  • gui and some magic to set the supertux datadir
  • support additional layers (paralax and normal)
  • doors/sector support needs improvement
  • moving platforms + path
  • camera path
  • automatic backup of files
  • get rid of make_metadat, get_ruby_object in SuperTux code
  • faster tile-loading (load on demand, pixelbuffer cache)
  • make controlpoints unzoomable
  • fix load/save and write a few testcases for them
  • seperate undoable functions from not undoable ones
  • provide feature to group/suspend undo/redo
  • objects need to have visible text-labels attached to them (name of spawnpoints, etc.)
  • all pseudo object without position (background, particle-system) should be placed beside each other beginning at 0, -32. (Currently they're all placed at 0,0)

Bugs

  • switching to the current sector resets visible properties
  • sometime the tilemap is alot huger than the level

Include help and reference inside the level editor

I think including a reference about badguys, good practices etc. could make the editor even greater.

Aka, what does each badguy do, is it burnable, squishable, everything we have on the wiki right now. Since some people who might not have internet all the time might want to create levels as well...

Scroll Bars don't Work Properly

When you scroll, you cannot scroll as far as you want to. This doesn't happen so much with levels loaded from other files

Add translation support to the editor

I am not sure how hard this is, but for people who want to create levels but do not know English, it might be great to support i18n for the editor.

Add select tool

Currently there are all kinds of fancy tools in the toolbar but no select tool. We should definitely add that, otherwise the user cannot change any objects of the level.

Speed up rendering of tilemaps

Any shortcuts, or faster ways to render the tilemaps and objects, particularly when zoomed out.
Currently, it is slow on my laptop when zoomed out, and sometimes even when zoomed in

Improve user-friendliness of layers

  • In the overview, show z-index and button to change visibility next to each layer
  • You can't add/remove any layers: #1
  • #58, but there's even more options than z-index and solid
  • Treat particles, such as rain, snow and ghosts, as well as thunderstorms as layer instead of showing them as object in the level
  • Always order tilemaps correctly (by z-pos) in selector and editormap (e.g. when undoing delete)

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.