Timbles & .Net

I wrote the initial prototype of Timbles using vb.Net. Now I know many people will scorn at such a thing, but the reality is, I’ve been around the block with development languages – been doing it for long enough – and nowdays, I just want to go the easiest route.

Coding with .Net and VB is pretty straightforward, and you can do almost everthing you could want with them nowdays. I initial intention was to create the prototype using .net and windows forms and the move over to C++ directx when I need to code the game proper. The idea is that it is much easier to work with the prototype before investing time in the final production software.

When doing graphics with a Windows form there are 2 things you need to do. Firstly you must create a seperate user control to draw to, the second is that you need to turn doublebuffering on on that control.


Partial Class canvas
Inherits System.Windows.Forms.UserControl

This means that you can turn doublebuffered to true for this control. Place that control on your form and that is now your render target. Here is an example paint event for that control which we will use to render the game.

Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles panel1.Paint

Dim n As New System.Diagnostics.Stopwatch

PlatformDevice.currentGraphicsDevice = e.Graphics

n.Start()

If Not IsNothing(currentPanel) Then
currentPanel.Render()
End If

n.Stop()

PlatformDevice.renderFrameDuration = n.ElapsedMilliseconds

End Sub

This code then tells the current panel to render. And all that needs to be done in there is to draw to the current graphics device.

Place a timer on your control that runs at your required frame rate, and inside the event for this invalidate your control.

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Dim duration As TimeSpan = Now - lastUpdate

' how long did the update actually take
PlatformDevice.updateTime = duration.Milliseconds

Dim n As New System.Diagnostics.Stopwatch

n.Start()

If Not IsNothing(currentPanel) Then
currentPanel.update()
End If

lastUpdate = Now

n.Stop()

PlatformDevice.updateFrameDuration = n.ElapsedTicks

panel1.Invalidate()

End Sub

That’s it… you’d be surprised that you can get pretty good frame rates based on this method. More than enough for 2d games and in particulalry prototypes.

Next I’m going to mention XNA, Direct3d, and C#…

Related Posts:

Timbles

I started writing a new game recently and I thought I’d take the opportunity to talk around it rather than specifically about it. The concept came from realising that I had the ability to help Rebekah with her learning through the medium of Computer Games! Yep… I was lay in bed thinking about a particular problem Rebekah was having and thinking that I should be able to find a way to help her that would be more entertaining and thus should engage her more, when the penny dropped… I’m a software developer, and a games developer at that – so there is something I could do. I got out of bed and spent through till morning working on the prototype of the game.

It’s a simple puzzle game that I call Timbles – I don’t want to say much more than that at this stage.

After working on it for a few days and feeling happy with the general concept I let the kids play it. They love it and it seems to be doing the job. I took it into Rebekah’s school to show the lead learner and he likes it to. The school are going to work with me on it to help craft it into something that the kids could benefit from.

Related Posts:

Installing printers…

I just installed an HP OfficeJet Pro L7600 Series printer on my laptop… why oh why is the MINIMUM install 234mb? Surely all I should need for a MINIMUM install is the driver? Everything else should be optional.

Technorati , , , , ,

Related Posts:

  • No Related Posts

Photos

Just a reminder to whomever still finds themself visiting here ( [insert preferred diety here] bless you! ) that you can see a greater range of photos on my Flickr or Fotothing accounts.

Access to them can be gained from the links in the sidebar.


http://www.fotothing.com/icemarkuk

Related Posts:

Music to walk to…

Got out of my car this morning and fired up my iPod on shuffle… first song Pink:Fingers, followed by Girls Aloud:Call the Shots, and Rihanna, Don’t stop the musc… they all seem to have a perfect Walking BPM.!

Technorati , , , , , ,

Related Posts:

  • No Related Posts
%d bloggers like this: