Giter Club home page Giter Club logo

principia's People

Contributors

fgaz avatar griffi-gh avatar manenfu avatar pajlada avatar pyp2205 avatar rollerozxa avatar sdac avatar spicyforthprogrammer 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  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  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

principia's Issues

Signal cable crash

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)

Linked game executable silently fails due to entry-point errors on Windows 10

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:

WindowsTerminal_2022-08-15_14-08-53

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:

csrss_2022-08-15_14-02-06

csrss_2022-08-15_14-02-08

csrss_2022-08-15_14-02-11

csrss_2022-08-15_14-02-01

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):

csrss_2022-08-15_14-05-55

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.

OS

Windows 10 Home 21H1

Some texts hard to see on linux KDE with dark theme.

Some GUI elements doesn't follow theme settings, causing texts on them hard to see.
1
2

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.
图片

Fluid Limit

Increase fluid limit as it is too low for higher-end hardware.

Add packaging scripts for common linux distros

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.

Support Apparatus on Kickstarter

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! :-)

lua: game:prompt() function is broken in Android

How to reproduce

Place LUA Script object and write:

function init(is_sandbox)
    game:prompt("Hello", "ok", "cancel")
end
function step(count)
end

Expected behavior

A prompt is displayed with message Hello and options ok and cancel

Resulted behavior

The prompt has empty message, and the only option available display the entire script, which can crash the game.

Screenshot_20230213-144539_Principia

(use-after-free) Crash when trying to use an exploded bomb/bullet entity in lua on android

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

make: *** [Makefile:4817: ../src/jpeg/principia-jaricom.o] Error 1

I have no idea how I supposedly solve this issue

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?

Relevant Spec

  • Windows 11 22H2

Lua based malicous code execution

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.

Level loader isn't portable

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.

Replace the color picker component on Android

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

Please release the source

I'm electro from Principia (hope you remember)
Please release the source so that we can continue your work and make it awesome again

Level Community not loading & Archived levels

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

image

Multitouch support for linux?

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?

Initial FOSS release roadmap (1.5.2)

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:

  • Make previously unused objects available in the sandbox menu
  • Update Android version to target a newer API, along with fixing any issues that come with that
    • Scoped app data
      • Write info about accessing and backing up this storage on the Wiki (it can tend to be hard to access and fragile, best to inform players about keeping their data safe) (@rollerozxa)
    • Fix sandbox menu being harder to use now due to fullscreen mode being enabled
  • Remove license verification on all platforms
  • Make cURL library buildable from available source code on Android (required for F-Droid) (@rollerozxa)
  • Another batch of object help text updates imported from the new Wiki (@rollerozxa)
  • Fix release versions of Linux freezing randomly for unknown reasons (#43)
  • Resolve GTK styling once and for all...
    • For Linux it should always use system's styling, on Windows release versions it should use the custom styling (debug versions break in spectacular fashion)

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:

  • Increment the version number all over the place (Android manifest, Windows installer/resource file, main menu version number, version code...)
  • Arch packaging (AUR)
    • Make a new principia AUR package that tracks stable releases (@rollerozxa)
  • AppImage packaging
    • Would be really nice to have as it would be distro-agnostic, it should also prompt the user asking if they want the protocol link .desktop installed into ~/.local/share/applications/ to make community site links work properly
  • Ubuntu PPA (it will automatically build for all recent versions of Ubuntu right? good stuff.)
  • Improve Windows installer with stuff from the old 1.5.2 installer
    • (Hm... Should it uninstall the old version before installing a new version? Things like the cURL mod might remain in the program folder instead and cause issues)
  • Android:
    • Play Store!
    • Submit Principia for inclusion in F-Droid (requires cURL be buildable from source) (@rollerozxa)

Build failed on Ubuntu 21.10

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$ 

Font issue on windows

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

Makedeb failed to build

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.

Release version of Linux Principia freezes

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.

iOS Support

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.

  • Implement and update new dialogs, as it lacks anything from 1.5 and 1.5.1.
  • Get the project files to work with the modern iOS development tools. (Principia was targetting around iOS 6-8 at the time, there's probably been a lot of changes that have built up since then)
  • Compile as 64-bit. (32-bit support has been removed in iOS 11)
  • OpenGLES is currently deprecated in iOS but as far as I know not completely removed. That might become an issue if it's completely dropped in favour of Metal, though there is MetalANGLE that could provide compatibility if it is dropped.
  • Provide dependencies that have been removed from the source tree during the open source development (cURL, Freetype, libpng and libjpeg). Something like the dependency build pipeline for Android would be useful.

(Proposal) (BIG) Built-in level detail view

Have principia-web level explorer right in the app.

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 played 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.

Archive the old levels from our principia cache!

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!

Set up CI

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.

(Bug) Robot property setting window causes hang

Relevant Spec

  • Platform = Windows. OS = Windows 11 22H2
  • Intel i7-8750H

Raw Task manager Copy

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

How to reproduce

  • compile source in Windows & launch
  • Create new custom level or adventure level (which has robot)
  • Spawn any robot if haven't already (such as Robot, Companion, Spike, Mini spike, bomber, launcher, cleaner)
  • Press cogwheel (Object property setting for Robot) while the robot is selected
  • try to interact with any option or just move its window

Frequency

Always!

game:message fails on android

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 ...

64-bit Android (x86_64 and arm64-v8a) build fails

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

Shareable components

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).

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.