bithack / principia Goto Github PK
View Code? Open in Web Editor NEWOpen source physics-based sandbox game.
Home Page: https://principia-web.se
License: Other
Open source physics-based sandbox game.
Home Page: https://principia-web.se
License: Other
How to reproduce: Go to Electronics category, put in signal cable, move it around again, delete it, then change category.
(You can change to any category before deleting the signal cable, and changing it again will still crash)
After resolving a compilation error similar to #30 by reinstalling MSYS2 and the required MinGW-W64 libraries, the game successfully compiles under Windows 10 using MinGW-W64 as specified by the guide.
However, when the go
script attempts to launch the game (or when launching manually from the MinGW-W64 prompt), it silently fails:
EDIT: The recorded exit code is 127
.
There is no error message or anything. Launching on Windows directly (e.g. via Explorer) reveals several errors relating to symbols in the linked libraries:
I've tried to copy the .dll
files mentioned in the error popups into the directory* with the game executable, but that did not fix any of the previous errors. In fact, a new .dll
-related error pops up (EDIT: and it still does not fix launching it from the MinGW prompt):
Which, like the others, do not go away when the specified .dll
files are copied into the directory*. It is also strange as no linker errors or warnings were reported by the compiler / linker while the executable is compiling, only a few warnings in the executable source code for seemingly unrelated reasons.
I've also tried compiling on both C:\
and G:\
(in paths with no spaces in them on both cases) and that did not change the error.
* The .dll
files are directly copied from my MinGW-W64 installation, not from the invalid paths listed in the errors. EDIT: When inspecting the .dll
files in question, they do in-fact contain the symbols being complained about, but for some reason they are not being read correctly.
Windows 10 Home 21H1
Some GUI elements doesn't follow theme settings, causing texts on them hard to see.
I'm using Kubuntu 21.10 with KDE5, with the default "Dark Breeze" theme. Gnome/GTK styles is also set to "Breeze".
Changing Gnome/GTK styles to "Emacs" temporarily can solve this problem, but all GTK apps no longer follows system theme, causing inconsistency.
When copied to /opt/principia then runned with the .desktop file, gui seems to be not broken but doesn't follow system color at all.
Increase fluid limit as it is too low for higher-end hardware.
Add packaging scripts for common linux distros like debian and archlinux.
With these packaging scripts, the packages can be installed effortlessly with a package manager, without copying files and installing depends manually. And actions can also be set up for building these easily installable packages.
If you haven't read the mail :
The new Apparatus will happen, we just need a little nudge to get the snowball rolling!
But the media isn't realizing the size of this project, so they're not writing about it (yet). Send them a message, one by one from the list below (or pick just a few, if your time is limited), when they see that the interest is big, they will write about the game and boost the campaign!
I've already contacted them all, but they need to see that there's an actual interest from players. The more players contacting them, the better.
Don't forget to include the link to the Kickstarter page and YouTube video:
https://www.kickstarter.com/projects/emilromanus/apparatus-0?ref=74p4ea
https://www.youtube.com/watch?v=jvxJTTa5SCs
Bombarding targets:
https://www.pcgamer.com/about-pc-gamer/
https://www.androidpolice.com/contact/
https://corp.ign.com/content-team
https://www.makeuseof.com/contact/
https://www.gamezebo.com/get-reviewed/
https://www.droidgamers.com/contact-us/
https://kotaku.com/about
http://www.androidshock.com/contact/
https://www.polygon.com/contact#tip
https://www.androidauthority.com/contact/
https://www.gameinformer.com/staff
https://www.eurogamer.net/contact
https://www.rockpapershotgun.com/about-pc-gaming-rps/
https://www.gamespot.com/
https://www.destructoid.com/contact-us.phtml#contact
https://www.videogamer.com/contact-us
http://gamasutra.com/contactus
https://www.pcgamesn.com/about-us
https://www.theverge.com/a/tip-us-secure-contact-email
https://www.gamesradar.com/about-gamesradar/
https://www.gamezone.com/news/
Thanks! :-)
Gears, Gearbox, Rack, magnets angular dampener are all broken this is an issue thread for those objects.
Place LUA Script object and write:
function init(is_sandbox)
game:prompt("Hello", "ok", "cancel")
end
function step(count)
end
A prompt is displayed with message Hello
and options ok
and cancel
The prompt has empty message, and the only option available display the entire script, which can crash the game.
Weird but this doesn't happen on Windows, where the invalid object reference just keeps "working" (maybe a use-after-free situation or just an invalid object reference?)
I was able to reproduce this like this:
local e
function init(is_sandbox)
e = world:query(-999, -999, 999, 999, 1)
end
function step(count)
for i,v in ipairs(e) do
game:message(i)
v:get_position()
end
end
This issue only happens if e is a top-level local, and the object safely gets removed if e
is a global
happens on the latest windows actions build and the windows build on principia-web
log: run.log
joelr@JOEL-ROG-GL503GE MSYS /c/Bithack/principia/build-windows
$ ./go
CC ../src/jpeg/principia-jaricom.o
make: *** [Makefile:4817: ../src/jpeg/principia-jaricom.o] Error 1
I have followed the instruction & made sure all packages up to date.
I already moved the entire repo clone away from spaced folder name, right to the root, yet still emit the same error. What did I miss here?
Due to the ability to use load() unristricted it is theoreticly possibly to due bytecode execurion which can be used for malicous activities. Another issue that this creates is by disabling load you are missing out on some great functionality such as being able to execute code after the level has started. My solution would be to disable the load function and create something simmilar that restricts byte code access.
Workaround for now, do:
$ cd ../; build-linux/apparatus2
It uses bit-shifting. So levels wont load on non little endian hardware or they will load, but they will only load on one arch. Haven't had time to test.
Is there any way you can make a Lock Item hotkey? Would be a blast :D
Indeed it would be a blast. Could use L
or something.
It was outdated and wasn't easily built, I disabled it when migrating from ant to gradle. See the following files:
build-android/principia/src/main/res/layout-land/dialog_color_picker.xml
build-android/principia/src/main/res/layout/number_picker_with_selector_wheel.xml
Should be as easy as changing the slot count in sticky.cc
?
I'm electro from Principia (hope you remember)
Please release the source so that we can continue your work and make it awesome again
I have compiled the latest commit as of 12th August and it appears the level community does not load as per the screenshot below.
I was advised in some information on the principia-web.se community that this git version was using http://archive.principiagame.com/ for the level community but that doesn't seem to be the case and is loading https://principia-web.se instead (which doesn't appear to be working).
This commit seems to be where the community URL was changed so has the plan to play archived levels been dropped?
There are a lot of levels in the archived version and it seems to currently not possible to play levels from it, but it would be greatly appreciated if this was made possible.
For the community levels error shown below, Android version was compiled on Ubuntu, device is running on Android 11
I have a linux PC with touchscreen, and when I want to use it for principia, only one finger of touch input is recognized, even when "enable touch controls" option is on.
Will touch support for linux be implemented at some time future?
Getting an initial stable FOSS release of Principia out there should be a high priority, as I believe it would be the best way to drum up more activity and attention to get the ball rolling.
So I propose that the first open source version should be a rather minor one, like 1.5.2. With the minor patch version comes a limited scope, which should hopefully make it be released in a more timely manner.
What's to be done:
For a full list of what's done there's the Changelog page on the Wiki which I've just started and will be keeping up to date with new changes.
Outside of this any bugfixes and other improvements are welcome independent of the roadmap, but I think new features that would warrant a new level version or the like should wait. Please voice any suggestions or additions.
Releasing/packaging-related things:
principia
AUR package that tracks stable releases (@rollerozxa)Tried to build linux version following https://github.com/Bithack/principia/tree/master/build-linux#readme and it failed.
The problem is likely about missing SDL library, but I'm not sure how to configure it.
blue-beaker@blue-beaker-PC:~/G/Git/principia_$ cd /home/blue-beaker/G/Git/principia_/build-linux
blue-beaker@blue-beaker-PC:~/G/Git/principia_/build-linux$ ./autogen.sh
./configure
./go
configure.ac:6: installing './compile'
configure.ac:3: installing './install-sh'
configure.ac:3: installing './missing'
Makefile.am: installing './depcomp'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of gcc... gcc3
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for gtk+-2.0 >= 2.0... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
Release: 0
Run: 1
CC ../src/tms/core/apparatus2-atlas.o
CC ../src/tms/core/apparatus2-backend.o
CC ../src/tms/core/apparatus2-batch3d.o
CC ../src/tms/core/apparatus2-camera.o
CC ../src/tms/core/apparatus2-ddraw.o
CC ../src/tms/core/apparatus2-batch.o
CC ../src/tms/core/apparatus2-builtin-shaders.inc.o
CC ../src/tms/core/apparatus2-entity.o
CC ../src/tms/core/apparatus2-event.o
In file included from ../src/tms/core/texture.h:6,
from ../src/tms/core/atlas.h:4,
from ../src/tms/core/glob.h:1,
from ../src/tms/core/batch3d.c:2:
../src/tms/backends/linux/tms/backend/opengl.h:10:10: fatal error: SDL.h: No such file or directory
10 | #include <SDL.h>
| ^~~~~~~
In file included from ../src/tms/core/texture.h:6,
from ../src/tms/core/atlas.h:4,
from ../src/tms/core/glob.h:1,
from ../src/tms/core/atlas.c:1:
../src/tms/backends/linux/tms/backend/opengl.h:10:10: fatal error: SDL.h: No such file or directory
10 | #include <SDL.h>
| ^~~~~~~
compilation terminated.
compilation terminated.
In file included from ../src/tms/core/entity.h:6,
from ../src/tms/core/entity.c:6:
../src/tms/core/tms.h:35:10: fatal error: SDL.h: No such file or directory
35 | #include "SDL.h"
| ^~~~~~~
compilation terminated.
In file included from ../src/tms/core/ddraw.c:6:
../src/tms/core/tms.h:35:10: fatal error: SDL.h: No such file or directory
35 | #include "SDL.h"
| ^~~~~~~
compilation terminated.
make: *** [Makefile:2658:../src/tms/core/apparatus2-atlas.o] Error 1
make: *** Waiting for tasks to complete....
make: *** [Makefile:2756:../src/tms/core/apparatus2-entity.o] Error 1
make: *** [Makefile:2686:../src/tms/core/apparatus2-batch3d.o] Error 1
make: *** [Makefile:2742:../src/tms/core/apparatus2-ddraw.o] Error 1
In file included from ../src/tms/core/camera.c:5:
../src/tms/core/tms.h:35:10: fatal error: SDL.h: No such file or directory
35 | #include "SDL.h"
| ^~~~~~~
compilation terminated.
make: *** [Makefile:2728:../src/tms/core/apparatus2-camera.o] Error 1
In file included from ../src/tms/core/event.c:6:
../src/tms/core/tms.h:35:10: fatal error: SDL.h: No such file or directory
35 | #include "SDL.h"
| ^~~~~~~
compilation terminated.
In file included from ../src/tms/core/texture.h:6,
from ../src/tms/core/atlas.h:4,
from ../src/tms/core/glob.h:1,
from ../src/tms/core/batch.c:1:
../src/tms/backends/linux/tms/backend/opengl.h:10:10: fatal error: SDL.h: No such file or directory
10 | #include <SDL.h>
| ^~~~~~~
compilation terminated.
make: *** [Makefile:2770:../src/tms/core/apparatus2-event.o] Error 1
make: *** [Makefile:2700:../src/tms/core/apparatus2-batch.o] Error 1
blue-beaker@blue-beaker-PC:~/G/Git/principia_/build-linux$
error: Error opening font cache at 'C:\Users\Pc\Principia/fonts.cache', reverting to non-cached font loading.
Unable to open font file: Couldn't open data-shared/fonts/Roboto-Bold.ttf
i checked and the font is there , it all happened when i clicked on the "allow touch control" in the menu and then i cant ./go animore , i tried uninstalling and reinstalling but i still got this issue
Tried to build principia on Ubuntu 22.04 with makedeb:
git clone https://mpr.makedeb.org/principia-git
cd principia-git/
makedeb -si
But it always fail with an end of
[#] Entering fakeroot environment...
[#] Starting package()...
install: can't stat 'apparatus2' : no such file or directory
[! package()] A failure occurred in package().
Aborting...
I think it's maybe because this commit renamed 'apparatus2' to 'principia' but makedeb script didn't change so it still looks for 'apparatus2' and fails.
The release version of Linux Principia freezes for some odd reason during seemingly random events related to chunks (e.g. zapping trees, spawning trees, shooting with the robot...) with the message warning: entity gid ... reached max chunk intersections
being spammed.
I still have the pc version of the game installed, is there a way for old players to communicate now since the game is shut down?
Message me over discord: ׀ ᳄ MaL ׀ Lenny the burger#3588
edit: here is an unofficial principia discord server: https://discordapp.com/invite/vBznrWm theres lile 50 ish old players on it.
Possible fix, clone the repo somewhere else and reconfigure/rebuild.
Principia used to be available on iOS but was never updated from 1.4.0.5 and as such drifted off from the rest of the platforms. Especially now it is in a dire state, both not being maintained after 1.5 and not touched for 8 years of iOS updates.
This issue serves to track a list of things that would need to be resolved before Principia would be able to support iOS again, for anyone who would be interested in it.
This might work: https://github.com/kakashidinho/metalangle
Entities/Parts should be in their own folder
(For example src/src/entites
)
Textures will wildly clip and spaz on my pixel 6. Shadows can bug out.
From the website, level details description complete with play
edit
like
button. Not with in-built browser, all GUI in it.
Basically the entire website a GUI of the app itself, so the experience becomes seamless, no need browser anymore.
and when inside play
ed level, there's an option to pop up the level details again with play
edit
like
button at anytime when press back, or through top right menu.
I've found lots of old levels under my Principia/lvl/db folder.
If you clone these levels to Principia/lvl/local , you can play or edit them in the editor.
So this maybe the caching folder for levels you've played before.
We could create an archive project for those old levels we can found, to bring them back!
If anyone has created an archive, reply here to let more players know and upload our cached levels to contribute to the project!
At first it can be just some quick GitHub actions workflow that just compiles Principia on Linux to see that everything compiles fine on a PR or commit. It would be nice to additionally have builds for Windows and Android too so they could be tested to at least compile on all platforms even if one only develops on e.g. Linux. Of course the resulting binaries could be uploaded as build artifacts too so we'll have nightly binaries for people to try out.
CPU
Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
Kecepatan dasar: 2,21 GHz
Soket: 1
Inti: 6
Prosesor logika: 12
Virtualisasi: Diaktifkan
Cache L1: 384 KB
Cache L2: 1,5 MB
Cache L3: 9,0 MB
Penggunaan 34%
Kecepatan 2,81 GHz
Waktu aktif 0:06:41:59
Proses 360
Alur 4966
Penanganan 192408
Always!
Simple issue.
From principia-web chat:
In update 1.5.2 beta, the function began to work very strangely "game message"... I have a device that constantly displays data about its state, but after a few seconds of operation, the window where it displays a message disappears, although in the old version everything worked well and there was no such failure ...
This was caused by the gamma correction update in 1.5 i believe.
The bundled curl version fails with:
`
In file included from /home/sdac/git/principia/build-android/jni/curl-7.32.0/lib/curl_setup_android32.h:132:
/home/sdac/git/principia/build-android/jni/curl-7.32.0/include/curl/curlrules.h:143:6: error: '__curl_rule_01__' declared as an array
with a negative size
[CurlchkszEQ(long, CURL_SIZEOF_LONG)];
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/sdac/git/principia/build-android/jni/curl-7.32.0/include/curl/curlrules.h:132:27: note: expanded from macro 'CurlchkszEQ'
#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1
`
To reproduce/work on, enable x86_64 and/or arm64-v8a in abiFilters in build-android/principia/build.gradle
When attempting to add widgets it doesn't do anything.
The game needs a simple way for players to share and update reusable game components (be it a some sort of mechanism, or a programmed device with IO).
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.