ROUND ONE. FIGHT!

Sidewalk Showdown is a recreation of Street Fighter II in my personal engine that includes input and hitbox displays.

<ActorDefinitions>
    <!--default playback = once-->
    <ActorDefinition name="Ryu" 
                     spritesheet="Data/Images/Ryu_12x12.png" 
                     cellCount="12,12" 
                     defaultAnim="Idle">
		
 	<!--Animation-->
	<Animation name="Idle" frames="0,1,0,2" playback="loop"/>
	<Animation name="Walk" frames="3,4,5,6,7" playback="loop"/>
	<Animation name="Walk Back" frames="7,6,5,4,3" playback="loop"/>
	<Animation name="Jump" frames="8,9,10,9,8" playback="once" interruptible="true"/>
	<!--...-->

	<!-- Hurtbox Info -->
	<DefaultBox mins="0.f, 0.f" maxs="0.f, 0.f"/>
	<Hurtbox frame="0" mins="-17.5f, -65.f" maxs="17.5f, 15.f"/>
	<Hurtbox frame="1" mins="-17.5f, -65.f" maxs="17.5f, 15.f"/>
	<Hurtbox frame="2" mins="-17.5f, -65.f" maxs="17.5f, 15.f"/>
	<Hurtbox frame="3" mins="-17.5f, -65.f" maxs="17.5f, 10.f"/>
	<!--...-->
	
    </ActorDefinition>
    <!--...-->
</ActorDefinitions>
void InputLogger::AddInputDataForFrame( InputData data, float deltaSeconds )
{
    if( !m_dataQueue.empty() && data == m_dataQueue.back() )
    {
	m_dataQueue.back().time += deltaSeconds * 60.f;
    }
    else
    {
 	if( (int)m_dataQueue.size() == m_maxEntries )
	{
   	    m_dataQueue.pop_front();
	}
	m_dataQueue.push_back( data );
    }
}

Post-Mortem

With this project, I was able to choose the features I wanted to implement, and I had to plan out what I would prioritize each sprint. Throughout the project, I learned that developing and working with assets took the longest amount of time, while system design and implementation tasks often took less time than I thought. I tended to continue padding my time estimates during sprint planning to avoid any perception that I was over-scoping. I was able to complete all of the features I set out to make, but I sacrificed scalability (partially why the only two characters have the same moves). In the future, I want to be more ambitious with my plans but also devote more time to coding smarter.

(SF2 assets from Spriters Resource and Sounds Resource)

Previous
Previous

Thesis

Next
Next

Doomenstein