SHMUP Tutorial

PasseGaming

Active member
Greetings,
First, I'd like to thank you for even taking the time to take a gander at this request, much appreciated. Second, I am looking for a solid tutorial (or even a base-game module) for creating a SHMUP (a auto-scrolling shooter). I'd like to create something in the vain of Life Force for my first foray into the NES Maker. Now, while I have followed the shooter tutorial from Joe's 4.1 Simple Shooter Tutorial. I was hoping for something a little more in depth as he relates several time the shooter module is not optimised. I'd like something that would show me how to pick and choose said scripts I'd need to create a shooter and incorporate shooting enemies, bosses, options (little following ships that also shoot?), and power-ups. I know it is probably asking a lot and to be honest I'd take anything to at least get me going at this point. Anyhow, thanks again.
 

vanderblade

Active member
Hey,

I am in the same boat. I think the issue right now is the community is largely moving on to version 4.5. It would be great to have a shmup module for the previous version, but if one ever gets made, I imagine it will be for the latest version of the software.

I'm in your boat, however. I have 75 percent of my assets created, but the actual shmup functionality isn't there...yet.
 

TolerantX

Active member
There WAS a SHMUP tutorial for the previous version. It was the only one we had. I asked people about it and only one other guy was interested in a shooter, SpaceRaft. Everyone else was into platforming and thats been focused on. You will never get the module YOU need. Youhave to synthesize the knowledge given to you and write your own scripts. I wrote tons of SHMUP scripts and in January lost all my data. Dale and a half dozen others know I was working on a Section Z type game (Also, Dales Case in point to share scripts). You'll ultimately be fighting with object limits on the screen. Your best bet is to look into how to eliminate slowdown from that. Everything else you've pretty much already been shown multiple times.
 

dale_coop

Moderator
Staff member
To eliminate slowdowns -> don't use the hud (the sprite 0 code for the scrolling code is consuming so much >_<)
Or my advice... is to wait for the 4.5 scrolling (shooter) module that will come...
 

CutterCross

Active member
FrankenGraphics posted a few easy engine modifications to optimize performance and raise the object cap on slowdowns. Keep in mind these are all for NESmaker 4.1.5:

http://www.nesmakers.com/viewtopic.php?f=40&t=4998
http://www.nesmakers.com/viewtopic.php?f=35&t=2529
http://www.nesmakers.com/viewtopic.php?f=35&t=2527

Even with Sprite-0 detection enabled these can get you to about 5-6 objects on screen without any slowdowns.

The big problem with the official SHMUP module is that it wasn't really designed to be a "proper" SHMUP module. It was meant for the 20 minute project tutorial videos to get something up-and-running quick without any code. The SHMUP module is largely the same as the Adventure module, Platformer module, Maze game module... They are are basically using the same codebase underneath. And Joe never followed up with any "proper" modules for 4.1.5.

Another problem is how NESmaker basically only has 1 object class for EVERYTHING. Every object takes up the same amount of bytes in Object RAM, no matter if its something simple like a projectile, or something as complicated as a player object. They're all take up the same amount of bytes. And that unoptimization leads to the frequent slowdowns when there's over 4-5 objects on screen. Pair that with Sprite-0 detection, tile collision for each object, object collisions, etc. and you've got some big slowdown problems.

If you want to make something as polished as a commercial NES game, you have to dive into the underlying codebase. It's absolutely possible to get rid of / implement whatever features you want with NESmaker... provided you know your NES hardware and assembly knowledge... and understand how the NESmaker codebase is structured.

Anyway long rant over. Hope these links can help some people with slowdowns.
 

vanderblade

Active member
Hey all. I'm in the middle of making a shmup module using everything listed in this thread and beyond. If you have questions about shmups, we can work them out together here if you want. Otherwise, it'll likely be a long time before I'm done with my game and release its source structure.
 

vanderblade

Active member
Is there a way NOT to have a HUD? Anytime I try to get rid of it, the game displays only a black screen. I can clear the HUD and not use Sprite Zero, but by default NESMaker demands I use one. Is there some script I have to disable?

EDIT: Nevermind. I see that I can just use the Hide_HUD user constant to do that. Setting it to 1 will hide the HUD on all screens (found this from Dale in another thread)
 

PasseGaming

Active member
dale_coop said:
Or my advice... is to wait for the 4.5 scrolling (shooter) module that will come...

Thanks Dale, that's more or less what I've decided to do. So, in the meanwhile I am messing around with the tutorials to get a better understanding of the engine (i'm a slow learner when it comes to certain things, and unfortunately this is one of them). An make sprites for the many projects I have planned. I can't imagine that it'd be that long of a wait. Just so as long as it is a good while before 5.0, so I don't have to start over again. :shock:
 
Top Bottom