Yes, it can be a bit much, and I would understand if some people would be a bit frightened by it, as it is a lot of OO stuff in there. :)
But the beautiful part is that you really only have to make an instance of your own Type that extends TGameState.
type MyGame extends TGameState
field xpos:int
method Render()
drawtext "RRFW for teh win!", xpos,50
endmethod
method Update()
xpos :+ 1
if xpos > 640 then xpos = 0
endmethod
endtype
Put the graphics code in the Render() method and check for user input and update the game login inside Update(). The framework will take care of the rest. There is some small examples included, and some tutorials is being written.
Once you have your extended Type, it's as simple as doing this:
Global game:MyGame = New MyGame
rrAddGameState(game)
rrEngineRun()
Some of you might wonder why you need to have a "state". Well, it will make things a bit easier for you down the road.
For example, once you have the game you might want to create a main menu. Put the logic and drawing commands for it in a different state, and start the game by adding it instead. Then in the Update function you can tell the framework to switch to your game state. Once the gamestate exits, the main menu will pick up and continue from where it left. Highscore table? Another state. Options? Could be yet another state if you doesn't want to mix it with the menu code.
And so on... They're there to help you out, and you are free to abuse them in any way you can imagine.
The framework will take care of the actual updating of the screen, and to make things smooth at all times, so you don't have to worry about it. And the framework let's you use a 1024x768 resolution on a 800x600 screen (if you would like that) or a 160x120 on a 2048xwhathaveyou for a more retro feel. There really is no limits to it and your game will look (mostly) the same no matter what resolution the user wants to run it in.
This is of course just a small example. There's more goodies inside. Send messages between objects in the game (zombieA tells zombieB that a player is in sight, or the player fired a gun and everyone that still has ears and can hear the shot will know where the player is) or maybe you want to use the virtual gamepad? It will let you bind keys, mouse movements, youstick buttons or whatever and things will be a lot easier in the future if you decide that you might want to steer the car by moving the mouse and fire the torpedoes using a joystick button.
and much more.
Well, end of the rant. I hope I made people a bit more interested in it. It's open source so feel free to rip things out of it if you want, as long as you follow the license. (you can find it in the docs folder on the SVN)