People who haven’t worked through a software development and release cycle probably can’t quite appreciate the experience, or the intensity implicit in this process of bringing order out of chaos and complexity. But the relief and the satisfaction match that intensity, when you’re done – which we are, today! Woohoo!
Phrogram has officially released! In a nutshell, Phrogram is the version 2 to Kid’s Programming Language’s version 1 – and it isn’t just for kids any more. Both products are carefully designed to be useful and interesting to beginning programmers. Phrogram offers a bunch of great improvements over KPL, while remaining at least as easy for beginners to use.
Phrogram produces EXE files, for instance, and even has a slick wizard that will package them into SETUP programs that will impress your friends, parents, teachers – and which let you “release” your own programs as freeware or shareware.
Phrogram also adds class-based programming, support for interactive debugging, and file I/O. But perhaps the feature that gets the most interest and “wow!”s is that Phrogram, unlike KPL, does 3D programming.
Actually, Phrogram doesn’t just do 3D – it makes 3D programming easier to do than anyone anywhere has ever made it. Here’s the proof. I keep saying to people “Anyone who can read and can type can learn to program with Phrogram.” Several hundred people have now heard me say that, and seen this example, and no one has ever disagreed. So, what do you think? 🙂
First, the screenshot:
And now the code. By the way, Alan is one of our “lead testers.” When he started “working” on this, he was 9. He’s 10 now. You go, Alan! 😀 Here’s the full code, all of it, that let’s you fly that starfighter around space from your keyboard. Whatcha think?
WordPress doesn’t show the code with the same indenting and color coding that Phrogram uses to make it easy, so it doesn’t look as good here as it does in Phrogram. If you’d like to see it as Phrogram shows it, I have that available in a post on the Phrogram forums.
Define cam As Camera
Define frameTime As Decimal = 0.0
Define sky As Skybox3D
sky.LoadMesh( “Skybox1a.x” )
sky.Scale( 5, 5, 5 )
Define ship As Model3D
ship.LoadMesh( “Fighter1.x” )
ship.MoveTo( 10, 10, 10 )
While Not IsKeyDown( Escape )
Define startTime As Decimal = TickCount()
Define moveAmount As Decimal = 5 * frameTime
If IsKeyDown( Left ) Then
ship.TurnLeft( moveAmount )
If IsKeyDown( Right ) Then
ship.TurnRight( moveAmount )
If IsKeyDown( Up ) Then
Ship.TiltUP( moveAmount )
If IsKeyDown( Down ) Then
Ship.TiltDown( moveAmount )
Ship.Forward( MoveAmount * 10 )
cam.PointAtModel( Ship )
frameTime = Math.Min( 0.01, (TickCount() – startTime) * 0.001 )