Coder Social home page Coder Social logo

silverweed / lifish Goto Github PK

View Code? Open in Web Editor NEW
49.0 6.0 7.0 62.14 MB

Remake of the videogame "BOOM" by Factor Software

Home Page: https://silverweed.github.io/boom

License: Other

C++ 91.03% CMake 5.54% Ruby 1.01% Shell 1.35% Awk 0.11% Python 0.88% Objective-C++ 0.07%
game sfml linux windows osx videogame arcade 2d local-multiplayer cpp14

lifish's Introduction

ABOUT

This is the branch of Lifish that contains the code for BOOM Remake, a faithful remake of the original BOOM game.

Lifish was a work-in-progress arcade game inspired by BOOM, but that project is currently in indefinite hiatus. The boom branch is the one that's still being occasionally updated, mostly for bugfixing, as BOOM Remake is already complete.

Lifish (and by extension, BOOM Remake) has a level editor available as a separate program, currently working only on Linux and MacOS: LifishEdit. A new level editor is in the making, working on Linux and Windows: BOOMEdit: Remake.

Supported platforms

BOOM Remake is known to work on the following platforms:

  • Windows 64 bit (>= 7)
  • Linux 64 bit (with non-ancient versions of libc and libstdc++)
  • macOS Intel (>= 10.15) and Apple Silicon (>= 11)

Binaries

The latest "official" binaries are available here. The latest version in this repo may contain additional features that I haven't had time to polish and package yet in the release.

Building

DEPENDENCIES

Linux, OS X, BSD, etc

The game can be compiled on *nix (tested on Linux, OSX and FreeBSD) via cmake . && make (you need to have SFML >=2.5 installed).

Windows

On Windows you can use cmake + Visual Studio.

Command line parameters

If launched from the command line, lifish accepts a bunch of parameters (see lifish -h for details). It also accepts an optional argument which is the path of the level JSON to use (default: lifish.json).

Note about assets

The original BOOM assets belong to Factor Software. I don't hold any intellectual property upon them.

LICENSE

Copyright (c) silverweed, 2022

See the LICENSE file for licensing information.

CONTRIBUTORS

Other

Coded with vim.

lifish's People

Contributors

drsh4dow avatar malespiaut avatar orazioedoardo avatar silverweed 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lifish's Issues

More players?

So this is super "would be awesome..." but wouldn't it be great if you could have 4, 5, 6+ players? 😁

Consider this a formal feature request... :)

refactor entities behaviour

The current paradigm for entities' behaviors is via inheritance, but this leads to a messy design and class hierarchy. We should refactor the class tree to have a class Entity endued with components. Composition should allow a less entangled design.

macOS Big Sur no inputs during game

Hey! Thanks so much for the remake of this absolute classic.

Unfortunately the game doesn't seem to be receiving inputs on Big Sur. Have you tested this?

"Esc" works but none of the movement keys or bomb presses seem to have an effect.

icon.png is missing

When I start the game from console i get following warning.

Failed to load image "/usr/share/boom/assets/graphics/icon.png". Reason: Unable to open file

It's on the code

if (iconImg.loadFromFile(lif::getAsset("graphics", "icon.png"))) {

rewrite UI

In-game UI is minimal, and that's ok; but currently it's hardcoded in a pretty bad way: it isn't easily customizable and doesn't separate the model from the view (it has an internal event/rendering loop with logic mixed up with displaying), thus it's not compatible with a multithreaded version of the game.

The UI parts should be rewritten with the following points in mind:

  1. it must separate rendering from logic (and should be compatible with sf::Drawable)
  2. it should be more easily customizable, with data taken from outside the program rather than hardcoded in the classes themselves (maybe use JSON, since we already have a JSON lib)

Relicensing lifish

@bsvercl I'm opening this issue to contact you specifically, as private messages were removed from Github.

To get to the point: I'm about to close source this project. I'm glad you were interested in it enough to fork it, but I kindly ask you to delete your fork from Github so it does not remain unparented when I make this repo private.
I know you have all the rights to refuse to do so - the project is currently in GPL after all - but I'm asking this as a favor.
You can still keep the code of course, I just ask you not to 1. upload it on the internet or 2. redistribute it verbatim, as that code is incomplete and will not receive further (public) updates from me.

Again, this is a REQUEST, I have no rights to force you to delete that repo and I won't even try to do so.

The reason behind my decision to close source lifish is that I decided to go serious with it and try to complete it and sell it. However this means paying an artist to create the game graphics/sounds/etc; you'll understand that I'd like to at least cover this cost, and unfortunately I don't think that selling an open source game is a viable option.
I'd still like to re-open source the core engine later on, but until it's not 100% separated from the game, I'm not doing so.

Thank you for the collaboration.

[Boom] Missing High scores page

Thank you for making my childhood dreams available again!

Everything looks perfect but I noticed one thing is missing - a high scores page. In the original version, when you finally died each player was asked for a name and their score was saved. It was later available in the "high scores" pane in the menu.

Is this something you missed or decided to skip?

Once again – amazing job!!! 👏

Required SFML installation on Mac

I recently downloaded the latest build on Mac OS X and it failed to run with the error
"tried: '/usr/local/opt/sfml/lib/libsfml-graphics.2.5.dylib' (no such file)"

Installing SFML using homebrew with "brew install sfml" resolved the issue.

Noting for documentation purposes.

Thx!

Enemies sound wrong when turned

When you take all the coins and the Extra Game starts the enemies transform but still emit their typical sounds, not the transformed one.

Input not working properly on new OSX

SFML 2.4 fails to properly capture keyboard input on latest version of OSX.
Investigate this and either make it work (probably by upgrading to 2.5) or work around the issue (key event seem to still be working).

Enemies tend to be stuck in transporters

If you have for example a transporter at the end of a corridor that leads to another corridor enemies will often just follow those corridors all the time, even if by turning in another direction after transporting they may escape them. In the original Boom they would make the corridors a couple of times maximum, then change direction Ian’s go somewhere else. I’ve noticed this with Minotaurs in particular.

I don’t know if this is related, but all enemies seem much more active as well, roaming the map more than in the original boom. In particular the easy guys tended to remain in their areas when freed, now they go everywhere.

Saved games can star with zero hearts

Hi, probably I've saved a game while "crying" (dead) and when I load the game the player have zero hearts (all white): everything else works as expected and at first strike player dies.
Best regards.

Failed to compile on debian due to "‘debugPainter’ is not a member of ‘lif’" error

Hi, I'm trying to compile it running cmake . && make but I get this error:
[97%] Building CXX object CMakeFiles/lifish.dir/src/core/debug/DebugRenderer.cpp.o /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp: In lambda function: /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp:24:30: error: ‘debugPainter’ is not a member of ‘lif’ 24 | lif::debugPainter->addRectangleAt( | ^~~~~~~~~~~~ /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp:34:30: error: ‘debugPainter’ is not a member of ‘lif’ 34 | lif::debugPainter->addTextAt(c->getPosition() + sf::Vector2f(1, 1), ss.str(), 6, | ^~~~~~~~~~~~ /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp:37:38: error: ‘debugPainter’ is not a member of ‘lif’ 37 | lif::debugPainter->addTextAt(c->getPosition() + c->getSize() - sf::Vector2f(7, 9), | ^~~~~~~~~~~~ /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp: In static member function ‘static void lif::debug::DebugRenderer::drawSHCells(const lif::SHCollisionDetector&)’: /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp:53:30: error: ‘debugPainter’ is not a member of ‘lif’ 53 | lif::debugPainter->addRectangleAt( | ^~~~~~~~~~~~ /home/salvicio/src/lifish/src/core/debug/DebugRenderer.cpp:60:14: error: ‘debugPainter’ is not a member of ‘lif’ 60 | lif::debugPainter->addRectangleAt(sf::Vector2f(limit.left, limit.top), | ^~~~~~~~~~~~ make[2]: *** [CMakeFiles/lifish.dir/build.make:1868 : CMakeFiles/lifish.dir/src/core/debug/DebugRenderer.cpp.o] Erreur 1 make[1]: *** [CMakeFiles/Makefile2:83 : CMakeFiles/lifish.dir/all] Erreur 2 make: *** [Makefile:91 : all] Erreur 2
Suggestions?

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.