hackerpoet / marblemarcher Goto Github PK
View Code? Open in Web Editor NEWA Fractal Physics Game
License: GNU General Public License v2.0
A Fractal Physics Game
License: GNU General Public License v2.0
It would be very usefull and probably easy to implement a AssetsMods directory lookup to allow overriding of game's assets, for safe modding.
Thanks so much for posting that source code and for posting those raymarching and fractal videos!
Hello,
Following in the footsteps of #1, it would be nice to have prebuilt binaries (via GitHub releases) that prospective users could download to avoid having to clone and build the whole project. In addition, this could allow non-developers to be exposed to the primary concept behind the game, the fractal game engine, and give it a wider audience.
I'm not sure if this is where you intend to take the project, or if you would prefer to keep it as an open source demo of sorts, but I figured it might be worth starting the conversation.
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/Users/Vania/Desktop/vcpkg/scripts/buildsystems/vcpkg.cmake
...
CMake Error at /Users/Vania/Desktop/vcpkg/scripts/buildsystems/vcpkg.cmake:141 (_add_executable):
Target "MarbleMarcher" links to target "Freetype::Freetype" but the target
was not found. Perhaps a find_package() call is missing for an IMPORTED
target, or an ALIAS target is missing?
Call Stack (most recent call first):
CMakeLists.txt:26 (add_executable)
I've checked with brew that freetype is installed and also checked that it's in vcpkg/packages.
On macOS, I compiled and ran it and it failed to capture the mouse when in gameplay, which causes the game to be unplayable as unless I blindly manage to center the mouse the camera flies all over the place.
in a very low end device(GPU based)(or a windows emulator that you can run .exe files in) the game crashes after you select any resolution, you can get a few frames of the game running if you use 2 cores(on a 4 core CPU), if settings for quality decrease(Reflections, Shadows and Dynamic Lightning toggles) could get you a few more frames in to the game but it would crash instantly, probably LLVMpipe(Software) renderer could run the game at a miserable 2 fps since virGl(virtual OpenGL ES) is not very good for compatibility, so adding LLVMpipe(software) renderer support for the fix could actually work since every program I tried in an emulator, it ran much much better and even just managed to run programs that virGL renderer couldnt.
Marble Marcher generates absolutely beautiful images, and it would be nice if we could easily capture those. Screenshots should:
Not an issue, but I wanted to give you some more ideas =]
There is a really awesome game Hyperrogue: http://roguetemple.com/z/hyper/online.php
that lets you explore an infinite hyperbolic space. Fractals are infinite, so exploring fractals might we really cool! In hyper rogue you move between "lands" that have different gimmicks. Maybe in one you coul get smaller the farther you go, and in another you get bigger; there are so many possibilities! . You could even explore multidimensional, or even hyperbolic space!
I really loved the game, and am excited to see where you and others take the idea =]
Could the usage rights of the assets please be clarified? I can see there is a font license, but none for the sounds and music. This is important e.g. for the ability to be included in some package repositories.
There are no video settings. I want to play in high res without the graphical effects. I have 12 frames on 1920 x 1080 or I have blurry pixals on 640 x 360.
Graphics Card: NVIDIA GeForce 940MX
Please refer to https://0x46.net/thoughts/2019/02/01/dotfile-madness/ for more information.
TL;DR; throwing everything at the user's home directory is a terrible idea that should stop. Making use of $XDG_DATA_HOME
would be ideal.
The mouse sensitivity seems a bit fast. I can't find a good place, even when in Low sensitivity that allows me to be level with the ball and not spinning around it. Perhaps there should be a larger neutral zone and less range on the maximum height and spin speed?
Looks good!
Build succeeds (with instructions from README), but launch fails with error
Illegal Instruction: 4
Does anyone know what is happening?
Hi.
I would like to include this in guix.
Is it stable?
Could you tag a release?
I have a 144hz monitor, and I'd like to get more than 60 FPS
Hey, thank a alot for releasing this, this looks super useful and interesting to learn from. I work with some other game engines which happen to be GPL2 (OpenJK and other Raven/idtech3 engine spinoffs). The problem now is that it's not legal to mix GPL3 with GPL2 source code. That would require the GPL2+ license for those other game engines.
Could you please use a more liberal license, like ISC/BSD/MIT? Then this code can be used in a lot more projects.
The timer only counts to 60 on the last part.
should be easily fixed by changing line Overlays.cpp.268 to const int t_ms = ((t_all % 60)*100)/60;
I installed SFML once from source and once using the precompiled libraries for Linux here: https://www.sfml-dev.org/download/sfml/2.5.1/ (also tried 2.5.0).
Everything up until cmake --build build
worked fine. Once I ran that command, however, I got the following error:
[ 87%] Linking CXX executable MarbleMarcher
CMakeFiles/MarbleMarcher.dir/src/Main.cpp.o: In function `main':
Main.cpp:(.text+0xa53): undefined reference to `sf::RenderTexture::create(unsigned int, unsigned int, sf::ContextSettings const&)'
Main.cpp:(.text+0xa8f): undefined reference to `sf::RenderWindow::setActive(bool)'
src/libMarbleMarcherSources.a(Overlays.cpp.o): In function `Overlays::UpdateMenu(float, float)':
Overlays.cpp:(.text+0x913): undefined reference to `sf::Text::setLineSpacing(float)'
Overlays.cpp:(.text+0x92d): undefined reference to `sf::Text::setLineSpacing(float)'
src/libMarbleMarcherSources.a(Overlays.cpp.o): In function `Overlays::UpdateControls(float, float)':
Overlays.cpp:(.text+0xa5c): undefined reference to `sf::Text::setLineSpacing(float)'
Overlays.cpp:(.text+0xa76): undefined reference to `sf::Text::setLineSpacing(float)'
src/libMarbleMarcherSources.a(Overlays.cpp.o): In function `Overlays::DrawCredits(sf::RenderWindow&)':
Overlays.cpp:(.text+0x1a92): undefined reference to `sf::Text::setLineSpacing(float)'
src/libMarbleMarcherSources.a(Overlays.cpp.o): In function `Overlays::MakeText(char const*, float, float, float, sf::Color const&, sf::Text&, bool)':
Overlays.cpp:(.text+0x1e2f): undefined reference to `sf::Text::setLetterSpacing(float)'
src/libMarbleMarcherSources.a(SelectRes.cpp.o): In function `SelectRes::MakeText(char const*, float, float, int, bool, bool) const':
SelectRes.cpp:(.text+0x72a): undefined reference to `sf::Text::setLetterSpacing(float)'
collect2: error: ld returned 1 exit status
CMakeFiles/MarbleMarcher.dir/build.make:95: recipe for target 'MarbleMarcher' failed
make[2]: *** [MarbleMarcher] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/MarbleMarcher.dir/all' failed
make[1]: *** [CMakeFiles/MarbleMarcher.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Seems to be something to do with SFML, but I'm not sure exactly what. I thought it was something to do with the specific library I installed, but I got the same error when using the precompiled one. Any ideas?
Thanks
I stumbled upon this via Reddit. Cool looking game!
First, I needed to also install cmake:
brew install cmake
But I'm still having issues on the cmake
command:
[Wed Jan 09] 12:49 PM:~/repos/personal/MarbleMarcher/build[master] (casares)$ brew reinstall sfml
==> Reinstalling sfml
==> Downloading https://homebrew.bintray.com/bottles/sfml-2.4.2_1.mojave.bottle.1.tar.gz
Already downloaded: /Users/casares/Library/Caches/Homebrew/downloads/5225f9fe06926bc770df12433ea4585e34775e491eae886cce1b38bc822cbca3--sfml-2.4.2_1.mojave.bottle.1.tar.gz
==> Pouring sfml-2.4.2_1.mojave.bottle.1.tar.gz
🍺 /usr/local/Cellar/sfml/2.4.2_1: 132 files, 1.7MB
[Wed Jan 09] 12:49 PM:~/repos/personal/MarbleMarcher/build[master] (casares)$ cmake ..
CMake Error at CMakeLists.txt:8 (find_package):
By not providing "FindSFML.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "SFML", but
CMake did not find one.
Could not find a package configuration file provided by "SFML" (requested
version 2.5) with any of the following names:
SFMLConfig.cmake
sfml-config.cmake
Add the installation prefix of "SFML" to CMAKE_PREFIX_PATH or set
"SFML_DIR" to a directory containing one of the above files. If "SFML"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
See also "/Users/casares/repos/personal/MarbleMarcher/build/CMakeFiles/CMakeOutput.log".
Thanks for any help!
Sorry if this is the wrong place, but I'm looking to get more info on this.
I love this approach, it seems really novel, and I can't find anything similar to it. What is the potential of this to non-spherical object interaction? Pardon my ignorance on the mathematics. Any other sources or reading you could point me to that inspired this? This is super cool.
The start countdown should not be tied to the game's FPS. Playing on a resolution that is a bit too hard for the GPU can be a chore, as it can take quite a while just to get started playing. Some people just want to look at the details!
Alternatively, add an option to remove or customize the countdown?
The creation of the build system is fine, it can find sfml.
But the compiler is not having it.
I have tried everything...
tomlister:build tom.lister$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/Users/tom.lister/vcpkg/scripts/buildsystems/vcpkg.cmake
-- The C compiler identification is AppleClang 10.0.0.10001145
-- The CXX compiler identification is AppleClang 10.0.0.10001145
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Freetype: /Users/tom.lister/vcpkg/installed/x64-osx/lib/libfreetype.a (found version "2.8.1")
-- Found ZLIB: /Users/tom.lister/vcpkg/installed/x64-osx/debug/lib/libz.a (foundversion "1.2.11")
-- Found PNG: /Users/tom.lister/vcpkg/installed/x64-osx/share/png/../../lib/libpng16.a (found version "1.4.12")
-- Found BZip2: /Users/tom.lister/vcpkg/installed/x64-osx/lib/libbz2.a (found version "1.0.6")
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - found
-- Found SFML 2.5.1 in /Users/tom.lister/vcpkg/installed/x64-osx/share/sfml
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/tom.lister/MarbleMarcher/build
tomlister:build tom.lister$ cd ..
tomlister:MarbleMarcher tom.lister$ cmake --build build
Scanning dependencies of target MarbleMarcherSources
[ 12%] Building CXX object src/CMakeFiles/MarbleMarcherSources.dir/Level.cpp.o
[ 25%] Building CXX object src/CMakeFiles/MarbleMarcherSources.dir/Overlays.cpp.o
In file included from /Users/tom.lister/MarbleMarcher/src/Overlays.cpp:17:
/Users/tom.lister/MarbleMarcher/src/Overlays.h:18:10: fatal error:
'SFML/Graphics.hpp' file not found
#include <SFML/Graphics.hpp>
^~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [src/CMakeFiles/MarbleMarcherSources.dir/Overlays.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/MarbleMarcherSources.dir/all] Error 2
make: *** [all] Error 2
Hi bros, by this game I was actually inspired to create my own game(or atleast to draw a picture on a window rather than printing text on a console). I installed(built from sources) the SFML and eigen dependencies the game ran fine and also good game btw :-).
But the problem started when I tried to create my own CMakeLists.txt file. I read the documentation from SFML website and it is not given for Linux(where there is no graphical interface and everything has to be typed).So, I tried changing your CMakeList file and but you 2 CMakeLists.txt file(1 which is located in the projects folder and another in src folder) but it was just a failure.
My main problem is I'm struggling to learn how to use CMake and I'm not understanding their doumentation and how to use it for adding SFML dependency.
I'm not doing any type a big project or anything. I just want the code in https://www.sfml-dev.org/tutorials/2.5/start-linux.php in this to run.
Pls anyone help me with the CMakeList.txt. If possible please explain in detail what is happening in CMakeList.txt.
May God bless anyone who read this fully.
And please help me. This is the only thing which is keeping me from moving forward
The timer goes fast
This makes it hard to speed run levels as the time given is incorrect
Example in video:
https://youtu.be/jj0x4Az2XIY
Windows - 60fps
I downloaded the Windows binary and started playing it. It worked fine, though I could only play it at potato quality. I got to the level "The Sponge", tried a few times, and exited to look at the levels, to see how far through the game I was. On trying to resume playing, I could not. I cannot get back into that level from the levels menu, because it's listed as "???". If I click on the level before it, I can play that level, but when I finish that level, it restarts that same level rather than going to the next one (the one I wanted to play). If I click "Play" in the main menu, it starts me at level 1.
Expected behavior:
Observed behavior:
Can someone real quick add 4k, 8k resolutions now that we have the 4090s? :)
As a player,
I want to control the music volume,
So I can play my own music but keep the game's SFX.
I have MacOS 10.13.6. I managed to download the dependencies and build everything, but when I started playing (and editing the code a bit) the fractals were blue and the marble was yellow — there was no change in color, whatever the level and whatever the resolution. What's more, the graphics seemed bad-quality and pixelated, in contrast to what I saw in the multiple videos on this game.
How do I fix this?
After cloning the repository and following build instructions, launching unix executable MarbleMarcher
fails with error
Failed to open shader file "assets/vert.glsl"
Failed to compile vertex shader
Why might this be happening?
I can give more details if necessary, but everything else says it succeeds, so I don't know what could be helpful.
The titles says it all. Maybe, with access to the marble's rotation, using triplanar or even cube mapping it would be possible to implement a skin system for the marbles.
This is a feature request that I think would be both very useful and relatively simple to implement.
There could be a free view mode in which 3D fractals could be explored. It might be similar to the screensaver mode (could potentially replace it), just with the ability to move the camera and change the fractal parameters.
Even if very simple, this would make for a nice tool to complement programs such as Mandelbulber, which is not real-time.
Let me end by a thank you for this great project.
setting ANTIALIASING_SAMPLES in frag.glsl to 1.5 darkens the image
setting it to 2.5 brightens the image
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.