Our great sponsors
-
Panda3D
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
-
Apache Arrow
Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
>> It'd have to be a situation like sklearn and numpy where all the actual functionality is implemented in c/c++ and you're just using it as a glue language
It sounds like this engine is not implemented in 100% python.
See also Panda3D https://www.panda3d.org/, which was used in commercial games back in the day, and is exactly what you are describing!
https://www.reddit.com/r/O3DE/comments/rdvxhx/why_python/ :
> Python is used for scripting the editor only, not in-game behaviors.
> For implementing entity behaviors the only out of box ways are C++, ScriptCanvas (visual scripting) or Lua. Python is currently not available for implementing game logic.
C++, Lua, and Python all implement CFFI (C Foreign Function Interface) for remote function and method calls.
"Using CFFI for embedding" https://cffi.readthedocs.io/en/latest/embedding.html :
> You can use CFFI to generate C code which exports the API of your choice to any C application that wants to link with this C code. This API, which you define yourself, ends up as the API of a .so/.dll/.dylib library—or you can statically link it within a larger application.
Apache Arrow already supports C, C++, Python, Rust, Go and has C GLib support Lua:
https://github.com/apache/arrow/tree/main/c_glib/example/lua :
> Arrow Lua example: All example codes use LGI to use Arrow GLib based bindings
pyarrow.from_numpy_dtype:
https://arrow.apache.org/docs/python/generated/pyarrow.from_...
https://github.com/scikit-learn-contrib/sklearn-pandas :
> Sklearn-pandas: This module provides a bridge between Scikit-Learn's machine learning methods and pandas-style Data Frames. In particular, it provides a way to map DataFrame columns to transformations, which are later recombined into features.
Pandas docs > PyArrow > I/O https://pandas.pydata.org/docs/user_guide/pyarrow.html#i-o-r... :
> By default, these functions and all other IO reader functions return NumPy-backed data. These readers can return PyArrow-backed data by specifying the parameter dtype_backend="pyarrow"
> [...] Several non-IO reader functions can also use the dtype_backend argument to return PyArrow-backed data including: to_numeric() , DataFrame.convert_dtypes() , Series.convert_dtypes()
x = pandas.read_csv(".csv", dtype_backend="pyarrow")
Related posts
- The Open Source Framework for 3D Rendering and Games
- Making games
- Looking for an easy way to animate a table tennis trajectory in python
- Programming my game for Steam Deck, on my Steam Deck. I hope this thing does wonders for linux gaming.
- I recompiled ToonTown's game engine to run natively on Apple's M1 chips yesterday, the loading times are insane.