godot-nim
cps
godot-nim | cps | |
---|---|---|
16 | 9 | |
497 | 197 | |
0.6% | 1.0% | |
0.0 | 7.7 | |
over 1 year ago | 12 days ago | |
Nim | Nim | |
GNU General Public License v3.0 or later | MIT License |
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.
godot-nim
-
Plans for Nim bindings for Godot 4
Since Godot 4 is gonna change their binding system the previous Nim bindings are not gonna work and the maintainers stated that they wont adapt the bindings to Godot 4.
-
Plans for Nim bindings for Godot 4?
Since Godot 4 is gonna change their binding system the previous [Nim bindings](https://github.com/pragmagic/godot-nim)
-
Programming a Rogue-Like with Rust
Another option is Nim. Looks and writes like Python but closer to C in performance. It also has static typing so I prefer it for scripting as well.
People have built a few games with the Nim Godot bindings:
https://github.com/pragmagic/godot-nim
There’s also an interesting project to do hot reloading using dlls:
https://github.com/geekrelief/gdnim
-
Inky: Isolation. A 90 minute game built with Enu, Nim and Godot
Enu is a 3D live-programming/learning/game development environment written in Nim using Godot 3, godot-nim, and godot_voxel. I use it to run a small local coding club with a group of 12 year olds, and think it is (or at least will be) a great tool for learning to code, and for making games quickly.
-
Is Nim right for me?
It uses a python-like language, is free & open-source (MIT License), has a fantastic GUI creation system, exports to all major OS's, and produces single small binaries. You could eventually incorporate Nim as well, as there are Nim bindings for Godot.
- How can I understand what "bindings to" libraries really do?
-
FYI, you can use Rust as a native scripting language
Ant then install the bindings. And thats where I'm a bit lost even after reading Godot docs. Not sure if I'm right, but seems to be necessary to compile Godot?
-
Nim Version 1.6 Released
Well no language is perfect, but Nim can be used in almost every domain because of it's compilation targets(C, C++, JS) and it's fast compile times(who needs interpretation when compile times are that fast!):
* Shell scripting, I still assume most people will just use Bash tho: https://github.com/Vindaar/shell
* Frontend: https://github.com/karaxnim/karax or you could bind to an existing JS library.
* Backend: For something Flask-like: https://github.com/dom96/jester or something with more defaults https://github.com/planety/prologue
* Scientific computing: the wonderful SciNim https://github.com/SciNim
* Blockchain: Status has some of the biggest Nim codebases currently in production https://github.com/status-im?q=&type=&language=nim&sort=
* Gamedev: Also used in production: https://github.com/pragmagic/godot-nim and due to easy C and C++ interop, you get access to a lot of gamedev libraries!
* Embedded: this is a domain I know very little about but for example https://github.com/elcritch/nesper or https://github.com/PMunch/badger for fun Nim+embedded stuff!
Most of the disadvantages come from tooling and lack of $$$ support.
-
Frustrating ergonomics of GDNative in 3.3 -- are these addressed for 4.0?
As for gdnim, it's my framework built on top of godot-nim. https://github.com/pragmagic/godot-nim https://github.com/pragmagic/godot-nim-stub
-
PR for cross-language script class support is testable! (`class_name` feature for GDScript, VisualScript, C#, and NativeScript)
I've renewed my enjoyment of programming through game development (an area I haven't been active in before) and had a great time implementing a Quadtree in GDScript but then the other problem of raw execution speed for any script language made that a bit disappointing as well (it worked well but was only an improvement for larger numbers). So now I'm learning Nim (which has godot-nim bindings) to be able to write really performant code in an easy way.
cps
-
Nim CPS: compile-time continuations
This'll get you closer: https://github.com/nim-works/cps
Sorry, I was in a hurry.
-
D Programming Language
- https://github.com/nim-works/cps
Or a neural network DSL or for a self-contained example, einsum:
-
NIR: Nim Intermediate Representation
There has been a more-or-less working CPS implementation for Nim for a few years now,
https://github.com/nim-works/cps
https://github.com/nim-works/cps/tree/master/docs
Nobody seems to care though, as it has gained no traction at all and it has been mostly ignored by the core team.
-
Nim v2.0 Released
Ones that have not been mentioned so far:
nlvm is an unofficial LLVM backend: https://github.com/arnetheduck/nlvm
npeg lets you write PEGs inline in almost normal PEG notation: https://github.com/zevv/npeg
futhark provides for much more automatic C interop: https://github.com/PMunch/futhark
nimpy allows calling Python code from Nim and vice versa: https://github.com/yglukhov/nimpy
questionable provides a lot of syntax sugar surrounding Option/Result types: https://github.com/codex-storage/questionable
ratel is a framework for embedded programming: https://github.com/PMunch/ratel
cps allows arbitrary procedure rewriting to continuation passing style: https://github.com/nim-works/cps
chronos is an alternative async/await backend: https://github.com/status-im/nim-chronos
zero-functional fixes some inefficiencies when chaining list operations: https://github.com/zero-functional/zero-functional
owlkettle is a declarative macro-oriented library for GTK: https://github.com/can-lehmann/owlkettle
A longer list can be found at https://github.com/ringabout/awesome-nim.
- CPS – Also Known as Continuation-Passing Style – For Nim
-
In Defense of Async: Function Colors Are Rusty
I think the CPS attempt in Nim could do this
https://github.com/nim-works/cps
-
Nim Version 1.6 Released
* Goroutines are probably a lot more easier to use. Work is being done to make Nim even better in that area: https://github.com/nim-works/cps but don't expect it soonish.
* I feel like Go has less 'edge cases', but the Nim compiler is steadily getting more stable, especially consider it's not backed up by a major company!
* Metaprogramming is really powerful, but not beginner friendly. The documentation says use macros when necessary, but personally I don't think that really happens in practice.
The advantages by far outweigh the disadvantages, especially if you are looking for a clean Go alternative(except maaaaaaybeee web application).
-
Looking for more example of nim's coroutines
and the fifth: https://github.com/disruptek/cps
What are some alternatives?
gdnim - godot-nim based bootstrapping framework supporting hot reloading
nim-chronos - Chronos - An efficient library for asynchronous programming
pixie - Full-featured 2d graphics library for Nim.
treesitter-unit - A Neovim plugin to deal with treesitter units
nvim-treesitter-textobjects
httpbeast - A highly performant, multi-threaded HTTP 1.1 server written in Nim.
nlvm - LLVM-based compiler for the Nim language
p-map - Map over promises concurrently
enu - A Logo-like 3D environment, implemented in Nim
jester - A sinatra-like web framework for Nim.
DPDK-WiFi - DPDK version with support for ath10k-based wireless NICs