Post subject: Super Bullet Dodger 3000
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
A game that runs in FCEUX via Lua. It completely ignores whatever ROM you have loaded, but it works especially well with one I included (see below). It's very simple, and could theoretically run in pretty much anything; it just runs in FCEUX because it's an easy environment to use. RULES: You have 25 HP. Running into a bullet: -1HP. Your score increases over time, boosted slightly by not running into things (although the impact of your health on your score diminishes greatly over time, mostly due to how difficult it is to keep it up.) After a while, it becomes fairly impossible to continue unless you cheat, so, um, don't do that, so we can keep things fair. 8D CONTROLS: Move with +D-Pad. A: Start game. Run into bullets: Die! SCREENSHOTS: Or you can just view a video... Most of these are from older versions or just from when I was testing. They give you the general idea of the gamescreen, but aren't really current. DOWNLOAD: ROM* and Lua file. Technically, you can use other ROMs, but results won't be what you expect. It requires the x_functions Lua library. * The ROM is something I compiled myself that was modified from Acmlm's NSF player program. It contains the Batman NSF code, however, so you should base your judgement on if you mind NSFs being distributed, as that's all it really is. My personal record so far: Feel free to let me know of anything that could be improved. This is really just a prototype of something else I had planned, but it was too fun to not show off. Oh, one last thing: If you can't see your health bar, set your drawing area to 0/239 in Configuration -> Video. Trust me, it makes things much better.
Perma-banned
Skilled player (1886)
Joined: 4/20/2005
Posts: 2160
Location: Norrköping, Sweden
Do bullets appear randomly or is there some kind of pattern? Because savestates do not work with the script I'm guessing a tool-assisted run of this game is not possible to make, though I do think it would look pretty impressive.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
They are completely random. And yeah, savestates don't work. It could probably be done with a bit of effort, but I don't really know how to use savestate.register yet, so. Tool-assisted can always be done... just frame-advance, record to AVI, and be very careful ;)
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
First result: 1,102,968 (1'56"53). There's definitely a room for the game to be improved. For instance, there can be less undodgeable garbage on the screen after ~1 mil point mark; it just leaves survival more to luck than to deliberate dodging from that point on. I'll still beat your score, though. :D [EDIT] Done.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
moozooh wrote:
First result: 1,102,968 (1'56"53). There's definitely a room for the game to be improved. For instance, there can be less undodgeable garbage on the screen after ~1 mil point mark; it just leaves survival more to luck than to deliberate dodging from that point on.
Yeah, I know. I've been considering trying out some psuedorandom patterns instead of pure random (as it also has a tendancy to make the edges of the screen a good place to hide). Anyway, ZIP file slightly updated. It's nothing major other than a few small changes to some text positioning... and most notably, an introduction to the later stages (namely, "Level #" pops up). Nothing important changed, at least. =P Also, time to beat your score, I guess...
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
What hurts the score more: running into several bullets within a small time frame, or just no-missing for as long as possible? For instance, I usually tend to not get hit even once until stage 6 or 7, and usually get killed from 1:58 to 2:05. My scores vary from 1.3 to 1.7 billion as a result.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
moozooh wrote:
What hurts the score more: running into several bullets within a small time frame, or just no-missing for as long as possible? For instance, I usually tend to not get hit even once until stage 6 or 7, and usually get killed from 1:58 to 2:05. My scores vary from 1.3 to 1.7 billion as a result.
score = score * 1.001 + (health / max). e.g., at first it is very important not to take damage, but as time goes on the health v. max has very little impact. Also, trying various other patterns based on timer. So farm, math.random has almost entirely been removed from the bullet generator. The disadvantage is that so far the patterns are quite easy to dodge, even at the highest stage :P
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
If they're easy to dodge, try reducing the amount of hitpoints from 25 to the more usual 3-5 (perhaps with a replenishing mechanism that restores a hit point each ~500k or something). Alternatively, you can have a similar bullet amount/speed, but with a reduced hitbox of the player's craft. You might want to do it rRootage-style (a relatively large sprite with a smaller 2-4 pixel wide box in the middle) to avoid being too small, if it's possible with Lua.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
As in, very easy. The problem is striking a balance between predictable and hectic. Predictable being moving left and right and getting the same thing, versus hectic where things just go wherever. As it is, they try to home in on the player. Using randomness is a huge help, but as you probably noticed it quickly makes the game impossible to do well at beyond a certain point.
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Ah, in that case you can layer random, aimed, and fixed-direction spam patterns over each other.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
Yeah, I'll try mixing them up a bit. As for the smaller-hitbox: It makes it too easy to sit in a corner and accumulate millions of points. Eh. I'll try out varying bullet-types.
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Have fun beating this: That's no-miss until stage 8, and pretty lucky stages 9-10.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
Yikes ... with mixed bullet types, it's suddenly much harder: 1. Weak "aimed" ones. 2. Random ones. 3. Ones that generally travel straight down. It cycles between them for each one. Needless to say I did not make it very far that time. Eh. It seems like a better idea might be to either a) slow down the progression of the final set (bfd 1.000-1.999) or b) limit the max bfd to about 1.500. (bfd = "bullet frame delay", i.e. how long it waits to spawn another bullet. For instance, the first one you get in the beginning is 10. The music kicks in at 2.999, I believe) Eh. Just... eh.
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
Tried reduced hitbox yet?
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
Xkeeper wrote:
As for the smaller-hitbox: It makes it too easy to sit in a corner and accumulate millions of points. Eh.
Due to the way it stores things, the edge-of-the-screen is already a valuable area. After a while it became pretty difficult to get hit, even just randomly flailing around. (3x3 hitbox)
Perma-banned
Senior Moderator
Joined: 8/4/2005
Posts: 5770
Location: Away
You can try cutting off one pixel at a time. Your current one is 10x10, right? Try 9x9, then 8x8, until it becomes somewhat manageable but not easy.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
Regardless, I updated the ZIP again. b0003 has slower bullets, making the hardest speed somewhat survivable... you just have to be exceedingly careful. Of course, you would probably consider it undodgable spam, but I at least found I mostly die of my own mistakes :P
Perma-banned
Active player (308)
Joined: 2/28/2006
Posts: 2275
Location: Milky Way -> Earth -> Brazil
Yeah, reduce the hitbox... it's way too big for the maximun level. Also patterns and different colors would be cool. By the way, Vulkanon is pretty good... There are also others pretty interesting at http://www.shmup.com/
"Genuine self-esteem, however, consists not of causeless feelings, but of certain knowledge about yourself. It rests on the conviction that you — by your choices, effort and actions — have made yourself into the kind of person able to deal with reality. It is the conviction — based on the evidence of your own volitional functioning — that you are fundamentally able to succeed in life and, therefore, are deserving of that success." - Onkar Ghate
Bisqwit wrote:
Drama, too long, didn't read, lol.
Editor, Reviewer, Experienced player (968)
Joined: 4/17/2004
Posts: 3107
Location: Sweden
Hehe, interesting. I think the difficulty in 0003 needs to be toned up a bit though ... Final time: 4'46''07 Final score: -2147483648pts ... negative score? No such fantastic score on 0002 version though.
Active player (308)
Joined: 8/25/2006
Posts: 287
Umm. Could I please have some help getting this to work? It looks very fun. I load the rom into FCEUX 2.0.4 and I run the LUA script via: "File ---> Run LUA Script" But it says it can't find LUA.dll or something. Where could I dl this file? Or perhaps I have another problem? Thanks in advance. Edit: Copy and pasted my SNES one and renamed it to the proper name it wanted and it works. I beat a megaman stage while playing the LUA game at the same time... lol. (Of course I just hid on the side most of the time :S) Edit2: Ugh, only 1'55"52 and 1030835 so far... :P That is only my second try though. God this is fun. And the music is nice. Edit 3: You guys are too good at this. Edit 4: 2'03"32 and 1642754.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
Truncated wrote:
Hehe, interesting. I think the difficulty in 0003 needs to be toned up a bit though ... Final time: 4'46''07 Final score: -2147483648pts ... negative score? No such fantastic score on 0002 version though.
This. Yeah, you aren't supposed to be able to survive the end levels forever. You're supposed to do your best, though. Also, nice job breaking it. :D You managed to wrap it nicely. (Kind of funny. "It's too hard, make the hitbox smaller!" "It's too easy, make it a bit harder!"...) By the way, the WIP version has a hidden feature that you could try out if you feel like having hitpoints is too easy. ;) Although you have to think a bit how to enable it!
Perma-banned
Experienced player (618)
Joined: 11/30/2008
Posts: 650
Location: a little city in the middle of nowhere
How do you get this to work? as soon as the first red pixel reaches the bottom of the screen, I get the message: .\x_functions.lua:51: bad coordinates please help EDIT ignore this, just an old version of fceu I played smb3 at the same time (instead of bulletdodger.nes) and got past level 2 and my score for bulletdodger was 211k
Measure once. Cut twice.
Banned User, Former player
Joined: 12/23/2004
Posts: 1850
andymac wrote:
How do you get this to work? as soon as the first red pixel reaches the bottom of the screen, I get the message: .\x_functions.lua:51: bad coordinates please help EDIT ignore this, just an old version of fceu I played smb3 at the same time (instead of bulletdodger.nes) and got past level 2 and my score for bulletdodger was 211k
Heh. I wouldn't really recommend playing other games, though, as it's very likely that something will break horribly as the script pokes RAM a few times. In the Zero Page no less, which makes it even more likely to break something. (The specific bytes are 0x0014 and 0x0015). As for the rest... well, stay updated :P
Perma-banned