herpes treatment

About me

by Burnout on Nov.24, 2009, under General

Hey, welcome to my portfolio page. My name’s Ben, and I’m currently studying Computer Games Programming at Teesside University. Here, you can find all the projects I’ve been working on, either individually or as a team. Feel free to read about what I’m currently up to, or download some of my content. I’m currently building my portfolio, so please leave me feedback!

To find out more about me, click here!

To contact me, email me at b.scroggins@live.com, or add me as a friend on steam.
Click here to request  a copy of my CV!

Some quick links to visit:



Enjoy the site!

–Benjamin Scroggins

Leave a Comment :, , more...

ExpoTees 2012

by Burnout on May.04, 2012, under Final Year Project, General, Steve the Starfish

On Wednesday I was given the opportunity to display my work at an exhibition for Teesside School of Computing Students, ExpoTees. I had a fantastic time, and was given some excellent feedback on Steve the Starfish and Teddy Defender. I was shortlisted for an award – and won in the “Games Programming” category, judged by Reflections (An ubisoft studio), at the end of the day.


Myself and other winners in the art and animation categories, with Reflections

We were also fortunate enough to have an area set up for Teddy Defender on a projector, in which people could come and play. This was very exciting, and it was great to have feedback from students and industry professionals.

I also displayed Steve the Starfish on the iPad and Laptop, and was given good feedback for both the iOS and Antix versions of the game.
Here are some of the images from Steve the Starfish, as displayed on the day:

Leave a Comment :, , , , , , , , , more...

Screen Space Ambient Occlusion

by Burnout on Apr.19, 2012, under Shaders

I went back and redesigned my Deferred Renderer to make it more flexible to add shader passes. Once I had done this, I began work on adding a form of screen space ambient occlusion. It is based up on a directional occlusion method from here.

Lighting and occlusion are calculated at the same time, sampling from a noise texture. Directional occlusion is calculated and stored in a gbuffer. A blur pass is then applied twice, once vertically, and once horizontally.

I then calculate my lighting in the final pass and apply the directional occlusion result. This gives a decent effect. The more times I sample, the greater the result. For this example I sample 8 times, with a result of 40FPS and 20.1 MS/Frame on the graphics card.

In the future I need to improve the performance. My next step is to apply bounding volumes during the light pass, to render only the part of the texture which has lighting.

To calculate the performance, I used Direct3D queries. Here is a quick code snippet which could be used within future projects, to help determine how long it takes the graphics card to draw a pass.

void DeferredHUB::beginProfiling()
{
	D3D10_QUERY_DESC desc;
	desc.Query = D3D10_QUERY_TIMESTAMP_DISJOINT;
	desc.MiscFlags = 0;
	device()->CreateQuery(&desc, &m_disjointQuery);

	desc.Query = D3D10_QUERY_TIMESTAMP;
	device()->CreateQuery(&desc, &m_timeStampStartQuery);
	device()->CreateQuery(&desc, &m_timeStampEndQuery);

	m_disjointQuery->Begin();
	m_timeStampStartQuery->End();

	m_queryStarted = true;
	m_queryEnded = false;
}

void DeferredHUB::endProfiling()
{
	m_timeStampEndQuery->End();
	m_disjointQuery->End();

	m_queryEnded = true;
}

void DeferredHUB::render(ID3D10RenderTargetView* target)
{
    if(!m_queryStarted)
	{
		beginProfiling();
	}

	//Draw here.

	if(!m_queryEnded)
	{
		endProfiling();
	}

       D3D10_QUERY_DATA_TIMESTAMP_DISJOINT timestamp;
	HRESULT result = m_disjointQuery->GetData(&timestamp, m_disjointQuery->GetDataSize(),           D3D10_ASYNC_GETDATA_DONOTFLUSH);

        //If the result is ready, then calculate and display the time
	if(result == S_OK)
	{
		UINT64 startTime = 0;
		UINT64 endTime = 0;

		m_timeStampStartQuery->GetData(&startTime, m_timeStampStartQuery->GetDataSize(), 0);
		m_timeStampEndQuery->GetData(&endTime,  m_timeStampEndQuery->GetDataSize(), 0);

		UINT64 delta = endTime - startTime;
		float frequency = static_cast(timestamp.Frequency);
		float time = (delta / frequency) * 1000.0f; //Get the time in MS/Frame

		std::cout <<  "Timestamp: " << time << std::endl;

		m_queryStarted = false;
	}
}
Leave a Comment :, , , , , more...

Teddy Defender is now available on the XBOX LIVE Indie Marketplace!

by Burnout on Apr.09, 2012, under Teddy Defender

After 6 months of development, Teddy Defender has been approved by the Microsoft Indie Developer community, and released onto the marketplace.

You can buy it now on your XBOX by going to Games -> Downloadable Games -> Indie -> Teddy Defender.
The game costs 80 Microsoft points, but has a free trial if you’d like to play a quick demo.

In the demo you are limited to 8 minutes.
Two enemies (The Spider and Wasp).
One boss (The evil bear).

In the full version you’ll get:
All  four enemies (Bat, Snake, Wasp, Spider)
Two Bosses (Evil bear and Evil plane)
Leaderboards

We’ve worked very hard on this game for the last 6 months, so congratulations to the entire team!
Go play it as soon as possible!

In my free time I’ll be updating the game, incase of any bugs, tweaks to the gameplay, or just general improvements.
If you encounter a bug, please let us know at teddydefender.blogspot.com

On this project I’ve worked on almost  every aspect of the game, programming wise.

I’ve worked on:

  • Animations
  • Sounds
  • Interface
  • Particle effects
  • Bear movement and Controls
  • Quality Assurance
  • Threading
  • Game states
  • Xbox live Guide features
  • Core Gameplay and Mechanics
  • XML File Reading
  • Drawing Graphics to screen and Custom Shaders

Plus many more things. I’ll be posting up some of the code for Teddy Defender at a later date.

Thanks, and enjoy playing!

1 Comment :, , , , , more...

Looking for something?

Use the form below to search the site: