Page 5 of 7

Re: Platform-a-lotis

Posted: Thu May 25, 2017 5:02 am
by Oziphantom
My Clip notes on how to get a solid RPG with a 1/2 person team... Also given more fulltime or all out fulltime

1.) use 6502BDD to do all your I kill boss X which gives me Drop Y to let me do Z plot points
2.) use a 6502 simulator + Genetic Algortihm to run 1000s of battles and balance monster numbers/rates etc
3.) palette swap to the max

doing this should limit the amount of time spent on balance, code and leave you more time to make story and special effects. The game can be done with just place holder graphics and then you can farm out the designs etc, to people to get them done till you reach your ROM limit.

Re: Platform-a-lotis

Posted: Thu May 25, 2017 5:37 am
by FrankenGraphics
Speaking of balance, a good rule of thumb could be that without specific tactical input from a human player, the player characters should be statistically losing (over the course of several battles or just the one, depending on the tone of the game) in an area where monster and party levels match. This will help ensure that battles require the active attention of the player and keep them involved. The battle system should be built to support and reward involvement.
Encounters in which the party is significantly higher levels could be avoidable at the players' option (if random encounters are even used. I think it's a dated concept).

Re: Platform-a-lotis

Posted: Thu May 25, 2017 7:45 am
by Myask
Oziphantom wrote:My Clip notes on how to get a solid RPG with a 1/2 person team...

farm out the designs
"How to do it with a 2-person team: hire more people"?

Also, I think you meant Cliff's Notes.

Re: Platform-a-lotis

Posted: Thu May 25, 2017 8:17 am
by tepples
Myask wrote:"How to do [a substantial RPG] with a 2-person team: hire more people"?
I fail to see how the market for NES games in 2017 would support a large paid team. The compo prize isn't big enough for more than a hobby project. And which authors of homebrew NES games sold on a single-game cartridge since 2010 have released sales figures?

Re: Platform-a-lotis

Posted: Thu May 25, 2017 8:26 am
by Oziphantom
Well you get the game done with 1/2 people and then when the game is done just needs blue square made look nicer, one could optionally bring on more people to just pixel stuff ;) as its not in the "notes" section. A few people use old skool art as a fun thing to escape the tedium of their art jobs, but don't have time to make a full thing, if they just do 2~5 monsters with 1 ~ 4 frames each that is a nice little fun project that won't take them long, couple of nights, a weekend etc. Or having a complete game one could line up some pixel artists and hit kickstarter with it.

Never heard of Cliff Notes... Clip Notes to me means means a list of things you put on the Clipboard. Back in the day when we used them and would carry notes on them. One also might make some "clippings"

Re: Platform-a-lotis

Posted: Thu May 25, 2017 8:45 am
by dougeff
Cliff's Notes (usually with 's, though I see the company now goes by cliffsnotes) are study aids. It's a condensed version of a large book, used by people who don't want to read the big book, but want to get a good grade on a book report in school.

People sometimes say "give me the Cliff's notes version" when they want a shorter explanation.

Re: Platform-a-lotis

Posted: Fri May 26, 2017 11:56 am
by zzo38
Oziphantom wrote:1.) use 6502BDD to do all your I kill boss X which gives me Drop Y to let me do Z plot points
What is 6502BDD?

Re: Platform-a-lotis

Posted: Fri May 26, 2017 12:42 pm
by Myask
tepples wrote:
Myask wrote:"How to do [a substantial RPG] with a 2-person team: hire more people"?
I fail to see how the market for NES games in 2017 would support a large paid team.
That was my point.

Re: Platform-a-lotis

Posted: Fri May 26, 2017 2:01 pm
by gauauu
Or instead of hiring twice the people, take twice the time. (assuming everyone on your team has the necessary skill sets). I mean, for most of us, this is a hobby. Who cares how long it takes if you're enjoying yourself.

Re: Platform-a-lotis

Posted: Fri May 26, 2017 3:01 pm
by tepples
gauauu wrote:I mean, for most of us, this is a hobby. Who cares how long it takes if you're enjoying yourself.
Hobby means you need to feed yourself otherwise.

Re: Platform-a-lotis

Posted: Fri May 26, 2017 3:56 pm
by gauauu
tepples wrote:
gauauu wrote:I mean, for most of us, this is a hobby. Who cares how long it takes if you're enjoying yourself.
Hobby means you need to feed yourself otherwise.

Yes..... But I'm not sure how that's relevant.

For the vast majority of us for whom this is a hobby, we choose how much time to devote to it. For me, it's a small percentage of my time, which is why my games take years to write. But if I want a game with more content, I can spend more years. (Without increasing the percentage of time I spend per week)

What I do with the rest of my time (work, family, etc), and how I feed myself, is irrelevant.

Re: Platform-a-lotis

Posted: Fri May 26, 2017 11:26 pm
by Oziphantom
zzo38 wrote:
Oziphantom wrote:1.) use 6502BDD to do all your I kill boss X which gives me Drop Y to let me do Z plot points
What is 6502BDD?
BDD is Behaviour Driven Design, its a evolution of TDD ( Test Driven Design ). The idea is you test the actual desired behaviour, not the internal logic. 6502BDD is the system hooked up to a 6502 emulator. It uses the Gerkin script implementation of BDD.
For example, on Squid Jump, the platform collision logic is complex ( I was trying to see if I could squeeze it into 4K, and I need every clock I can get ) so I could easily brake it.

Code: Select all

Feature: Test how Squid interacts with Platforms 

  Check squid against a bunch of platform types and make sure the right things happen

Scenario: Simple Solid
  Given I have a simple overclocked 6502 system
  And That does fail on BRK
  And I load prg "squid.prg_test"
  And I load labels "squid.acme"
  And I load bin "testLevels\simpleCollision.bin" at LevelData 
  And Joystick 2 is NONE
  When I execute the procedure at $810 for no more than 800000 instructions until PC = GFSM_Game
  And I write memory at playerY with 158
  And I continue executing until $403 = 150
  Then I expect to see playerY less than 200
  Then I expect to see playerY greater than 158
So this basically loads in my code, loads in the labels so I can reference things by label. Then I inject a test level, clear the joystick input, run the game set up which will plot the level etc for a while, then I move the player to 158, then I run the engine for 150 frames, then I make sure the player has hit the platform ( which is a little above the bottom of the screen), and I also make sure that the player fell under gravity.
Thus testing the player collides with a platform.
Then I have another one to test that a conveyer will a.) collide and b.) move the player to the right,

Code: Select all

Scenario: Simple Convayer Right
  Given I have a simple overclocked 6502 system
  And That does fail on BRK
  And I load prg "squid.prg_test"
  And I load labels "squid.acme"
  And I load bin "testLevels\simpleConRight.bin" at LevelData 
  And Joystick 2 is NONE
  When I execute the procedure at $810 for no more than 100000 instructions until PC = GFSM_Game
  And I write memory at playerY with 158
  And I continue executing until $403 = 150
  And I expect to see PlayerData_onGround equal 1
  And I expect to see playerX greater than 154
  And I expect to see playerY greater than 158
Then I also want to make sure that a player can't move right when on a normal platform

Code: Select all

Scenario: Can't move when on a platform R
  Given I have a simple overclocked 6502 system
  And That does fail on BRK
  And I load prg "squid.prg_test"
  And I load labels "squid.acme"
  And I load bin "testLevels\simpleCollision.bin" at LevelData 
  And Joystick 2 is NONE
  When I execute the procedure at $810 for no more than 800000 instructions until PC = GFSM_Game
  And I write memory at playerY with 158
  And I write memory at playerX with 152
  And I continue executing until $403 = 150
  And I write memory at $403 with 0
  And Joystick 2 is R 
  And I continue executing until $403 = 25
  And I expect to see playerX equal 152 
It takes about 12 seconds to run all my tests (the system is in JAVA ) but it lets me code fearlessly

Re: Platform-a-lotis

Posted: Sat May 27, 2017 11:00 am
by Drew Sebastino
Oziphantom wrote:For example, on Squid Jump, the platform collision logic is complex ( I was trying to see if I could squeeze it into 4K, and I need every clock I can get ) so I could easily brake it.
Wait... This?

Image

Re: Platform-a-lotis

Posted: Sat May 27, 2017 11:25 pm
by Oziphantom
Well not actually detecting if there is a platform or not, although there are char platforms, sprite platforms and pickups to detect, each with there own data structures to walk though. Its how the player has to react to said platforms, in that some will move them, some cause them to have a fixed momentum, some accelerate the player, some force you into a jump, which may or may not need to reset the jump counter. As I was tring to get it into 4K I was looking at making equations CanJump = OnPlatform OR (HasDoubleJump and NumJumps=1) OR (Not OnPlatform AND CanJumpTimer < 5) to keep the IF THEN cont down and squeeze out the bytes.These equations were very brittle. So to control the Physics FSM each platform needs to set the right flags, but to keep code down any shared settings are grouped into a single function, but I would change the settings which would work for 3 but then the 4th would need the flag not set etc. BDD6502 would find such cases in seconds.

Re: Platform-a-lotis

Posted: Sun May 28, 2017 12:31 am
by pubby
I'm going to be judgmental and say you've added a lot of complexity to your little 4k game by adding all of that.

You've also added complexity to your description of it.