A True Coding-Free Solution!

Have a thought on how NESmaker can be improved? We are a small team with limited means, but we'd love to hear your ideas!
User avatar
RadJunk
Site Admin
Posts: 40
Joined: Fri Feb 16, 2018 2:34 am

Re: A True Coding-Free Solution!

Post by RadJunk » Tue Jan 15, 2019 7:51 pm

As someone who literally looks at code all day (I work at a software company) this would drive me a little nuts. I mean I see a use case for something like this in a teach environment as far as logic goes but not much more than that.

Cool concept though.
User avatar
Redherring32
Posts: 451
Joined: Sat Aug 11, 2018 2:48 pm
Location: Usa

Re: A True Coding-Free Solution!

Post by Redherring32 » Tue Jan 15, 2019 8:00 pm

RadJunk wrote:
Tue Jan 15, 2019 7:51 pm
As someone who literally looks at code all day (I work at a software company) this would drive me a little nuts. I mean I see a use case for something like this in a teach environment as far as logic goes but not much more than that.

Cool concept though.
We also have to take into account that Nesmaker is inevitably going to have more and more young users using it to learn 6502 programming, and to achieve absolute usability, allowances have to be made for that. While it doesn't necessarily have to be in this manner, we can't deny that something needs to be implemented.
My current WIP game: Shadow: An Adventure In Monochrome, you can also find me over at the Community Discord.
FerretHallGaming
Posts: 25
Joined: Sat Jan 12, 2019 4:37 am
Location: East Chicago
Contact:

Re: A True Coding-Free Solution!

Post by FerretHallGaming » Tue Jan 15, 2019 8:17 pm

Kasumi wrote:
Tue Jan 15, 2019 7:39 pm

C compilers deal with this issue constantly, and they're (typically) very, very good at it. cc65 is not the best, but that's more because enough time hasn't been put into it to make it better than because it's not possible to do. That said, 6502 is not a very good target for (specifically c) compilers because it's traditionally designed around having more free use of the stack. Nothing would stop one from creating a thing with very similar (but more limited) syntax as for as readability.

Compilers can think to use the available values in extremely clever ways that even decently experienced programmers may not think up. If you click that, read, don't skim. The compiler isn't the cause of the bug.

To make bitwise operations easy think about what usual things are actually accomplished by using bitwise operations rather than the concept itself. If it's looking at a specific value that just doesn't have a range of 8 bits, you just give the user control of the range of the value for each variable and you're done. Getting how many bits a given range requires isn't hard for a computer, fitting those arbitrary bits into bytes isn't hard for a computer, and knowing which value to AND with to retrieve them isn't hard, since the computer had to assign which bits the value occupies within the byte itself earlier.

The smallform optimizations programmers make aren't really that magic. There are actually a lot of 6502 programming things that computers would probably be better or at least faster at finding optimizations for. The carry was not changed in the last 100 lines? Neat, we can use bcs/bcc instead of jmp and save a byte. Even in my own games, I tend to have the human readable AND #BUTTONA, bne instead of bmi. (My games store buttons in a different bit order than NES Maker if I recall correctly.) A higher level thing would know BUTTONA was an alias for %10000000 and use BMI. You'd get the human readability AND the byte efficiency.

Something that's worth taking a look at is this: https://godbolt.org/

This shows what the assembly will look like for given C input live. Someone could make something like that for 6502. As you add blocks, it can show what those blocks would look like in 6502 assembly. I've been thinking about this sort of thing a lot. NES Maker doesn't really pass my "easy-to-use" test. And it's for program design reasons, not NES limitation reasons.

Way shorter: Things are bad on NES because there's no real incentive to make things easier for it (compared to other things), rather than because it's not possible. But NES Maker has proven a market for it, so consequently a few developers (myself included) are working on things to make working on it easier. I've given a lot of things a lot of thought, but so far the only thing I've really spent the time improving is asset management. Which has been a long road, but I'll make my time back.

I won't make my time back improving the code side, so if I'm going to spend the time to improving that, I need people to financially support it or it's not worth doing. I'll probably test the waters a bit after the asset management thing finally comes out.
And thank you for understanding a bit better what I meant. If you were to start such a project on NES, I'd definitely help fund and try to garner attention for it.
User avatar
MistSonata
Posts: 315
Joined: Fri Feb 16, 2018 7:10 am

Re: A True Coding-Free Solution!

Post by MistSonata » Tue Jan 15, 2019 9:19 pm

Kasumi wrote:
Tue Jan 15, 2019 7:39 pm
Way shorter: Things are bad on NES because there's no real incentive to make things easier for it (compared to other things), rather than because it's not possible. But NES Maker has proven a market for it, so consequently a few developers (myself included) are working on things to make working on it easier. I've given a lot of things a lot of thought, but so far the only thing I've really spent the time improving is asset management. Which has been a long road, but I'll make my time back.

I won't make my time back improving the code side, so if I'm going to spend the time to improving that, I need people to financially support it or it's not worth doing. I'll probably test the waters a bit after the asset management thing finally comes out.
If you decide to do it, that'd be awesome. I hope you let us all know when you do.
User avatar
dale_coop
Posts: 4206
Joined: Fri Feb 16, 2018 7:05 am
Location: France

Re: A True Coding-Free Solution!

Post by dale_coop » Tue Jan 15, 2019 9:30 pm

Kisumi, I will follow whatever you’re into ;)
-----
Sorry about my poor english
All I need: A Damn Fine Cup of Coffee
My games: PRESS START GAME / UNDERGROUND ADVENTURE / UNDERGROUND ADVENTURE (Arcade version - Byte-Off-2019)
User avatar
RadJunk
Site Admin
Posts: 40
Joined: Fri Feb 16, 2018 2:34 am

Re: A True Coding-Free Solution!

Post by RadJunk » Tue Jan 15, 2019 11:25 pm

Redherring32 wrote:
Tue Jan 15, 2019 8:00 pm
RadJunk wrote:
Tue Jan 15, 2019 7:51 pm
As someone who literally looks at code all day (I work at a software company) this would drive me a little nuts. I mean I see a use case for something like this in a teach environment as far as logic goes but not much more than that.

Cool concept though.
We also have to take into account that Nesmaker is inevitably going to have more and more young users using it to learn 6502 programming, and to achieve absolute usability, allowances have to be made for that. While it doesn't necessarily have to be in this manner, we can't deny that something needs to be implemented.
I disagree actually. While I think it is important to TEACH people how to do this, it is not always necessary to reduce it down to literal blocks to do so.
User avatar
Digital_Dragon
Posts: 17
Joined: Sun Aug 12, 2018 3:36 pm

Re: A True Coding-Free Solution!

Post by Digital_Dragon » Tue Jan 15, 2019 11:27 pm

I've actually used something like this in an IT class before. Good way to teach general coding logic, though wether people want to learn to code using NESmaker I don't know. Maybe it would help someone make that one unique feature in their game, so I say good luck. But I don't see it being a widely used thing.

It's a bit of a middle ground between 'No Coding' and full use of ASM. I think something people could really use is a way to change constants and things in the engine like enemy speed and behaviour, through the UI a bit more easily. Though I'm sure with updates and plug ins this stuff will come.
User avatar
Redherring32
Posts: 451
Joined: Sat Aug 11, 2018 2:48 pm
Location: Usa

Re: A True Coding-Free Solution!

Post by Redherring32 » Wed Jan 16, 2019 1:12 am

RadJunk wrote:
Tue Jan 15, 2019 11:25 pm
Redherring32 wrote:
Tue Jan 15, 2019 8:00 pm
RadJunk wrote:
Tue Jan 15, 2019 7:51 pm
As someone who literally looks at code all day (I work at a software company) this would drive me a little nuts. I mean I see a use case for something like this in a teach environment as far as logic goes but not much more than that.

Cool concept though.
We also have to take into account that Nesmaker is inevitably going to have more and more young users using it to learn 6502 programming, and to achieve absolute usability, allowances have to be made for that. While it doesn't necessarily have to be in this manner, we can't deny that something needs to be implemented.
I disagree actually. While I think it is important to TEACH people how to do this, it is not always necessary to reduce it down to literal blocks to do so.
Which is why I added the "it doesn't necessarily need to be in this manner" part. I wasn't exclusively saying that we need to use code blocks, I was just saying we need to figure something out. Sorry for the confusion.
My current WIP game: Shadow: An Adventure In Monochrome, you can also find me over at the Community Discord.
User avatar
Kasumi
Posts: 261
Joined: Fri Mar 09, 2018 11:13 pm

Re: A True Coding-Free Solution!

Post by Kasumi » Wed Jan 16, 2019 6:42 pm

Here is my "gold standard" for an easy to use game making program:
Image
It is The Games Factory. It was actually the same price as NES Maker when I got it.
It's what I'd personally like to see NES Maker (or something like it) move towards. It looks a bit different than the blocks, but basically New Condition will add an if statement. Types of things are visually grouped. Then, any actions you add to the condition's row under any objects will run when the condition is true. "Box collides with circle: Destroy Circle. Add 100 to score." NES Maker's action state management is sort of like this workflow as far as "coding". But one can't do other things in a similar way.

Most game making programs have ended up more complicated than The Games Factory as far as "make a game in 30 seconds", because I think they forget some of why people get into them. The Games Factory isn't perfect, it's not as powerful as modern day Game Maker/Unity/Godot/Construct/Clickteam Fusion (its spiritual successor). It lacks the concept of loops! (Though possible with an extension.) But you could make a character move around in a world in like five minutes, after like five minutes of tutorials. It's my belief that the quicker the user can get something on screen, the less likely they are to quit when things get a bit harder since they'll feel like they're making progress. NES Maker setup is pretty "front heavy", so a user might quit before they see anything move in the game itself.

Edit: I checked and The Games Factory does have a repeat condition. I'm not sure if that can be used for things like for loops... back in the day I remember people recommending an extension for it, but I'm not sure why now.

The Games Factory does not provide ANY scripting support at all, out of the box. (Or if it does, I never found/used it as a kid.) The only way to edit its code is that "event editor", unless you make a plugin or something. Having access to the code is a plus for NES Maker, but only to some kinds of users. If NES Maker came out in the time in my life when The Games Factory did, I wouldn't have gotten very far.

I'm not 100% sure where I'm going with this post. :lol: I actually miss workflows like this in general. Even for non NES gamedev, it's hard for me to recommend ways to start because lots of other stuff also has front heavy setup. I genuinely believe developers have just... forgotten that things could be easier because they've "grown up" as the complexity did and so the current methods are still easy to them. There are enough programs that try to toe the line between easy to use and super powerful. I think it'd be cool if something just went full easy to use. As in, if you want the power you have to switch programs entirely. Pico-8 actually uses some of that "Need more? Switch programs" mindset, but it's typing code vs a block/event style. I definitely, really see the value in using the visual ways to compose code in the beginning.

If you start with "regular" typing programming, you're actually learning two things at once. Syntax AND the logic. With a visual thing, you're learning only the logic. While now like others have mentioned, I find visual stuff slow to work in, back then syntax errors were absolutely a wall in getting what I wanted done when I understood the logic.
FerretHallGaming
Posts: 25
Joined: Sat Jan 12, 2019 4:37 am
Location: East Chicago
Contact:

Re: A True Coding-Free Solution!

Post by FerretHallGaming » Sun Jan 20, 2019 2:38 am

Kasumi wrote:
Wed Jan 16, 2019 6:42 pm
I genuinely believe developers have just... forgotten that things could be easier because they've "grown up" as the complexity did and so the current methods are still easy to them. There are enough programs that try to toe the line between easy to use and super powerful. I think it'd be cool if something just went full easy to use. As in, if you want the power you have to switch programs entirely.
This. It's hard for me to imagine that at this point in time we don't have a program that's genuinely idiot proof even if it can only make extremely simple games. Even if the programs it makes are under-optimized, full of bloat, and inefficient, with the processors and memory we have access to today, why not make a program that makes an NES-style game that's port-able to a console? Even if it takes 4GB to make Final Fantasy 1 in it? It'll still allow a different subset of people without the time and knowledge to create a complete project and then get the proof of concept they need to move forward.
Post Reply