Personal tools

User talk:DavidE

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
Line 3: Line 3:
 
== What is Bogre-Banana ==
 
== What is Bogre-Banana ==
   
Bogre-Banana is a 3D game engine for Haskell. It uses Haskell bindings to the OGRE 3D engine and a library called Reactive-Banana, to create a "Functional Reactive Programming" game engine. Bogre-Banana is designed to be concise and easy to use.
+
Bogre-Banana is a 3D game engine for Haskell. It uses Haskell bindings to the OGRE 3D engine and OIS input system and a library called Reactive-Banana, to create a "Functional Reactive Programming" game engine. Bogre-Banana is designed to be concise and easy to use.
   
   
== What is "Functional Reactive Programming" ==
+
== FRP Crash Course ==
   
 
Functional Reactive Programming (FRP) is a programming paradigm used widely with Functional languages to create interactive programs.
 
Functional Reactive Programming (FRP) is a programming paradigm used widely with Functional languages to create interactive programs.
 
 
== FRP Crash Course ==
 
   
 
Programming in FRP consists of creating a network of "Behavior"s and "Event"s (although Events are more like event streams). A Behavior represents something that changes through time. An Event represents discrete time specific events. The key difference between a Behavior and an Event is that a Behavior has a value at all times, while an Event only occurs at specific instances of time.
 
Programming in FRP consists of creating a network of "Behavior"s and "Event"s (although Events are more like event streams). A Behavior represents something that changes through time. An Event represents discrete time specific events. The key difference between a Behavior and an Event is that a Behavior has a value at all times, while an Event only occurs at specific instances of time.
Line 25: Line 22:
   
 
Reactive-Banana is the FRP library used in Bogre-Banana. You can find more information about it at [[http://www.haskell.org/haskellwiki/Reactive-banana]]
 
Reactive-Banana is the FRP library used in Bogre-Banana. You can find more information about it at [[http://www.haskell.org/haskellwiki/Reactive-banana]]
  +
  +
== Tutorial 1: Hello 3D World ==
  +
  +
All Bogre-Banana games start with the <hask>runGame</hask> function.

Revision as of 16:37, 10 February 2013

Contents

1 Bogre-Banana

1.1 What is Bogre-Banana

Bogre-Banana is a 3D game engine for Haskell. It uses Haskell bindings to the OGRE 3D engine and OIS input system and a library called Reactive-Banana, to create a "Functional Reactive Programming" game engine. Bogre-Banana is designed to be concise and easy to use.


1.2 FRP Crash Course

Functional Reactive Programming (FRP) is a programming paradigm used widely with Functional languages to create interactive programs.

Programming in FRP consists of creating a network of "Behavior"s and "Event"s (although Events are more like event streams). A Behavior represents something that changes through time. An Event represents discrete time specific events. The key difference between a Behavior and an Event is that a Behavior has a value at all times, while an Event only occurs at specific instances of time.

In the context of a game engine, one might have a stream of events for keyboard input. When the user presses a key, a corresponding event is created. The number of times a key is pressed could be expressed as a Behavior based off of the keyboard event stream. This Behavior could be mapped to an output, e.g. displayed on the screen to the user. In a similar way, time, input, and world state can be expressed as Events and Behaviors then combined in various ways to create complex interactions that govern all aspects of the game.

Reactive-Banana is the FRP library used in Bogre-Banana. You can find more information about it at [[1]]

1.3 Tutorial 1: Hello 3D World

All Bogre-Banana games start with the
runGame
function.