Jump to content

  • Log In with Google      Sign In   
  • Create Account

SpeedRun's Journal

Breakout Clone v1.0

Posted by , in Games 13 May 2014 - - - - - - · 1,219 views

The first release of the Breakout clone is finally here.

The Installer will install directx and the visual studio 2010 re-distributable.

If you would prefer to run the game through a zip file, you can download it from here. You will have to make sure that you have the visual studio 2010 re-distributables as well as the latest DirectX installed on your machine.

Try it out . Incase, you face any problems while installing or running the game, let me know and I will try to come up with a solution.

Looking forward to hearing your comments on the game Posted Image

Crossposted here


breakout title

breakout ingame1

breakout ingame2

breakout pause

New Release : Asteriods v 2.0

Posted by , in Games, Asteroids 01 April 2013 - - - - - - · 837 views

Version 2.0 of Asteroids has been released
  • Added Redefinable Controls
  • Allowing Toggle FullScreen/Windowed Immediately
The setup can be downloaded here

Attached Files

New Release : Asteriods v 1.1

Posted by , 19 March 2013 - - - - - - · 748 views
asteroids, games
Version 1.1 of Asteroids has been released
  • Added High Score Screen. Top 10 scores are tracked.
  • Ship is flashed on on invinciblity for the 1st 5 seconds
The setup can be downloaded here

Attached Files

New Project : Asteroid Clone

Posted by , in Games 26 February 2013 - - - - - - · 834 views

For my next project, I have decided to make a clone of Asteroids as my second project. I would like to have a finished game by March 31st which gives me a month to finish the game. This time will include all the enhancements required in the engine so that the game is playable

Why Asteroids

  • Its a free form game with irregular goemetry which requires a more robust collision detection system.
  • The ship has to move and accelerate in a way that resembles basic physics
  • A High Score table makes sense since the scores can vary each game
Project updates soon

PostMortem :MPong

Posted by , in MPong, PostMortems 25 February 2013 - - - - - - · 794 views

I have decided to stop working on MPong. The reasons for this include
  • I have been working on MPong for so long that it was tough to find motivation to continue working on it.
  • Although I was continuously adding features to the engine, I was not building up my portfolio
  • I want to test my engine with another game and see how much of the code is actually reusable. I am hoping most of it should be

What Went Right

  • Engine Components : Starting with Pong as my first game, made me concentrate on the engine part. I managed to create a fair amount of the modules I had initially aimed for. Most of the modules should be reusable for the next few games
  • Setup: I managed to come up with a relatively painless way of setting up new projects
  • Refactoring: I am quite happy with how the code base is at this point (all things considered). I think, The fact that I was continuously re factoring the code, will be beneficial.
  • Commenting: I managed to comment a lot of my classes while programming.
  • Using a Repository: Have a repository for my code, meant that I could revert any bugs that I introduced without having to waste too much time.

What Went Wrong

  • Missing Engine Components: I did not get a chance to work on the physics and networking modules.
  • Switching to DirectX 11: In the middle of the project, I decided to switch to DirectX 11 from DirectX 9. Although this might be better going forward, I ended up fixing a lot of bugs that got introduced because of the difference in the way things are handled. Even now, some of the parts are not working correctly or are being done inefficiently by me.
  • Engine Code was part of Project: I see a potential problem for my next project in that my engine setup and repository is closely tied to the Pong Project. I should have taken out the engine components and made it into a separate repository and solution, so that it was easily reusable
  • Not Setting a Deadline: The fact that I did not have a deadline in place, meant that I took my own sweet time to make the game. This has resulted in Mpong being in development for a very long time, without me having to show anything for it
  • Switching to an Obsolete Technology: I decided to use DirectSound or my SoundEngine.. It was only after completing that someone pointed out to me that I should have used XAudio instead

Things I wish I had Implemented

  • ​Physics and Networking modules
  • Support for 2D game elements.
  • High Score Table
  • Better Graphics
  • Restart Option
  • Pause on Minimizing

cross-posted here

New Release : Mpong

Posted by , in MPong 10 February 2013 - - - - - - · 802 views

I have a new setup on the Pong Clone that I have been working.

New features include
  • Help Screen
  • Options Screen
  • Pause Screen (in game)
  • Music and SFX
The setup can be downloaded here
The archive can be downloaded here

We have sound

Posted by , in MPong 16 January 2013 - - - - - - · 745 views

I have written a wrapper around DirectSound to take care of the sound.
I have also background music which was taken from http://www.nosoapradio.us/
I am currently working on a Options screen which allows to disable/enable the SFX and music channels and also set the respective volumes.

New Release : Mpong

Posted by , in MPong 20 December 2012 - - - - - - · 859 views

So I finally got around to making an installer using nsis.
The setup can be downloaded here

The Archive can be downloaded here



In Game Screen #1

Playable Prototype

Posted by , in MPong 18 December 2012 - - - - - - · 900 views

I have finally got a playable prototype up and running.
The game supports both Single Player and Multiplayer Modes.

This also means that I have the following modules finished
  • Game Logic
  • Graphics
  • Input
  • UI
  • AI
You can see the whole list here
What does making Pong take

Next, I will be working on making a installer using nsis

Screen To World Coordinates

Posted by , in Tutorial, Snippet 06 December 2012 - - - - - - · 1,042 views

This snippet shows how to convert a point on screen to a corresponding point in the world. It borrows heavily from the concept of ray-tracing.

Let x and y be the point on the screen which we want to convert to the world space.
We need to create a ray which passes through the camera and the point(x, y) in worldSpace
This ray needs to satisfy the line equation (1)
where Pl = point along the line.
C = Point on the line. In this case the camera position
D = the Direction of the ray
t = some float

Now we need to get the direction of the ray.

First we transform the point to our View space coordinates. View space ranges from -1 to 1 on the x and y axis and 0 to 1 on the z axis with (0,0) being the center of the screen. We can set viewSpaceZ to 1 since the ray goes into the screen

We just reverse the following formula which is used to scale the the position in the world to fit the viewport size.
x = (ViewSpaceX + 1) * Viewport.Width * 0.5 + Viewport.TopLeftX
y = (1 - ViewSpaceY) * Viewport.Height * 0.5 + Viewport.TopLeftY
z = Viewport.MinDepth + ViewSpaceZ * (Viewport.MaxDepth - Viewport.MinDepth)


Next we adjust the points using the projection matrix to account for the aspect ratio of the viewport.

To get our world matrix we just need to invert our view matrix.
Once we have our world matrix we can get the direction of our ray by transforming the viewspace point with the world matrix and then normalize the resultant vector.

At this stage, we have an infinite number of positions in the world which will fall on this ray(depending on the value of t)

To get the exact point in the world we need the intersection of this ray with the viewing plane.
The viewing plane be defined by the plane equation
where N = (A, B, C) = the plane normal vector
k = Distance from the origin
Alternatively, the plane equation can be written as (2)
where Pp is the point on plane

To get the normal of our viewing plane in world space, we need the combination matrix of our view and projection matrix

Once we have our matrix M, the viewing plane normal is simply the normalized vector of (M._13, M._23, M._33)

When the plane and line intersect ,
Substituting (1) in 2, we get

Using distribution, we get

Solving for t, we get

Once we have t, we can plug it back in equation (1) to get the point in our world.

This ends this mini tutorial of converting our screen coordinates to world coordinates

January 2017 »

15 16 1718192021

Recent Entries

Recent Comments

Latest Visitors