18 ms·
Game Jam 2 Results
- gorjusborg 4y agoIt would be awesome to understand the reasons zig was utilized. My guess is that it is about the language tooling, but it would be nice to hear from the authors themselves.
- galangalalgol 4y agoLooking at the top 5 they used zig,zig,rust,odin,asmscript Rust is the highest level represented. I'm guessing the level of control needed to hit the tight constraints of wasm-4 preclude anything that you wouldn't use for a microcontroller. C and c++ would work too, but what fun is that?
- dom96 4y agoMy guess is it comes down to how much the Zig community (in particular I've seen Zig's VP of community mention it) has advertised it.
- kristoff_it 4y agoYeah, I did. The previous WASM-4 Jam had Zig and C tie at the top followed by Rust. Other languages also had more representation than in this last one, maybe also because of a greater overall number of entries (44 total). https://youtu.be/7ydnjX999kk?t=894 https://youtu.be/7ydnjX999kk?t=894 I also think that there is a correlation between the majority of participants being from Europe and Zig. At the moment almost all our meetups are in Europe.
- deleted 4y ago[deleted]
- quic5 4y agoI can only speak for myself here but of all languages I've tried for WASM-4 (WAT, C, Rust & Zig) it is the most productive one for me. I really enjoy the balance of safety and control in Zig. I can build using Debug mode during development, turning nearly all my bugs into crashes which are easily fixable using in-browser source-level debugging. But in Release-Small mode the result is fast and more importantly really small since there's a 64kb cartridge limit. Another factor is the Zig Standard Library which designed to be portable and usable on freestanding targets. I can not emphasize enough how pleasant this is. For example I can just use a `std.heap.FixedBufferAllocator` to back a `std.ArrayList` with no problem. The comptime feature of Zig also comes in handy when you have to minimize code size. The seamless C interop furthermore improves my productivity since I can just use any C code I like. I've used a C perlin noise library in a previous game for example, saving me a lot of time. Plus I've used Zig for the previous WASM-4 jam and just liked it so I didn't bother trying any other language.
- rcarmo 4y ago26 or so data points, but still interesting. I myself have become enamored with Zig's relative simplcity and straightforwardness, although some of my friends keep telling me to do Rust instead.
- eggy 4y agoYeah, not a lot of data points, and a niche subject, game dev, but I am playing with the Mach game and graphics engine, and so far so good. I started programming in 1978 in CPM Basic, C, 6502 assembler, etc. I play with Rust, but if I am really looking for high-integrity software, I am currently using SPARK2014 (the subset of Ada), that has some legs beneath it. Rust and AdaCore are starting to work together to bring some of this into Rust, but it's not there yet. So for me, Zig is my C replacement, and SPARK2014 is my C++/Rust replacement. You can go low-level with SPARK2014 too, and IMHO, it is far easier to understand than Rust, yet it already has all the high concepts of software integrity, safety, and verifiability. Excited about cross-platform graphics and performance with Zig and Mach.
- pryelluw 4y agoThanks for sharing. Going to enjoy some time with Spark2014. OT: Searching for Spark2014 brings up a lot of results about the 2014 Chevrolet Spark. A shit box of a car of there ever was one.
- eggy 4y agoHah, Chevy Spark, and it's a gasoline car! I usually put "SPARK2014 programming" or "SPARK2014 Ada" in my searches. I used to get annoyed by all of the Apache Spark stuff that came up, but that seems to have waned a bit this past year or two. Vermont Technical College (VTC) used SPARK2014 to program their CubeSat and the book, "Building High Integrity Applications with SPARK"[1] is a great intro to it in a nice context of practical use. There was also an article on the AdaCore site about someone who rewrote some drone firmware in SPARK2014, which is another nice real-world application. [2] [1] https://www.amazon.com/Building-High-Integrity-Applications-SPARK/dp/1107040736/ref=sr_1_5?crid=3OQW9ZYPSM71A&keywords=high+integrity+software&qid=1662723880&sprefix=high+integrity+sloftware%2Caps%2C60&sr=8-5 https://www.amazon.com/Building-High-Integrity-Applications-... [2] https://blog.adacore.com/how-to-prevent-drone-crashes-using-spark https://blog.adacore.com/how-to-prevent-drone-crashes-using-...
- necovek 4y agoZig is not mentioned until the section "Programming languages" (including not being mentioned in the original title): please fix the title so as not to put too much focus on that.
- Beldin 4y agoEven worse: not all of them are moved!
- TakeBlaster16 4y agoZig is the new HN clickbait, taking over Rust's spot. That's a good sign for the language, honestly
- Ygg2 4y agoHow long till we start complaining that Zig followers are cult like? Asking as Rustecean.
- deleted 4y ago[deleted]
- infamouscow 4y agoI've noticed people that like writing code in Zig are fans the language and the people that like writing code in Rust center their identity around the language. The former leads to people saying they enjoy writing code in Zig, the later leads to religious zealotry and moral condemnation for using anything other than Rust.
- davidjfelix 4y agoWhich language is the one where you make sweeping generalizations?
- hu3 4y agoIt's funny you say that when a rustacean just posted below that it is irresponsible to use unsafe languages. Instead of focusing on tradeoffs they chose to call others irresponsible.
- brink 4y agoSo.. good for prototyping, like Ruby?
- quic5 4y agoI've continued to code on my game submitted to the last WASM-4 jam for months and thoroughly enjoyed improving my messy game-jam code. So I'd disagree with the statement that Zig is only good for prototyping.
- necovek 4y agoOther notable things from the game jam other than Zig being the most popular: it's mostly developers aged 15-24 (hopefully they split that up into 15-19 and 20-24 next time around), and mostly from Europe. WASM-4 seems to be a technically limited "console" (64kb of RAM, 160x160 console), so it's even more of a niche than just doing game dev for WASM.
- Existenceblinks 4y agoIf I were a Zig advocate I would advertise [Z]ig as the programming of future starting from gen Z, new blood of developers.
- Cyberdog 4y agoGeneration Zig? I like it. Even though I'm technically a millennial… but if the next gen start using Zig instead of JavaScript for everything, I'm on board.
- Existenceblinks 4y agoYou could be a gen Zig developer. How cool is that. Yep, start cleaning up complexity mess that js ecosystem is expanding.
- Ygg2 4y agoAnd make your completely new mess. I doubt JS will stop being primary language in browsers in my lifetime.
- Existenceblinks 4y agoYou have chance to prevent it. It's not going to be perfect but use huge lesson learned from js ecosystem "mess" (I found this triggers some (many) js folks, it's quite ridiculous). Javascript "mess" in browsers could be reduced by dividing into two parts. DOM stuff, and pure language stuff. The first part can stay as is. Probably wrapped into thin API for new lang interop. The second part is a completely new lang that compile to wasm (ideal if vice-versa) so that backend could also send wasm to browser and be able to interact with DOM too. Next, backend js "mess" can be stopped because we have a better way for other languages to develop for the web.
- jpbadan 4y agoFrom the perspective that development time is a big constraint in a game jam it's no wonder zig is more popular than rust
- anothernewdude 4y agoI never got my rust wasm build to work without needing JS.
- quic5 4y agoThen you will enjoy WASM-4 since it handles the glue code for you. There's no JS in you game but the web emulator is written in JS
- anothernewdude 4y agoI may just give it another shot. That sounds good.
- skohan 4y agoArguably Zig is a better fit for game dev. At the high end game dev is all about memory layouts and cache optimization, and that goal can run counter to Rust's approach to memory safety.
- pcwalton 4y agoMemory safety isn't in conflict with low-level control over memory layout.
- skohan 4y agoIt can just be limiting in terms of ergonomics. Like I've implemented a couple of ECS's and what you want to do is dispatch a bunch of threads over big swaths of structured memory. One of the main things the borrow checker doesn't want you to do is use the same memory on multiple threads. You can do that in rust, and people have, but you have to put a lot of effort into convincing the borrow checker that what you're doing is ok, or else find ways to side-step the borrow checker. So basically rust imposes a lot of limitations on how you can structure your program relative to something like Zig or C.
- Existenceblinks 4y agoAll WASM related stuff seems lacking of know-how of WebAssembly itself. I want the promise of "language-agnostic". For example, I have AST, I want to generate WebAssembly (either text or binary format, lets start with .wat), there's only a couple articles I found talks about how to map string to wasm's memory or table. Current situation is it's not language-agnostic as movement, it's just c/rust mostly. So wasm-4 seems to have more interesting examples than the other e.g. https://wasm4.org/docs/tutorials/snake/handling-user-input https://wasm4.org/docs/tutorials/snake/handling-user-input
- MobiusHorizons 4y agoAre you trying to say web assembly is not well documented, or are you commenting on the state of tooling? It seems to me that most compiled languages can target wasm these days (eg c, c++, zig, rust, go, .net) The specifications are open and detailed [1]. Specifications like that can be daunting to consume if you want a place to start from instead of a complete overview of the landscape, but there are tutorials in pure web assembly if you want to get started. [1]: https://webassembly.github.io/spec/core/text/instructions.html https://webassembly.github.io/spec/core/text/instructions.ht...
- Existenceblinks 4y agoNot tooling. I wrote 8086 assembly before so I remember the process of learning data segment / register / byte allocation / all kind of interrupt. I would choose a word "applied webassembly" (like applied physics) for knowledge that it's lacking. c, c++, zig, rust, go, .net you said fall into "already application" category to me. It's no point of webassembly like no point of assembly when we write those languages.
- titzer 4y agoThis is good feedback for the Wasm community. Right now I am teaching a VM course on the back-half of the Wasm equation: how to build an engine for Wasm. The course is about more than Wasm, of course, so there is a lot of content about JVMs and dynamic object models, but the projects are based around Wasm. In the future I envision university compiler courses getting divided into two halves, either as one course with two halves, or two full courses. The first course/half would be entirely frontend: parsing, semantic analysis, IR, translation, lowering--and the target would be WebAssembly. The second course/half would be all about compiling Wasm to machine code. If the second course wanted to go more in the VM/runtime direction, vs focusing on compilation, it could include the upcoming GC extension or a custom extension to have objects. I think Wasm is the future of code formats and languages, so I'd like to move the needle here for PL implementors.
- veltas 4y agoWebsite broken for dark mode browsers. Text is light, background is white.
- Twisol 4y agoDark mode Firefox here, light text on dark background.
- LoveMortuus 4y agoMicrosoft Edge Android here: dark background, light font. Everything seems okay.
- Tepix 4y agoThe harsh restrictions sure spur creativity! On the other hand, is the SNES "The Legend of Zelda: A Link to the Past" style everyone's favourite pixel art style, or is it just me? Without tricks it did 256 colours of of 4096 in Mode 7. You can't do art that's as pretty with four colours. Is it a restriction that's too harsh or are we ok with games that just aren't very pretty?
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- bsder 4y agoApparently I'm a dolt. I can't seem to find the source code for the games. Any pointers?
- geenat 4y agoThe 3D one was really impressive.