Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added WASM-4. #71

Merged
merged 1 commit into from
Sep 23, 2021
Merged

Added WASM-4. #71

merged 1 commit into from
Sep 23, 2021

Conversation

aduros
Copy link
Contributor

@aduros aduros commented Aug 24, 2021

For your consideration 😃

@paladin-t
Copy link
Owner

I saw it's playable in browser. Just a quick question, is there an entry where developers can download or use the full featured dev environment? Without installing npm for non-nodejs users?

@aduros
Copy link
Contributor Author

aduros commented Aug 25, 2021

Thanks, at the moment npm is required. I think we could provide native executables though: aduros/wasm4#29

@paladin-t
Copy link
Owner

Good to know. Will add then.

@aduros
Copy link
Contributor Author

aduros commented Aug 27, 2021

We now have a standalone download with no dependencies: https://wasm4.org/docs/getting-started/setup/

@paladin-t
Copy link
Owner

Sorry maybe I haven't make it clear. The w4 tool is now downloadable and runnable within few mouse clicks, but it still requires installing additional compilers to work. I think the current version doesn't change the fact that WASM-4 hasn't yet with all necessary toolchain built-in, that makes it closer to a shell other than FC.

I'd add this when WASM-4 has at least one language compiler (AssemblyScript/C,C++/Rust/Go) built-in, for at least one platform (browser/natives).

@eXponenta
Copy link

eXponenta commented Sep 21, 2021

I'd add this when WASM-4 has at least one language compiler (AssemblyScript/C,C++/Rust/Go) built-in, for at least one platform (browser/natives).

Really this is impossible, because WASM has a lot of backends and toolsets.
You can not use a fixed toolset for developing a game, because for example, GO or Rust, EMCC required specific ecosystem and selected by developer.
AssemblyScript can be used locally, but every time is updated.
Wasm4 console required to have a lot of skills on strict native-target typed languages and their build systems, you cannot use it simple as other high level scripted consoles on LUA or JS or Basic.

Generic requirements for Consoles is console-specific API headers and some CLI for wrapping/init /publishing a project.

Same as real consoles - you can use different toolsets/engines etc. that can generate valid package that should be prepared then by DEVKit publishing tool.

There are not real reason for blocking :)

UPD:
We can ship a wat2wasm with a standalone or online devtools, and it will working, and will match to your rules, but nobody will use it.

@MaxGraey
Copy link

MaxGraey commented Sep 21, 2021

You have already enabled the following consoles, which don't use builtin high-level language but use ASM (Vistual ISA) instead:

  • Click4 by Josef Patoprsty
  • 4BOD by Puarsliburf games
  • CHROMA-60 by Arkia
  • DX8 by Robin Southern
  • Marmmodore-1K by Felipe Alfonso

wasm4 сould have been included for the same reason. Only it would be marked as WASM (also vistual ISA).

@aduros
Copy link
Contributor Author

aduros commented Sep 21, 2021

@MaxGraey I think the issue is not that it's assembly but that WASM-4 doesn't come bundled with a compiler, which is a fair point.

Would it help if we included direct download links for the different compilers under the WASM-4 download link? I'm a bit reluctant to bundle a compiler because we would have to change the build system to something non-standard.

For what it's worth, there are FCs on this list that have external dependencies (Leikr requires Java, Pyxel requires Python).

@paladin-t
Copy link
Owner

paladin-t commented Sep 22, 2021

A native program requires stdc, etc. as runtime, Java and Python plays similar role there.

The point is a fantasy console should be shipped with at least one way that allows user to program it, this feature distinguishes it from a real console. Despite it's done in high-level language or assembly. I haven't played WASM-4 for long, so I could be wrong. I'd say ok if it offers an assembler. I think WASM-4 uses many language frontends, and works as a common backend itself, maybe it already implemented some sort of assembler that interprets/compiles frontends output to WASM-4 instructions? And could a user write ASM by hand?

@MaxGraey
Copy link

I guess the simplest approach could be pre-installed and prepared wat2wasm util (part of wabt.js) which looks like this: https://webassembly.github.io/wabt/demo/wat2wasm
@paladin-t Will that be enough?

@paladin-t paladin-t merged commit 8ec78ae into paladin-t:master Sep 23, 2021
@paladin-t
Copy link
Owner

I guess the simplest approach could be pre-installed and prepared wat2wasm util (part of wabt.js) which looks like this: https://webassembly.github.io/wabt/demo/wat2wasm

I think it helps.

@aduros
Copy link
Contributor Author

aduros commented Sep 23, 2021

Thanks @paladin-t !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants