It is currently Mon Dec 18, 2017 7:51 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 249 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16, 17  Next
Author Message
PostPosted: Mon Aug 17, 2015 1:13 am 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 187
tepples wrote:
TIP: If needed, you can put the "LEGACY OF THE FELINE" tiles in an unused part of the other pattern table and use a sprite 0 split to combine them with the title screen's menu and copyright notice text.


*crawls out from under rock*

I gave this some thought, and decided to give it a try. I wasn't even aware this was possible! Neat.

After some tinkering around, I managed to get this method working!
This saves me 33 tiles that I can now use for more background variation.
Less for sprites, but, it's a platformer game, so it shouldn't matter. (Left/Right only)

I marked out how the screen splits will be handled, for the parallax effect.
The water requires shimmering effects for this to work right. I'll add them later.

Image

*silently crawls back under rock*


Last edited by Alp on Sat May 21, 2016 3:00 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Wed Sep 30, 2015 5:44 pm 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 187
Recently, I decided to throw out a total of 18(!) tiles previously used in Cat Quest.

First, the auto-map. While not a bad idea, storing the data for a password would just be stupid.
The primary "you are here" map has been kept, though.

Secondly, I condensed some of the metatiles on the Overworld, clearing about 4 more tiles.
Lastly, I cut a transition in the Dungeon tiles, I wasn't using. At all.

Image
The game now has 18 free tiles, and I have *no* damn idea of what to do with them! Go me.



Code-wise, I'm rather pleased with the method I chose to develop for Monster AI:
Code:
.db $14,$08,$23,$00,$31,$30,$00,$1E            ;00: Green Slime
;[prng(8)],[chg_dir(0)],[move(8)],[idle(5)]


Those 8 bytes of data, are a generic action script I designed, to handle object logic for enemies, without requiring large blocks of code. "chg_dir" may seem redundant at first glance, but when you consider that I can calculate a new direction for *any* type of object, it makes more sense.

I showed the format to Nova, some time ago, and I've since rewritten it twice for optimization.
Here, 40(!) unique enemies are programmed in 320 bytes, exactly.

Now, to tackle the bosses! ...eventually.


Last edited by Alp on Sat May 21, 2016 3:00 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 10:32 am 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
Alp wrote:
*no* damn idea of what to do with them!

Ending sequence decoration?


Top
 Profile  
 
PostPosted: Sat Oct 03, 2015 9:07 pm 
Offline

Joined: Mon Sep 27, 2004 2:57 pm
Posts: 1248
Or variations of existing tiles to decorate your existing areas with, such as cracks or dirt on walls or the ground, or slightly different bricks so they don't all look the same?


Top
 Profile  
 
PostPosted: Sun Oct 04, 2015 10:02 pm 
Offline
User avatar

Joined: Mon Oct 06, 2014 12:37 am
Posts: 187
Myask wrote:
Alp wrote:
*no* damn idea of what to do with them!

Ending sequence decoration?


Not a bad idea, though, to be honest. Much like the intro scene, I was going to more-or-less mimic the Zelda 1 Ending. With credits, followed by the death count, game time, and, since I mentioned it on FurAffinity--

A press B prompt, to start the "2nd Quest Mode" complete with a completely re-worked Overworld map!
But, SHHHH, it's a secret! >.>

Drag wrote:
Or variations of existing tiles to decorate your existing areas with, such as cracks or dirt on walls or the ground, or slightly different bricks so they don't all look the same?


I need to be careful with that idea, clarity is far more important than simple variation.
The game has fissures in some cliff tiles for marking the bombable spots, for example.

You don't want to make players suspicious of *everything*, that's bad game design.



So far, I've experimented with:

A: Re-adding the town tiles to the game. 11/18 tiles. (Problem. It'll be hard to make indoor tiles.)
Image

B: Tombstones, to add a Graveyard to the Overworld. 4/18 tiles.
Image

C: A flower tile, to give the Overworld more life. 1/18 tiles. (This one has a catch, it can't be near water.)
Image


Last edited by Alp on Sat May 21, 2016 3:02 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Wed Oct 07, 2015 10:21 pm 
Offline

Joined: Sun Nov 02, 2014 3:27 pm
Posts: 15
I'm two days late, but happy anniversary anyway!
Alp wrote:
Image

Looking great as always! Whatever else you choose, I think you should definitely use those flowers - most beautiful 64 pixels I've ever seen.

So, it's however many months later, and I have a LOT of musical ideas in the air.
During the summer I put a lot of musical effort into my own game. However, the writing process produced some tracks that I think would work a lot better here.
My academic workload is low so I will definitely be able to flesh out the 12 songs you posted at the end of May. Today I don't have anything to show, unfortunately, but I hope to get something attached by tomorrow next week.

Not long after commencing, I halted work on the music engine as I realized I would fare better with a top-down approach. I'm much more proficient in C than in assembly, so my plan is to prototype the design of the engine in C.

As it stands, the work I've done so far demands a relatively high feature count, so I will be making some compromises compositionally. Once I'm satisfied with the tracks and the engine, I can re-write the engine in assembly, making optimizations a compiler couldn't. All goes well, the result will be a single .asm for the engine, with one subroutine to play a track, and an update subroutine to be called every frame. (This is how the two versions I wrote in assembly work.)

So, does anyone have any tips on 6502 C? I know this article lays the groundwork well, but I'd like to know early on if there are any traps/pitfalls to avoid.

Edit: So much for the low academic workload. Nevertheless, the C prototype is 80% done, and then I will probably write a simple GUI to make sequencing and pattern tables less of a pain. After that I will try to post something more than a 10-second test loop.


Attachments:
File comment: The loop that came out of the testing, played using the current version of the engine
test_song_1.nes [40.02 KiB]
Downloaded 43 times


Last edited by Nameguy on Tue Oct 13, 2015 7:02 pm, edited 1 time in total.
Top
 Profile  
 
PostPosted: Wed Oct 07, 2015 10:57 pm 
Offline

Joined: Mon Sep 27, 2004 2:57 pm
Posts: 1248
Maybe "cracks" wasn't the right word. I meant stuff like an alternate left-half-of-a-brick tile where it has slightly different shading, or it's offset by a pixel or something, and the same for an alternate right-half-of-a-brick tile. Really subtle things like that, nothing meant to draw the player's attention like a giant vivid hugely-contrasting crack-for-decoration or anything like that. Sorry for my bad wording. :P


Top
 Profile  
 
PostPosted: Thu Oct 08, 2015 2:56 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6540
Location: Seattle
Nameguy wrote:
So, does anyone have any tips on 6502 C? I know this article lays the groundwork well, but I'd like to know early on if there are any traps/pitfalls to avoid.
DRW's been discovering a bunch, and complainingsharing his discoveries with us.

The big ones are aspects of that the CC65 software stack is very slow, so:
* Use variables in global scope, or declared static, or compile with -Cl
* Correspondingly, avoid recursion.
* Avoid parameter passing when possible, but if you have to, use __fastcall__ with at most one 8- or 16- bit parameter
* cc65 generates stack-using code even with __fastcall__, e.g.
Code:
; char * __fastcall__ func(int param) {
        jsr     pushax
; int localcopy = param;
        ldy     #$01
        lda     (sp),y
        tax
        dey
        lda     (sp),y
[...]
        jmp     incsp2
because the value of param needs to not be trashed by any functions that you call from this function – but you can fix this manually.
* Be careful with pointer math (the 6502 doesn't have a native way of dealing with individual arrays larger than 256 bytes)

But, most important:
* Don't be afraid to just write something that works first, and then analyze what's making it slow.


Top
 Profile  
 
PostPosted: Thu Oct 08, 2015 5:12 pm 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1870
Location: DIGDUG
Yeah, Shiru's page says most of the important parts, especially the bullet points under "optimization".

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Fri Oct 09, 2015 12:19 pm 
Offline

Joined: Tue Oct 06, 2015 10:16 am
Posts: 610
Sorry to be negative, but I thought those were footballs, and kept wondering "what flowers" ;)


Top
 Profile  
 
PostPosted: Fri Oct 09, 2015 2:21 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10173
Location: Rio de Janeiro - Brazil
I loved the flowers.


Top
 Profile  
 
PostPosted: Wed Oct 14, 2015 9:11 pm 
Offline

Joined: Sun Nov 02, 2014 3:27 pm
Posts: 15
calima wrote:
Sorry to be negative, but I thought those were footballs, and kept wondering "what flowers"
I'm looking at it from every angle but I can't see how it could look at all like a soccer ball :?

Quote:
Code:
.db $14,$08,$23,$00,$31,$30,$00,$1E            ;00: Green Slime
;[prng(8)],[chg_dir(0)],[move(8)],[idle(5)]
I don't understand how this is formatted. The first two bytes seem to make sense if $14 represents a command, but the next two? Also, what exactly does prng do?
Basically, how does this work? :P

I took a third crack at song $01, the menu theme, this time using the C engine. The instruments here are hardcoded for now as I haven't implemented support for them yet, and after entering individual bytes into an array for a few days, I have definitely secured the decision to write a GUI-based exporter for this music format.

I'd also like to hear from you guys whether the test_song_01 I attached to my last post holds any merit. Of course, it's *much* too short as it is, but I'm thinking I could gut it and stuff its body parts in another skin.

Also, here is my first attempt at song $00 (title) from a few months ago, which I didn't post, that I had done for the first version of the engine.


Attachments:
File comment: Not as "Happy/Relaxed" as the last two tries.
(Listen to the track "twice"; when you think it looped there is still a bit more to hear)

song_01_menu.nes [40.02 KiB]
Downloaded 54 times
File comment: (I kind of decided to write the overworld theme and base the title on it, a la Zelda, so this track might be cut or repurposed)
test_title.nes [16.02 KiB]
Downloaded 46 times
Top
 Profile  
 
PostPosted: Wed Oct 14, 2015 9:28 pm 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 1870
Location: DIGDUG
Quote:
whether the test_song_01 I attached to my last post holds any merit


It's nice, except too short. Honestly, my favorite of the three. Would be nice for BG music for regular gameplay.

(song_01_menu.nes)

The mid range sound is a bit harsh. If you're using Famitracker, could you give it a smoother volume envelope.

(test_title.nes)

It's a good start, but I keep expecting it to break into a fast arpeggio or something more interesting.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Wed Oct 14, 2015 10:02 pm 
Offline
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3166
Location: Nacogdoches, Texas
calima wrote:
Sorry to be negative, but I thought those were footballs, and kept wondering "what flowers" ;)
Nameguy wrote:
I'm looking at it from every angle but I can't see how it could look at all like a soccer ball

He said he thought it looked like this:

Image

Not like this:

Image

Okay, sorry... :lol:


Top
 Profile  
 
PostPosted: Wed Oct 14, 2015 10:19 pm 
Offline
User avatar

Joined: Sat Jul 25, 2015 1:22 pm
Posts: 501
Lol I do believe he meant futbols.

I can say that with a certain amount of certainty because I saw it too at first glance.

I'd personally try to get a color in the center of the flower in favor of the dark green or black. Getting rid of the black would also get rid of the whole soccer/football/futbol confusion if that's a concern.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 249 posts ]  Go to page Previous  1 ... 10, 11, 12, 13, 14, 15, 16, 17  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group