My suggestions for NESmaker

erockbrox

Member
27) I'm following your tutorials thus so far. I just finished Tutorial 4_changingobjectstates.

I got everything to work just as you did, except for one thing. Getting separate animations to play for walking LEFT and RIGHT directions. I find the whole Manage Animations and Object Details sections very counter intuitive and confusing.

I understand that different walking directions need different animations, but in the way that it is done just confuses me big time.

For example, I made 3 animations,
1 walking left,
1 walking right,
1 idle

I made 3 different animations for these and named them in Manage Animations then I went to Object Details and under the Animations Tab there is a list of options. I find this to be logically flawed and here is my reasoning. It says that I have 3 animations types yet for each animation type I have options for Down, Down Right, Right, Up Right. So this doesn't make any sense to me. If I have an animation sequence that shows the player walking Right then it should only be 1 options for that.... and that is walking right. But it seems that I can have a walking animation that is for walking right, but assign that to BOTH walking Up, Down, Left and Right. Now I understand that maybe you want a game where there are only 2 states, 1 for moving and 1 for rest like in your example, but for most other games you don't want this.

But the whole thing is, is that Each animation has all of the directions associated with it and you can't just NULL something out, it has to be one of the animations. So if I have the walking right animation and I assign that to walking right then all of the other directions have other animations assigned to it.

It also seems to be a contradiction because I can select move right animation and all of my tabs can say move left and then I can select my move left animation and all of my tabs can be set to move left too. So then what happens when I move right and left then? It seems like things can be assigned too many ways.

Another thing. So I just created a animation that makes the player go up. I made the graphics, then went into Manage Animations and created named a Up animation, but then when I go to Object Details that Up animation is NOT there. So it is like you have to create or name the animations twice thus not making any sense to me.

In the Object Details window it is also called the Monster Animations Info. Having this named two different things is confusing. If I assign a state to an animation type and try and delete it, it says that I can't delete it. Well what if I need to delete it?

I used different action steps for idle, walking right and walking left. I gave them state 0, 1 and 2. And did the whole scripts and button inputs too. The character moves left and right but NEVER shows the specific left and right animations that I created. Maybe I'm not understanding something here, but I tried everything.

Also the bounding box confuses me. Do I need to set up a different bounding box for each different type of animation?

Also in the object details in the actions tab there is a action drop down which has "move 8 directions". Can I just use this instead of making this all happen manually?

I tried to write scripts to allow up and down movement. I took the code and replaced the X's with Y's and gave them a different RAM address or object state and it had problems compiling the code.

So apparently this code isn't allowed??

LDY player1_object
INC Object_y_hi,y
ChangeObjectState #$03
RTS
 

RadJunk

Administrator
Staff member
Let me try to explain - hopefully this will make it make more sense for you.

Every object has action steps. Let's just focus on the player. Let's say you make action step 0 idle, action step 1 walking, action step 2 jumping, and action step 3 hurt.

For every action, you might need up to 8 directions...walking left, walking right, waling down, walking up, for instance. The one that shows will be determined by a combination of the "action step" the object is using AND the direction that is set for the object.

So when you're creating animations on the front page of the object dialog box, you're creating all of your possible animations.

On the inner page inside details, you're assigning animations to the different possible states the object can be in. So you're saying "there is a state called walk", and then for the directions, you can assign WHICH of the animations would be used if you're using state walk and facing in a particular direction. So if you're WALK->up, you'd need to set it to the player_walk_up animation you've created, but if you're in the WALK type and the direction is down, you're STILL using the WALK type of animation, but if the direction is down, you'r using the player_walk_down animation, for instance.

What you call these things means absolutely nothing other than organization for you. You could just as easily call them AnimationType00, AnimationType01, and AnimationType02, where AnimationType00 - idle, AnimationType01 = walking, and AnimationType02 = jumping. Then in directions for AnimationType01, you'd apply the animations for what animations idle would use based on the direction you're facing.

And no, by default you only have one bounding box for the object. You could, in code, set different box sizes / options for an object, but that's an advanced, coding required thing.

Those choices you see in actions are AI actions. If you want an object to behave in a certain way using AI, yes you could use that. Generally you want finer control of the player, so the player is a special case that works directly with the controller. COULD you do it that way? Sure, i suppose, but those actions are really meant for AI that is simpler than the player's control is supposed to be.

The code you wrote looks perfectly logical. Make sure everything is spelled correctly (caps is correct on everything). Other than that, it should work. But I can't give you an more info without knowing *WHAT* the error was. That's too vague.

Hope that helps.
 

erockbrox

Member
Okay thanks. You actually cleared some things up.

I was thinking that animation types were like walking right, standing still, walking left, walking up.

Now I understand that animation types are more like, running, jumping, shooting ect and you can do each of these 8 different ways.

Also I'm having a really hard time with color palettes. I know how to make them, but it seems that when I really want to make them I'm in some different part of the program that doesn't allow me to make them. I'll try and explain.

Usually when I'm in the pixel editor section of the program that's when I feel like being creative with my color palettes, but the program doesn't seem to be able to CREATE color palettes from the pixel editor section. But that is where I want to create them because I can actually see my graphics along with the colors.

[edit] Okay you can make the color palettes in the pixel editor but you must first assign that color palette to a group first.

So I just got done watching video 6_realmovementscripts and so I copied those up,down,left,right script movements from the beta assets and tried to use them in my game and I got this? The pink character was my creation.

xeFX152.png


So it seems as if the game suddenly turned into Mystic Searches!? But I wasn't trying to make mystic searches, all I was trying to do was make my character move in different directions. I'm confused.... is this some sort of crazy glitch???

[edit] Oh, I think this was because I started a new project and didn't set up my emulator preferences.

Also when editing the overworld it seems if there is a lack of "painting" tools. For example what if I wanted the whole screen to be all of one tile. Currently the only way I know how to achieve this is to place each tile individually. It would also be nice if you could hold your mouse button and drag the mouse and paint the tiles this way. Placing each tile with a single click seems like it takes forever when making a lot of screens.

Also I know that this is a beta and not the final version of the program but it would be great if you added later to the input editor a (1,2 combo) button press. For example in many games if you press START then SELECT then it restarts the game. It would be nice if you allowed this. Both note that START and SELECT in this case are not being pressed together at the same time.

Also I know that you have a tile that says WIN GAME, and it allows the player to finish the game, but in games like Super Mario Bros 1 NES, there are many levels in the entirety of the game. So it would be nice to have a WIN LEVEL tile that just finishes off the level and doesn't win the game yet still progresses you to the next area.

Just a suggestion, but I constantly get confused when creating animations for the player under the MANAGE ANIMATIONS window. There are 3 tabs, ADD, DELETE, RENAME. In my opinion the current way in which that works is totally backwards for my intuition. Here is the way I think it should work.

There is NO, delete or rename options as buttons. If you want to delete or rename you right click on the name and choose it. The text box should always be open to write in new names and when you want to add the new name you click the add button. This is how I would have programmed this tool!

Making the RENAME button "ADD" in the name defies all my logic. The ADD button adds stuff, not the RENAME button... I mean come on... I hope you agree with me here.

It looks like when I try and ADD animations to the Manage Animations window, it will only let me add in like 8 animations before it stops me from adding any more. I then have to exit that window and re-enter it to add even more. Like wow that is strange.

I just learned from your tutorial video that you can zoom in and out in the pixel editor with the + and - keys. That is great, but is there any way that you can make this into a clickable button instead of just a shortcut. Before you mentioned this I had no idea that it existed, but if it had been a clickable button I would have figured it out all on my own.

In the different Tile types you showed how you can make your own custom tiles. I also want my monsters to do custom things, but it seems like they also have to be ran though that properties window to make them conform to certain things. So I'm guessing you can code their AI routines to be custom? And are you only allowed 16 unique monsters just like you are only allowed 16 custom Tiles?
 

dale_coop

Moderator
Staff member
This "mystic searches" dialog box is the emulator that comes with NESMaker. It's a basic emulator, originally made for Mystic Searches, so what you see here, is the help menu of that emulator.

But as Joe explains in the video, you can configure NESMaker to use another emulator. For development / debug, "fceux" as recommended by Joe is a perfect solution (download it on internet, unzip, and then you can configure in NESMaker). It's explained in the "NESmaker 0 - (pi beta) The Basics of the Interface" video at 10:00
https://youtu.be/D24fxPMKke8?t=10m
 

RadJunk

Administrator
Staff member
Erock...a bunch of misconceptions here. I'll try to help out again as in depth as I can in a short of a post. It seemed like you figured a few of these things out yourself!

1) Yes, as demonstrated in every *first* tutorial, the first step is always to set up your palettes. It's just how the palettes get held together throughout the whole tool. You can set them up and then rearrange them or play with them until your heart's content, though.

2) We are talking about painting tools for just dragging in the screen painter. Right now, 5 allows you to draw tile 0 (which effectively acts as "erase", setting it back to what it was when it was zeroed out). The idea is for 6 to draw the current tile, and 7 to draw just collision data of the current tile. I could be wrong about the numbers that will be used, but that's the general idea.

3) Things like making Start AND Select restart the game...you can do that now. You need a script for restarting the game (which you should have, or based on the tutorials to this point, easily be able to figure out). Then in the input editor, in main game, when you press start and select, do that script. They will have to be pushed simultaneously in that scheme. You could also make a script for JUST the start button or JUST the select button press that also check to see if the other is being held down. There are many ways you could do this, from setting a variable to a value when one is held down to directly checking the dpad input to see if that button returns a 0 (not pressed) or 1 (pressed) and reacting accordingly. These are the sorts of OVERALL concepts that the tutorials are meant to teach you, and then you employ them how they want. For instance, the same technique could be used to determine if you're pressing UP and B in a platformer, to create a bomb, where as b alone creates a straight projectile. That sort of thing. Don't confuse "the tool" with "the engine". The engine is malleable to you, the user, and new scripts and tutorials on clever ways to use them will be created for the engine for years to come, I'm sure.

4) Again, this is something you could do right now, and is an engine, rather than a tool, specific thing. Have it go to a special screen like the win screen. Have a animated tile on that win screen, or have it set a global timer variable...when it's done have it to go to a new screen, just like what the warp tile does. Or to just bypass the transition - have it warp to a normal screen that LOOKS like a "level change" screen, but is actually a gameplay screen. Have a warp tile take your character there, just block him in with solid objects or something, and have a monster end animation trigger a jump to the next screen. To really get the most out of NESmaker, these are the sort of "out of the box" concepts that will help! What do I know how to do...well, I know how to change screens. I know how to trigger events. How can I trigger an event that changes a screen? And then synthesize methods. I'm sure people will create tutorials on how they used these features, but this is totally in the scope of what the engine can do right now. :)

5) I'm not sure what you mean about the Manage Animations window. You press the ADD button, it creates a new Animation. You select that animation, type in a new name, and hit rename, and it renames the selected animation. You press delete and it gets rid of the selected animation. The rename button doesn't add stuff...the add button adds stuff. The rename button lets you rename things. If I understand what you're talking about.

6) Yes, we have noticed this bug (8 animations at a time). Working on it.

7) Yep, zoom buttons have been suggested. :)

8) Yes, you should've seen how I made their animations do custom things. You are not only allowed 16 unique MONSTERS though, you're allowed 16 unique BEHAVIORS. But, that gets pretty diverse with all the other options that you have, and once you start playing with the bits. For instance, you could create move, stop, shoot at player, jump, shoot forward, teleport, and sink into the ground. That's only 7 out of the 16...but you could make one monster that moves (very fast, based on his speed), then stops, then shoots. You could make another that constantly moves. You could make one that moves, then stops, changes to a spell casting animation, disappears, then teleports to a different part of the room. Then you could make one that never moves, just shoots at you constantly. Then you could make one that appears, shoots, disappears...appears, shoots, disappears...then you could make one that moves, stops, sinks, appears...moves, stops, sinks, appears. Then you could use the object types to make some shooters invincible to attack (by making them NOT monster types) that just shoot at you like statues...etc etc. The monsters are meant to work with modular AI so you can really create what feels like VERY diverse sets of monsters with limited code space. Above are just examples of how to create "complex" monsters using just a few different routines.
 

erockbrox

Member
I am slowly learning the program, but I must admit that it has a learning curve. Your explanitions do help Joe. In other programs there usually is a help file with them so you can look up things and learn all the in's and out's so maybe in the final version you could include one of those.

One more thing I noticed is that if I save everything, but then close out the program the program will ask you to save everything all over again even if you didn't make any changes to your work. I'm guessing this is another bug.
 

dale_coop

Moderator
Staff member
For now, the tutorial videos (and the forum) are the help, everything is in there.
I know Joe is making a help file (will be available online may be at the launch). And there will be a complete strategy guide, if you want, you can pre order on the website http://www.thenew8bitheroes.com

Another idea, we could start some topics “how to” illustred, like the videos does.
 

erockbrox

Member
Once I understand the program enough, I might even try and do a tutorial. No promises, but I'm thinking about it.

After many many hours of work, I have a game up and running with a character. No enemies yet, but I hope to create a simple game with this pi beta version. I'll post my results in the near future.

The main hurdle was wrapping my mind around how the program actually works. Once you get that down then its not so bad.
 

dale_coop

Moderator
Staff member
Good advice: watch the tutorials, and the try doing the same, and if you don’t have the same results, watch the tutorurials again.
You can’t use (understand how to use) easily NESMaker without watching those videos. (A lot of small properties to know / to setup in order to make each « object »)
 

erockbrox

Member
I wrote a post but somehow I guess my browser messed up and deleted it.

Anyway, I've been playing around with NEsmaker some more and noticed something that is kind of bugging me.

It's the whole idea that you are only able to view and edit a single screen at a time. In other words, it would be really nice if NESmaker could load the entire overworld area all at once and allowed you to zoom in and edit the screens this way.

For example Lunar Magic, the Super Mario World editor allows the user to load an entire level which is 30 screens long and 2 screens high and you are able to edit any part of this. NESmaker only allows to view and edit 1 screen at a time. So 30 edible screens vs 1 screen. Here are some pictures below to try and show what I'm talking about. Also I think I made a few typos in the text in the images below but just try and see over that.

4wnqPXu.png


2hm6ZIY.png


ab3LndJ.png


kNNJBJh.png
 

Mihoshi20

Member
erockbrox said:
I wrote a post but somehow I guess my browser messed up and deleted it.

Anyway, I've been playing around with NEsmaker some more and noticed something that is kind of bugging me.

It's the whole idea that you are only able to view and edit a single screen at a time. In other words, it would be really nice if NESmaker could load the entire overworld area all at once and allowed you to zoom in and edit the screens this way.

For example Lunar Magic, the Super Mario World editor allows the user to load an entire level which is 30 screens long and 2 screens high and you are able to edit any part of this. NESmaker only allows to view and edit 1 screen at a time. So 30 edible screens vs 1 screen. Here are some pictures below to try and show what I'm talking about. Also I think I made a few typos in the text in the images below but just try and see over that.

I really don't believe it's fair to compare NESmaker to either Lunar Magic nor Hyrule Magic as they have far different scopes. Both are designed to edit pre-existing games and create derivative works of them where as NESmaker is designed specifically for making games from scratch. Lunar Magic has also been in development for 17 years and didn't even gain the magnify icon you point out until version 2.12 released in 2013 meaning it went 13 years without it and didn't even gain that icon bar at all until version 1.51 meaning before that time it was menus or nothing. I do however agree that many portions of NESmaker could use with some scroll bars in certain areas. The pixel editor especially could do with an overhaul.

It's probably more fair to compare NESmaker to Hyrule Magic as it has fewer versions, is as rough around the edges user convenience wise, and is designed to edit an adventure game as was NESmaker's original purpose. However NESmaker is still very much in beta, though I'd actually consider it to be more alpha software as they're thinking more about hammering out bugs and making sure all the pins to the asm code and CHR files work smoothly and working on the modular system right now than the user experience.

I do have hopes that after the official launch they will give more attention to the UI and User experience but I just don't think that is a priority for them right now. Which rather makes me dread what the august version will look like, especially with that beta hierarchy tree.
 

RadJunk

Administrator
Staff member
Our Map -> Screens doesn't work like those other programs. The map is not actually showing you any real data at all...it's showing you a referential thumbnail of a screen for easier navigation. Even if you could zoom in, you'd just be zooming in on the thumbnail, not an editable part of the screen.

NES data is stored screen-by-screen. A screen is made up of 16 meta-tiles wide x 15 metatiles tall worth of data. It's not like modern game development tools, where levels are just sort of endless strings of data values...the NES, and our engines, are very regimented sizes because of the way that the NES works with other things. We have, however, provided an easy way to see the screens next to, above, and below for easy collision lineup, and you can actually move between them with the arrow keys, you don't need to go back to the map.

I'm not sure if it will be possible to "show more screens" in the edit window and zoom or not...that would be a question for Josh, but above is the reason why this may differ from other software, which may work with the data very differently.

As for what the software will look like this month...strikingly similar to what it looks like now, but with added functionality (and some unused stuff removed to hopefully help avoid confusion). UI is at the bottom of our priority list...just bashing into functional form and letting people start playing in the sandbox is our top priority. :)
 
Top Bottom