A REAL retro programming competition

Started by kevin, June 12, 2013, 07:26:28 PM

Previous topic - Next topic

kevin


  A REAL retro programming competition

    There's loads for programming competitions going on all across the web month in month out.  For us, it's makes sense to focus on retro games since they're generally pretty easy to recreate using modern techniques, since modern languages do most of the work for us.   So we're never really are under the same pressure the original authors.  So it's easy for new/old programmers to dismiss the complexity of even a simple game on 8bit hardware.  I suspect, that for many this would be a culture shock way too far.   But it'd make an interesting experiement.
   
    What I've been thinking about for a while now, is creating some type of challenge or competition that's truly retro, we're the game/demo runs within a display emulation of a highly simplified Commodore 64.   The programmer would  manipulating the C64 memory / video memory and hardware sprites peek/poke  to build up a scene.    This would be an emulation of writing the game in C64 basic on a commodore 64, but without the many limitations.  Since you can do it easily by downloading a C64 emulator today, good luck :). 

    One of the key benefits about tacking something like this, is new programmers become far more acquainted with 'how things accurately work'.   Since after all, you'll be doing everything, and I mean everything..  Could write some 'helper' functions I guess, but that really defeats the purpose.  Even something as simple as drawing a DOT is a lot more complicated than you might think.  So I wouldn't underestimate it.   

    I've had a bit of mess around with rendering a mock up C64 character map (hires) mode the other day.  ( See-> Simple Commodore 64 Mock up )  The demo performs pretty comfortably on my old desk top.    I imagine the framework to look something like this.


PlayBASIC Code: [Select]
     #include "C64-Engine-Thing"

InitC64()

Do
//
ExecuteUserCode()

// Draw the current state of the c64 to the screen, it'd sync for you..
RenderC64Display()
Loop


Function ExecuteUserCode()

// Fill the character map with random characters
For lp =1024 to (1024+(320/8)*(200/8))-1
Poke(lp,rnd(255))
next

EndFunction





    At this point I'm just throwing the idea out there, stirring the pot as they say.