It is currently Sat Oct 20, 2018 10:28 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 68 posts ]  Go to page 1, 2, 3, 4, 5  Next
Author Message
PostPosted: Fri Dec 22, 2017 3:17 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
The last youtube video I posted was 8 or 9 months ago, and I feel like I need to make an updated video, it's just that I've barely made any progress. The only things I've added was a lava dragon who doesn't even have collision, some slightly glitchy wooden crates, and an unfinished wolf boss that moves almost exactly the same way as the "plasma grinch" but with a different body.

I've been working on this almost every day, and I feel very frustrated because it's just so unfinished.


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 3:23 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10904
Location: Rio de Janeiro - Brazil
You're getting old, I guess... It seems that at as time goes by and we become more experienced, our enthusiasm decreases for whatever reason.


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 4:22 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
Most of my achievements are behind the scenes stuff like how I am able to cram 74 object memory slots into 8kB of RAM, even though it's still not anywhere close to 128 objects; and making the metasprite data format slightly more user friendly, even though it resulted in an uglier dynamic animation code.


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 6:55 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3377
Location: Richmond, Virginia
A PCE coder could probably fit that many objects in half that size. :lol: How many bytes are reserved per object? 74 is a really weird number.


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 7:06 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
96 bytes per slot. It's kind've embarrassing.


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 7:49 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3377
Location: Richmond, Virginia
:| I don't think it would be unrealistic to half that... Do you have a list of all the variables under one slot?


Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 8:57 pm 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
I actually found a register I didn't need while I was getting it ready, so there are actually 94 bytes per object now. Some of these only a couple bits are actually used so I can try to combine them. I have a "metasprite" register that says what the previous metasprite was. It used to be an important part of the animation engine, but now all it is used for is starting the frame number at 0 when a new animation/action happens, which I think I can get around.

Code:
define object_id($00)
define metasprite($02)         //this is register can probably go after some code revision
define x_position_lo($04)
define x_position($05)
define x_position_hi($06)
define y_position_lo($08)
define y_position($09)
define y_position_hi($0a)
define attributes($0c)
define angle_velocity($0e)
define angle($10)
define amplitude($12)
define kick_range($12)         //share the same register as amplitude.  Unused, but I'm planning on using it.
define linked_object($14)      //linked object is for connecting a sprite to another sprite
define relative_angle($16)
define #_of_child_objects($18)
define modular_animation($1a)
define collision_point_offset($1a)   //share register with modular animation
define timer($1c)
define flicker($1e)
define metasprite_request($20)
define vram_slot_number($22)
define animation_update($24)
define linker($26)         //linker is used for sprite drawing priority order
define priority($28)
define height($2a)
define x_acceleration($2c)
define amplitude_y($2e)
define timer2($2e)      //uses same register as amplitude y
define hits($30)
define on_platform($32)
define on_ground($34)
define slope_data_address($36)
define animation_index($38)          //this is the animation frame number x2
define frame_id($3a)
define impact_freeze_enable($3c)
define object_traits($3e)
define attack($40)
define action2($42)
define parent_object($44)   //parent object means it belongs to a multijointed boss
define object_number($46)   //this is used for object spawning/despawning
define action($48)
define x_speed($4a)
define direction($4c)
define width($4e)
define x_velocity($50)
define y_velocity($52)
define animation_frame($54)  //this is the animation frame number in TV frames
define timer3($56)
define timer4($58)
define timer5($5a)
define next_slot($5e)


Last edited by psycopathicteen on Mon Dec 25, 2017 8:46 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Fri Dec 22, 2017 11:14 pm 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3377
Location: Richmond, Virginia
psycopathicteen wrote:
Some of these only a couple bits are actually used so I can try to combine them.

I can definitely tell; 64 bytes per object looks reasonable. Some of these look really situational; (impact freeze enable?) could you also use less bytes by having multipurpose variables? Or is there actually an object (probably the player) that will potentially use all of these at the same time? One of the first things that stuck out to me is that you're using 4 bytes for x and y position. Could you not get away with 3?


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 5:13 am 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
I was able to get rid of the "metasprite" register. Now down to 92 bytes.

I think "slope data address" is only used within the tile map collision routine, and used only for indirect addressing. Maybe I can use that "lda ($xx,s),y" opcode that doesn't get used very often.


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 5:37 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10904
Location: Rio de Janeiro - Brazil
So, your complaint that you weren't making progress as fast as you'd like resulted in you spending time redesigning/optimizing something that was already working... :roll:


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 6:18 am 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
I think I'll make it a goal to have a new gameplay video ready by New Years.


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 10:00 am 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3377
Location: Richmond, Virginia
tokumaru wrote:
So, your complaint that you weren't making progress as fast as you'd like resulted in you spending time redesigning/optimizing something that was already working... :roll:

You've got to admit, 96 bytes per object is pretty damn ridiculous. :lol:


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 11:04 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10904
Location: Rio de Janeiro - Brazil
Espozo wrote:
You've got to admit, 96 bytes per object is pretty damn ridiculous. :lol:

Maybe, but... is this getting in the way of progress, requiring immediate attention?

I can understand that the longer you take to settle on the final object RAM layout, the more objects you'll have to change later to accommodate the final layout, so maybe that's the reason to get this out of the way before moving forward?


Top
 Profile  
 
PostPosted: Sat Dec 23, 2017 11:38 am 
Offline
User avatar

Joined: Sun Nov 09, 2008 9:18 pm
Posts: 1107
Location: Pennsylvania, USA
Perhaps you need to develop soft skills such as creating a schedule for yourself, and sticking to it. Then one is not quite as dependent on those youthful marathon spurts of activity. They'll still happen, just not as often. And, I'd say for large homebrew projects, it is good to resign oneself to the length of a project---it's gonna be several years if not more. Accept that, and develop a routine, and you will complete your projects.
Jordan B. Peterson on having a routine (for life in general, but...really think it applies just as well to a hobby like this)
*edit* I'd add to that, for my own routine working on projects, I make sure not to work on it absolutely every day, there are frequent breaks. Gotta avoid burnout. I've been working on my projects 3 evenings a week 100% consistently since late 2008, with the only exceptions being particularly busy times surrounding holidays, family or vacation.


Top
 Profile  
 
PostPosted: Sun Dec 24, 2017 8:01 am 
Offline

Joined: Wed May 19, 2010 6:12 pm
Posts: 2760
I wish I can have a schedule, but my parents just randomly ask me to do chores around the house.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 68 posts ]  Go to page 1, 2, 3, 4, 5  Next

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 6 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