mach
UnrealEngine
mach | UnrealEngine | |
---|---|---|
36 | 122 | |
2,787 | - | |
2.5% | - | |
9.7 | - | |
12 days ago | - | |
Zig | ||
GNU General Public License v3.0 or later | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mach
-
Zig Software Foundation 2024 Financial Report and Fundraiser
Myself and many others are betting on Zig in major ways, I truly think it has a bright future ahead.
In spare time, myself and a few others are working on a game engine in Zig[0], and the Zig core team has been very receptive to addressing issues our project faces and supporting us.
Others are working on pixel art editors[1], open source 2D RPG games[2], there's a group of independent folks working on a 3D massive immersive sim game[3], a group working on making Zig an amazing language for micro-controllers[4], etc.
Please consider donating $5-10 a month to the ZSF! They are a great group of people, and it has so many knock-on effects for others in the FOSS community. :)
[0] https://machengine.org/
[1] https://github.com/foxnne/pixi
[2] https://github.com/foxnne/aftersun
[3] https://github.com/Srekel/tides-of-revival
[4] https://github.com/ZigEmbeddedGroup
-
DevDocs
I don't know if there's anything better than a zip. For our website[0] which includes a bunch of docs for our game engine, Zig packages, etc. we just offer a link "offline version of this site" in the footer which is an ~80MB zip file.
I think the challenge with zip files is.. do you want all the images? do you want all versions of the docs, or just a specific version of the docs? It's hard to tailor the zip to the user's desire. But zip still seems to be the best.
[0] https://machengine.org/
- Not only Unity...
- Mach - Zig game engine & graphics toolkit
-
New Béziers from Math
Cool to see others working on this problem. I hope more people do.
Funnily I've seen a lot of programmers and math folks who express how truly, genuinely beautiful Beziers and the math behind them are. But I've never met an artist or graphic designer who didn't express some deep frustration at Bezier controls and how hard they are to work with.
There are even games[0] which make a mockery out of how hard Bezier controls are to use, where the game is purely using the controls.
Controls are just one side of the problem, in my view; the other side is that cubics are terrible for GPUs, they don't understand them - and I believe many of the best 2D graphics libraries today are not even fully GPU accelerated, e.g. Skia. There are folks working on compute shader-based approaches, where we try to shoe-horn this CPU-focused algorithm into GPUs and pray - but it still isn't really suitable.
The controls suck for artists, and the math sucks for GPUs. This is only true of cubics, if you restrict yourself to quadratics (although that brings other challenges), both the control issue goes away (you can just click+drag the curve!) and the performance issue goes away (quadratics are triangles, GPUs love them)
That's the summary of the talk[1] I gave at SYCL'22. In that talk, I didn't have time to present the downsides of quadratics (which are real) - so if you watch it please keep that in mind - but my overall point I think is a solid one: the controls suck, and GPUs can't handle them.
The only reason we stick with cubics in its current form is because of SVG, compatibility with existing tooling, etc. But isn't it crazy? We have new bitmap image formats all the time, and so few vector graphics formats.
In Mach engine[2] we're continuing to explore this space, end-to-end, from author tooling -> format -> rendering. I'm not claiming we have a perfect solution, we don't, but we're at least thinking about this problem. Kudos to the authors of this article for thinking about this space as well.
[0] https://bezier.method.ac/
[1] https://www.youtube.com/watch?v=QTybQ-5MlrE
[2] https://machengine.org
-
0.11.0 Release Notes
A game engine https://machengine.org is being written in zig, there's also https://microzig.tech as zig is well suited to embedded development.
-
Significant examples of Zig software (June 2023)?
https://github.com/hexops/mach (shameless plug)
-
Learn WebGPU
Zig fits pretty naturally here too. We've got ~19 WebGPU examples[1] which use Dawn natively (no browser support yet), and we build it using Zig's build system so it 'just works' out of the box with zero fuss as long as you grab a recent Zig version[2]. No messing with cmake/ninja/depot_tools/etc.
WASM support in Zig, Rust, and C++ is also not equal. C++ prefers Emscripten which reimplements parts of popular libraries like SDL, for me personally that feels a bit weird as I don't want my compiler implementing my libraries / changing how they behave. Rust I believe generally avoids emscripten(?), but Zig for sure lets me target WASM natively and compile C/C++ code to it using the LLVM backend and soon the custom Zig compiler backend.
[1] https://github.com/hexops/mach-examples
[2] https://github.com/hexops/mach#supported-zig-version
-
Zig for gamedev?
We're building Mach which aims to be competitive with Unity/Unreal/Godot in spriti, but super modular / let you pick and choose which parts to use or build yourself.
-
Mach (Zig) Adventures - Part 1
git clone --recursive https://github.com/hexops/mach-examples cd mach-examples/ zig build run-sprite2d
UnrealEngine
-
Two handy GDB breakpoint tricks
Visual Studio has a related annoying habit when navigating the call stack (the caller's scope is considered closed if the callee is syntactically its tail) so I wonder whether this workaround would be useful for it as well.
See also this comment in the Unreal Engine code about putting a nop in before as well: https://github.com/EpicGames/UnrealEngine/blob/26677ca1b3c97...
// Q: Why is there a __nop() before __debugbreak()?
-
Sane C++ Libraries
> you can still use it with smart pointers provided by any other library
Is the point of having a kitchen-sink library like this not that you dont have to reach for a 3rdparty library for things that you need 'all the time'?
Certainly, not everyone needs it.
...but, not everyone needs threads either. Not everyone needs an http server; and yet, if you have an application framework that provides them, when you do need them, it saves you reaching for yet-another-dependency.
Was that no the point from the beginning?
unique_ptr is a fundamental primitive for many, as you see from some other frameworks (1), and implementation is not always either a) trivial, or b) as simple as 'just use std::unique_ptr'.
This does seem like a very opinionated decision with reasonably unclear justification.
[1] - eg. https://github.com/EpicGames/UnrealEngine/blob/release/Engin..., https://github.com/electronicarts/EASTL/blob/master/include/...
- Not only Unity...
-
Unreal Engine 5.3
It is not publicly available. If you click on this link you get a 404 page: https://github.com/EpicGames/UnrealEngine You actually have to go and subscribe, agree to their terms, and then you get to view the source code. It happens to be free, but it is by no means "public".
-
I always have bad timing, was literally just about to try out v5.2
https://github.com/EpicGames/UnrealEngine/tree/5.2.0-preview-2 For anyone wondering
-
Depending on the order multiple movies in "Startup movies" cause game to crash.. UE5.1
Like I said before, you have the fixed code here (commit: 23937975).
-
How to create a moddable game?
Before you can access the repository at https://github.com/EpicGames/UnrealEngine, you must: be an Unreal Engine subscriber. have a GitHub account. have associated your GitHub account with your Unreal Engine account as described on the UE4 on GitHub page.
-
W.I.P on my Open-World time traveling game. Experimented with Lumen + Nanite and found a way to maximize performance!
What you need to do is follow this link and diff my file with Epic's file. You can grab settings that I have from mine and plop them into a custom one for yours. Just be mindful if you're developing in VR for what settings you bring over.
-
As a Unity user, watching Unreal Engine at GDC 2023 made me sad and jealous
Originally it was going to be NetworkPrediction (need to be signed into a github account with Unreal Engine access for that link to work), but since David Ratti left Epic that died and they stopped working on it. (I didn't know it was dead, that was the CMC replacement I was referring to)
-
This unironically happened at my work today. We'll *definitely* be fitting that one into the next sprint...
Found this while looking through UE commits
What are some alternatives?
SDL.zig - A shallow wrapper around SDL that provides object API and error handling
CRYENGINE - CRYENGINE is a powerful real-time game development platform created by Crytek.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
capnproto-rust - Cap'n Proto for Rust
quickjs-emscripten - Safely execute untrusted Javascript in your Javascript, and execute synchronous code that uses async functions
Defragr - Precision movement FPS with physics ported from Quake 3 CPMA. Made with UE4
zigstr - Zigstr is a UTF-8 string type for Zig programs.
Quake-III-Arena - Quake III Arena GPL Source Release
arocc - A C compiler written in Zig.
Smooth-Networked-Movement-Plugin - Public Repository so anyone can push updates to the plugin. [Moved to: https://github.com/Reddy-dev/SMN2]
mach-glfw-vulkan-example - mach-glfw Vulkan example
RuntimeMeshComponent - Unreal Engine 4 plugin component for rendering runtime generated content. [Moved to: https://github.com/TriAxis-Games/RealtimeMeshComponent]