https://wiki.haskell.org/api.php?action=feedcontributions&user=SimonMichael&feedformat=atomHaskellWiki - User contributions [en]2020-02-28T07:59:21ZUser contributionsMediaWiki 1.27.4https://wiki.haskell.org/index.php?title=Time&diff=63144Time2019-11-21T19:31:49Z<p>SimonMichael: link to time on hackage</p>
<hr />
<div>The canonical time library for Haskell is the [http://hackage.haskell.org/package/time time] package by Ashley Yakeley. There are several similar but different concepts associated with time and the time package keeps these different concepts separated by different data types with appropriate transformations between them to help keep your logic sound. However, if you are trying to use the wrong data type for the wrong task, you may find yourself frustrated with the time library.<br />
<br />
To help avoid frustration, this guide will describe the various data types available in the time library and what temporal concepts they represent. This will help make sure you are using the right data type for the right task. The first few data types in this guide are not widely used in practice, but it is important to understand their associated concepts before moving onto the more complex, widely used, data types. <br />
<br />
= A time cheatsheet =<br />
<br />
[[File:Time-diagram.png]]<br />
<br />
Updates? Ask EvanR on #haskell.<br />
<br />
= Data Types for Measuring Time =<br />
<br />
== AbsoluteTime ==<br />
<br />
<tt>AbsoluteTime</tt> is a data type is type for denoting when an event occurs. AbsoluteTime is a uniform time scale that simply counts the number of seconds since the TAI epoch. There are no leap seconds or timezones. You can compare two <tt>AbsoluteTime</tt>s directly to determine which one came first. You can reference time as far into the future or past as you like to within a resolution of 10<sup>-12</sup> seconds.<br />
<br />
Although <tt>AbsoluteTime</tt> is appropriate for many tasks, it is rarely used in applications and you will likely never use this data type. Unless you are a particularly pioneering person, you will probably want to use <tt>UTCTime</tt> which is more widely used in practice.<br />
<br />
== DiffTime ==<br />
<br />
<tt>DiffTime</tt> is used to represent an absolute duration of time measured in seconds. Subtracting two <tt>AbsoluteTime</tt>s with <tt>diffAbsoluteTime</tt> will produce a <tt>DiffTime</tt> and you can add a <tt>DiffTime</tt> to an <tt>AbsoluteTime</tt> to produce an offset <tt>AbsoluteTime</tt>.<br />
<br />
<tt>DiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>DiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>DiffTime</tt> is appropriate in situations where precision time differences are required; however <tt>NominalDiffTime</tt> is more often used in practice.<br />
<br />
== UniversalTime ==<br />
<br />
The problem with <tt>AbsoluteTime</tt> is that Earth's rotation rate is not constant. Over the long term, solar noon would drift over time. <tt>UniversalTime</tt> measures time by counting the number of "solar" rotations, including fractions of a rotation, of the earth since the MJD (Modifed Julian Date) epoch.<br />
<br />
The variations in the Earth's rotation means that a difference in <tt>UniversalTime</tt> does not correspond to any particular amount of time. Your computer's hardware cannot track <tt>UniversalTime</tt> since it can only measure absolute durations. Converting between <tt>UniversalTime</tt> and <tt>AbsoluteTime</tt> would require a database build upon astronomical observations. No such conversion utilities are provided.<br />
<br />
<tt>UniversalTime</tt> is almost never used in practice.<br />
<br />
== UTCTime ==<br />
<br />
<tt>UTCTime</tt> measures "Coordinated Universal Time". One second of <tt>UTCTime</tt> is a constant amount of time equal to one second of <tt>AbsoluteTime</tt>. However, in order to keep "coordinated" with Universal Time, the number of seconds per day varies. Most days have 86400 seconds; however, on occasion a day will have a "leap second", meaning the day will consist of 86399 or 86401 seconds. <tt>UTCTime</tt> counts the number of days (each day consisting of between 86399-86401 seconds) since the MJD epoch plus an absolute time difference up to the number of seconds that occur in that day.<br />
<br />
It is unpredictable which days in the future will have a leap second. A leap second table is needed to convert between <tt>AbsoluteTime</tt> and <tt>UTCTime</tt>. This conversion can only be done reliably within recent history.<br />
<br />
<tt>UTCTime</tt> is the most popular way of referencing events in absolute time. Events occurring hundreds of years ago can be referenced with moderate precision because we may know approximately when during a particular day they occurred, even though we do not know the <tt>AbsoluteTime</tt> that they occurred (because we do not know the detailed historical changes in the rotation rate of the Earth). Events occurring in the recent past can be converted to <tt>AbsoluteTime</tt> with a leap second table. Future events are usually set relative to the day in which they are to occur, so the fact that the absolute time that they will occur at (that is exact the number seconds into the future that they will occur) is unknown is often not a problem.<br />
<br />
The major disadvantage with <tt>UTCTime</tt> is that one cannot compute the absolute difference between two <tt>UTCTime</tt>s without first converting them to <tt>AbsoluteTime</tt>, and that requires an accurate leap second tables. To circumvent this issue, one uses <tt>NominalDiffTime</tt>.<br />
<br />
== NominalDiffTime ==<br />
<br />
The <tt>diffUTCTime</tt> function computes a <tt>NominalDiffTime</tt> between two <tt>UTCTimes</tt> which is the number of seconds that would have occurred between two <tt>UTCTime</tt>s if no leap seconds had occurred between the two events. Therefore the <tt>diffUTCTime</tt> is not suitable for measuring the absolute time between two events to a high degree of precession. However a <tt>NominalDiffTime</tt> is often suitable for advancing an event by a week, a day, or an hour, since one would normally want said event to occur at the same time of day, or same minute of the hour, regardless of whether or not a leap second happens to be inserted in that duration.<br />
<br />
<tt>NominalDiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>NominalDiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>NominialDiffTime</tt> is regularly used. In fact, <tt>POSIXTime</tt> is the <tt>NominalDiffTime</tt> since the UNIX epoch of Jan 1st, 1970, UTC.<br />
<br />
= Data Types for Denoting Time =<br />
<br />
So far our data have denoted occurrences of events by counting the number of days, or the number of seconds since some fixed reference epoch. However we usually tell time by using years, months, day of month, hours, minutes and seconds. The remain data types will assist with this more usual approach to telling time.<br />
<br />
== Day ==<br />
<br />
The <tt>Day</tt> data type is an abstract way of referring to a calender date. Due to time zone issues, the <tt>Day</tt> type does not necessarily refer to any specific 1-day long absolute time period.<br />
<br />
The standard calender used to reference a date is the Gregorian calendar. The <tt>toGregorian</tt> and <tt>fromGregorian</tt> functions will construct and deconstruct a <tt>Day</tt> from the usual year-month-day format. There are other calendars, such as the Julian calendar, which are only used in unusual situations.<br />
<br />
== TimeOfDay ==<br />
<br />
<tt>TimeOfDay</tt> represents "wall-clock" time. It consists of an hour of the day, a minute of the hour, and a second of the minute, including fractions of a second up to a precession of 10-12. The seconds could go up to 61 in order to accommodate leap seconds.<br />
<br />
== LocalTime ==<br />
<br />
A <tt>Day</tt> with a <tt>TimeOfDay</tt> forms a <tt>LocalTime</tt>. This is contains the data that we normally denote time with: a year, month, day, hour, minute, and second. However, it does not denote an absolute time because it contains no time zone information.<br />
<br />
<tt>LocalTime</tt> is used represent date and time for printing and parsing; however it should be avoided for computation. The biggest problem with <tt>LocalTime</tt> is that, due to daylight savings time, regularly the same time of day is repeated twice a day. This means you cannot even use <tt>LocalTime</tt>s to reliably determine the relative order of events.<br />
<br />
== TimeZone ==<br />
<br />
Somewhat confusingly named, a <tt>TimeZone</tt> represents an offset from UTC measured in minutes. It also contains ancillary data such as the timezone name and whether or not it is intended to be used for summer time only. Eastern Standard Time (EST) or Pacific Daylight Time (PDT) are examples of timezone that could be represented by a <tt>TimeZone</tt> value. <br />
<br />
It does not represent the time zone of a region, such as Eastern Time, because regions often vary their offsets from UTC depending on the time of year.<br />
<br />
The <tt>utc</tt> value is the value of the <tt>TimeZone</tt> with no offset from UTC.<br />
<br />
== ZonedTime == <br />
<br />
A <tt>ZonedTime</tt> is a <tt>LocalTime</tt> together with a <tt>TimeZone</tt>. This does refer to a specific event in absolute time and can be converted to a <tt>UTCTime</tt> with the <tt>zoneTimeToUTC</tt> function, and could be further converted into a <tt>AbsoluteTime</tt> if one has a leap second table.<br />
<br />
There are, of course, many different <tt>ZonedTime</tt> values corresponding to the same absolute, <tt>UTCTime</tt>. Given a <tt>TimeZone</tt> one can create a <tt>ZonedTime</tt> with that <tt>TimeZone</tt> by using the <tt>utcToZonedTime</tt> function.<br />
<br />
<tt>ZonedTime</tt> is a common stop when converting between common year-month-day-hour-minute-second human time format and absolute <tt>UTCTime</tt> time.<br />
<br />
== TimeZoneSeries ==<br />
<br />
Almost nothing in the time library deals with regional time zones such as "Eastern Time" or "Pacific time" For that we need to reach out to the timezone-series and timezone-olson packages. The difficulty with regional time zones is, like leap seconds, that they are unpredictable and subject to be changed. <br />
<br />
A <tt>TimeZoneSeries</tt> is a series of <tt>TimeZone</tt>s, that is offsets from UTC, along with the absolute times where those <tt>TimeZone</tt>s are in effect. This is a suitable structure for defining a regional time zone. The functions in the timezone-olson package will allow you to create a <tt>TimeZoneSeries</tt> from an Olson time zone database file.<br />
<br />
== getTimeZone ==<br />
<br />
There there is one set of functions in the time package that does deal with regional time zones. The <tt>getTimeZone</tt> function will compute the timezone for a given, <tt>UTCTime</tt>, but only the local region as set by the <tt>TZ</tt> environment variable. The <tt>getCurrentTimeZone</tt>, <tt>getZonedTime</tt>, and <tt>utcToLocalZonedTime</tt> are functions derived from <tt>getTimeZone</tt>.<br />
<br />
There is no functionality in the time package that will convert from a local regional time to <tt>UTCTime</tt>, owing to the fact that the same local regional time may refer to multiple different <tt>UTCTime</tt> due to daylight savings times. <tt>localTimeToUTC'</tt> from the <tt>timezone-series</tt> packages will do this conversion given a <tt>TimeZoneSeries</tt>.</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Time&diff=63143Time2019-11-21T19:29:45Z<p>SimonMichael: move the intro text & cheatsheet out from the subheading, note cheatsheet author</p>
<hr />
<div>The canonical time library for Haskell is the time package by Ashley Yakeley. There are several similar but different concepts associated with time and the time package keeps these different concepts separated by different data types with appropriate transformations between them to help keep your logic sound. However, if you are trying to use the wrong data type for the wrong task, you may find yourself frustrated with the time library.<br />
<br />
To help avoid frustration, this guide will describe the various data types available in the time library and what temporal concepts they represent. This will help make sure you are using the right data type for the right task. The first few data types in this guide are not widely used in practice, but it is important to understand their associated concepts before moving onto the more complex, widely used, data types. <br />
<br />
= A time cheatsheet =<br />
<br />
[[File:Time-diagram.png]]<br />
<br />
Updates? Ask EvanR on #haskell.<br />
<br />
= Data Types for Measuring Time =<br />
<br />
== AbsoluteTime ==<br />
<br />
<tt>AbsoluteTime</tt> is a data type is type for denoting when an event occurs. AbsoluteTime is a uniform time scale that simply counts the number of seconds since the TAI epoch. There are no leap seconds or timezones. You can compare two <tt>AbsoluteTime</tt>s directly to determine which one came first. You can reference time as far into the future or past as you like to within a resolution of 10<sup>-12</sup> seconds.<br />
<br />
Although <tt>AbsoluteTime</tt> is appropriate for many tasks, it is rarely used in applications and you will likely never use this data type. Unless you are a particularly pioneering person, you will probably want to use <tt>UTCTime</tt> which is more widely used in practice.<br />
<br />
== DiffTime ==<br />
<br />
<tt>DiffTime</tt> is used to represent an absolute duration of time measured in seconds. Subtracting two <tt>AbsoluteTime</tt>s with <tt>diffAbsoluteTime</tt> will produce a <tt>DiffTime</tt> and you can add a <tt>DiffTime</tt> to an <tt>AbsoluteTime</tt> to produce an offset <tt>AbsoluteTime</tt>.<br />
<br />
<tt>DiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>DiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>DiffTime</tt> is appropriate in situations where precision time differences are required; however <tt>NominalDiffTime</tt> is more often used in practice.<br />
<br />
== UniversalTime ==<br />
<br />
The problem with <tt>AbsoluteTime</tt> is that Earth's rotation rate is not constant. Over the long term, solar noon would drift over time. <tt>UniversalTime</tt> measures time by counting the number of "solar" rotations, including fractions of a rotation, of the earth since the MJD (Modifed Julian Date) epoch.<br />
<br />
The variations in the Earth's rotation means that a difference in <tt>UniversalTime</tt> does not correspond to any particular amount of time. Your computer's hardware cannot track <tt>UniversalTime</tt> since it can only measure absolute durations. Converting between <tt>UniversalTime</tt> and <tt>AbsoluteTime</tt> would require a database build upon astronomical observations. No such conversion utilities are provided.<br />
<br />
<tt>UniversalTime</tt> is almost never used in practice.<br />
<br />
== UTCTime ==<br />
<br />
<tt>UTCTime</tt> measures "Coordinated Universal Time". One second of <tt>UTCTime</tt> is a constant amount of time equal to one second of <tt>AbsoluteTime</tt>. However, in order to keep "coordinated" with Universal Time, the number of seconds per day varies. Most days have 86400 seconds; however, on occasion a day will have a "leap second", meaning the day will consist of 86399 or 86401 seconds. <tt>UTCTime</tt> counts the number of days (each day consisting of between 86399-86401 seconds) since the MJD epoch plus an absolute time difference up to the number of seconds that occur in that day.<br />
<br />
It is unpredictable which days in the future will have a leap second. A leap second table is needed to convert between <tt>AbsoluteTime</tt> and <tt>UTCTime</tt>. This conversion can only be done reliably within recent history.<br />
<br />
<tt>UTCTime</tt> is the most popular way of referencing events in absolute time. Events occurring hundreds of years ago can be referenced with moderate precision because we may know approximately when during a particular day they occurred, even though we do not know the <tt>AbsoluteTime</tt> that they occurred (because we do not know the detailed historical changes in the rotation rate of the Earth). Events occurring in the recent past can be converted to <tt>AbsoluteTime</tt> with a leap second table. Future events are usually set relative to the day in which they are to occur, so the fact that the absolute time that they will occur at (that is exact the number seconds into the future that they will occur) is unknown is often not a problem.<br />
<br />
The major disadvantage with <tt>UTCTime</tt> is that one cannot compute the absolute difference between two <tt>UTCTime</tt>s without first converting them to <tt>AbsoluteTime</tt>, and that requires an accurate leap second tables. To circumvent this issue, one uses <tt>NominalDiffTime</tt>.<br />
<br />
== NominalDiffTime ==<br />
<br />
The <tt>diffUTCTime</tt> function computes a <tt>NominalDiffTime</tt> between two <tt>UTCTimes</tt> which is the number of seconds that would have occurred between two <tt>UTCTime</tt>s if no leap seconds had occurred between the two events. Therefore the <tt>diffUTCTime</tt> is not suitable for measuring the absolute time between two events to a high degree of precession. However a <tt>NominalDiffTime</tt> is often suitable for advancing an event by a week, a day, or an hour, since one would normally want said event to occur at the same time of day, or same minute of the hour, regardless of whether or not a leap second happens to be inserted in that duration.<br />
<br />
<tt>NominalDiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>NominalDiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>NominialDiffTime</tt> is regularly used. In fact, <tt>POSIXTime</tt> is the <tt>NominalDiffTime</tt> since the UNIX epoch of Jan 1st, 1970, UTC.<br />
<br />
= Data Types for Denoting Time =<br />
<br />
So far our data have denoted occurrences of events by counting the number of days, or the number of seconds since some fixed reference epoch. However we usually tell time by using years, months, day of month, hours, minutes and seconds. The remain data types will assist with this more usual approach to telling time.<br />
<br />
== Day ==<br />
<br />
The <tt>Day</tt> data type is an abstract way of referring to a calender date. Due to time zone issues, the <tt>Day</tt> type does not necessarily refer to any specific 1-day long absolute time period.<br />
<br />
The standard calender used to reference a date is the Gregorian calendar. The <tt>toGregorian</tt> and <tt>fromGregorian</tt> functions will construct and deconstruct a <tt>Day</tt> from the usual year-month-day format. There are other calendars, such as the Julian calendar, which are only used in unusual situations.<br />
<br />
== TimeOfDay ==<br />
<br />
<tt>TimeOfDay</tt> represents "wall-clock" time. It consists of an hour of the day, a minute of the hour, and a second of the minute, including fractions of a second up to a precession of 10-12. The seconds could go up to 61 in order to accommodate leap seconds.<br />
<br />
== LocalTime ==<br />
<br />
A <tt>Day</tt> with a <tt>TimeOfDay</tt> forms a <tt>LocalTime</tt>. This is contains the data that we normally denote time with: a year, month, day, hour, minute, and second. However, it does not denote an absolute time because it contains no time zone information.<br />
<br />
<tt>LocalTime</tt> is used represent date and time for printing and parsing; however it should be avoided for computation. The biggest problem with <tt>LocalTime</tt> is that, due to daylight savings time, regularly the same time of day is repeated twice a day. This means you cannot even use <tt>LocalTime</tt>s to reliably determine the relative order of events.<br />
<br />
== TimeZone ==<br />
<br />
Somewhat confusingly named, a <tt>TimeZone</tt> represents an offset from UTC measured in minutes. It also contains ancillary data such as the timezone name and whether or not it is intended to be used for summer time only. Eastern Standard Time (EST) or Pacific Daylight Time (PDT) are examples of timezone that could be represented by a <tt>TimeZone</tt> value. <br />
<br />
It does not represent the time zone of a region, such as Eastern Time, because regions often vary their offsets from UTC depending on the time of year.<br />
<br />
The <tt>utc</tt> value is the value of the <tt>TimeZone</tt> with no offset from UTC.<br />
<br />
== ZonedTime == <br />
<br />
A <tt>ZonedTime</tt> is a <tt>LocalTime</tt> together with a <tt>TimeZone</tt>. This does refer to a specific event in absolute time and can be converted to a <tt>UTCTime</tt> with the <tt>zoneTimeToUTC</tt> function, and could be further converted into a <tt>AbsoluteTime</tt> if one has a leap second table.<br />
<br />
There are, of course, many different <tt>ZonedTime</tt> values corresponding to the same absolute, <tt>UTCTime</tt>. Given a <tt>TimeZone</tt> one can create a <tt>ZonedTime</tt> with that <tt>TimeZone</tt> by using the <tt>utcToZonedTime</tt> function.<br />
<br />
<tt>ZonedTime</tt> is a common stop when converting between common year-month-day-hour-minute-second human time format and absolute <tt>UTCTime</tt> time.<br />
<br />
== TimeZoneSeries ==<br />
<br />
Almost nothing in the time library deals with regional time zones such as "Eastern Time" or "Pacific time" For that we need to reach out to the timezone-series and timezone-olson packages. The difficulty with regional time zones is, like leap seconds, that they are unpredictable and subject to be changed. <br />
<br />
A <tt>TimeZoneSeries</tt> is a series of <tt>TimeZone</tt>s, that is offsets from UTC, along with the absolute times where those <tt>TimeZone</tt>s are in effect. This is a suitable structure for defining a regional time zone. The functions in the timezone-olson package will allow you to create a <tt>TimeZoneSeries</tt> from an Olson time zone database file.<br />
<br />
== getTimeZone ==<br />
<br />
There there is one set of functions in the time package that does deal with regional time zones. The <tt>getTimeZone</tt> function will compute the timezone for a given, <tt>UTCTime</tt>, but only the local region as set by the <tt>TZ</tt> environment variable. The <tt>getCurrentTimeZone</tt>, <tt>getZonedTime</tt>, and <tt>utcToLocalZonedTime</tt> are functions derived from <tt>getTimeZone</tt>.<br />
<br />
There is no functionality in the time package that will convert from a local regional time to <tt>UTCTime</tt>, owing to the fact that the same local regional time may refer to multiple different <tt>UTCTime</tt> due to daylight savings times. <tt>localTimeToUTC'</tt> from the <tt>timezone-series</tt> packages will do this conversion given a <tt>TimeZoneSeries</tt>.</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Time&diff=63141Time2019-11-21T19:03:02Z<p>SimonMichael: move image after intro text</p>
<hr />
<div>= Data Types for Measuring Time =<br />
<br />
The canonical time library for Haskell is the time package by Ashley Yakeley. There are several similar but different concepts associated with time and the time package keeps these different concepts separated by different data types with appropriate transformations between them to help keep your logic sound. However, if you are trying to use the wrong data type for the wrong task, you may find yourself frustrated with the time library.<br />
<br />
To help avoid frustration, this guide will describe the various data types available in the time library and what temporal concepts they represent. This will help make sure you are using the right data type for the right task. The first few data types in this guide are not widely used in practice, but it is important to understand their associated concepts before moving onto the more complex, widely used, data types. <br />
<br />
Here is a cheatsheet:<br />
<br />
[[File:Time-diagram.png]]<br />
<br />
== AbsoluteTime ==<br />
<br />
<tt>AbsoluteTime</tt> is a data type is type for denoting when an event occurs. AbsoluteTime is a uniform time scale that simply counts the number of seconds since the TAI epoch. There are no leap seconds or timezones. You can compare two <tt>AbsoluteTime</tt>s directly to determine which one came first. You can reference time as far into the future or past as you like to within a resolution of 10<sup>-12</sup> seconds.<br />
<br />
Although <tt>AbsoluteTime</tt> is appropriate for many tasks, it is rarely used in applications and you will likely never use this data type. Unless you are a particularly pioneering person, you will probably want to use <tt>UTCTime</tt> which is more widely used in practice.<br />
<br />
== DiffTime ==<br />
<br />
<tt>DiffTime</tt> is used to represent an absolute duration of time measured in seconds. Subtracting two <tt>AbsoluteTime</tt>s with <tt>diffAbsoluteTime</tt> will produce a <tt>DiffTime</tt> and you can add a <tt>DiffTime</tt> to an <tt>AbsoluteTime</tt> to produce an offset <tt>AbsoluteTime</tt>.<br />
<br />
<tt>DiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>DiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>DiffTime</tt> is appropriate in situations where precision time differences are required; however <tt>NominalDiffTime</tt> is more often used in practice.<br />
<br />
== UniversalTime ==<br />
<br />
The problem with <tt>AbsoluteTime</tt> is that Earth's rotation rate is not constant. Over the long term, solar noon would drift over time. <tt>UniversalTime</tt> measures time by counting the number of "solar" rotations, including fractions of a rotation, of the earth since the MJD (Modifed Julian Date) epoch.<br />
<br />
The variations in the Earth's rotation means that a difference in <tt>UniversalTime</tt> does not correspond to any particular amount of time. Your computer's hardware cannot track <tt>UniversalTime</tt> since it can only measure absolute durations. Converting between <tt>UniversalTime</tt> and <tt>AbsoluteTime</tt> would require a database build upon astronomical observations. No such conversion utilities are provided.<br />
<br />
<tt>UniversalTime</tt> is almost never used in practice.<br />
<br />
== UTCTime ==<br />
<br />
<tt>UTCTime</tt> measures "Coordinated Universal Time". One second of <tt>UTCTime</tt> is a constant amount of time equal to one second of <tt>AbsoluteTime</tt>. However, in order to keep "coordinated" with Universal Time, the number of seconds per day varies. Most days have 86400 seconds; however, on occasion a day will have a "leap second", meaning the day will consist of 86399 or 86401 seconds. <tt>UTCTime</tt> counts the number of days (each day consisting of between 86399-86401 seconds) since the MJD epoch plus an absolute time difference up to the number of seconds that occur in that day.<br />
<br />
It is unpredictable which days in the future will have a leap second. A leap second table is needed to convert between <tt>AbsoluteTime</tt> and <tt>UTCTime</tt>. This conversion can only be done reliably within recent history.<br />
<br />
<tt>UTCTime</tt> is the most popular way of referencing events in absolute time. Events occurring hundreds of years ago can be referenced with moderate precision because we may know approximately when during a particular day they occurred, even though we do not know the <tt>AbsoluteTime</tt> that they occurred (because we do not know the detailed historical changes in the rotation rate of the Earth). Events occurring in the recent past can be converted to <tt>AbsoluteTime</tt> with a leap second table. Future events are usually set relative to the day in which they are to occur, so the fact that the absolute time that they will occur at (that is exact the number seconds into the future that they will occur) is unknown is often not a problem.<br />
<br />
The major disadvantage with <tt>UTCTime</tt> is that one cannot compute the absolute difference between two <tt>UTCTime</tt>s without first converting them to <tt>AbsoluteTime</tt>, and that requires an accurate leap second tables. To circumvent this issue, one uses <tt>NominalDiffTime</tt>.<br />
<br />
== NominalDiffTime ==<br />
<br />
The <tt>diffUTCTime</tt> function computes a <tt>NominalDiffTime</tt> between two <tt>UTCTimes</tt> which is the number of seconds that would have occurred between two <tt>UTCTime</tt>s if no leap seconds had occurred between the two events. Therefore the <tt>diffUTCTime</tt> is not suitable for measuring the absolute time between two events to a high degree of precession. However a <tt>NominalDiffTime</tt> is often suitable for advancing an event by a week, a day, or an hour, since one would normally want said event to occur at the same time of day, or same minute of the hour, regardless of whether or not a leap second happens to be inserted in that duration.<br />
<br />
<tt>NominalDiffTime</tt> is a member of the <tt>Num</tt> and <tt>Fractional</tt>, so can be generated by <tt>fromIntegral</tt> and <tt>realToFrac</tt>. <tt>NominalDiffTime</tt> is also a member of <tt>RealFrac</tt> and <tt>Real</tt> so <tt>round</tt> and <tt>realToFrac</tt> can operate on it.<br />
<br />
<tt>NominialDiffTime</tt> is regularly used. In fact, <tt>POSIXTime</tt> is the <tt>NominalDiffTime</tt> since the UNIX epoch of Jan 1st, 1970, UTC.<br />
<br />
= Data Types for Denoting Time =<br />
<br />
So far our data have denoted occurrences of events by counting the number of days, or the number of seconds since some fixed reference epoch. However we usually tell time by using years, months, day of month, hours, minutes and seconds. The remain data types will assist with this more usual approach to telling time.<br />
<br />
== Day ==<br />
<br />
The <tt>Day</tt> data type is an abstract way of referring to a calender date. Due to time zone issues, the <tt>Day</tt> type does not necessarily refer to any specific 1-day long absolute time period.<br />
<br />
The standard calender used to reference a date is the Gregorian calendar. The <tt>toGregorian</tt> and <tt>fromGregorian</tt> functions will construct and deconstruct a <tt>Day</tt> from the usual year-month-day format. There are other calendars, such as the Julian calendar, which are only used in unusual situations.<br />
<br />
== TimeOfDay ==<br />
<br />
<tt>TimeOfDay</tt> represents "wall-clock" time. It consists of an hour of the day, a minute of the hour, and a second of the minute, including fractions of a second up to a precession of 10-12. The seconds could go up to 61 in order to accommodate leap seconds.<br />
<br />
== LocalTime ==<br />
<br />
A <tt>Day</tt> with a <tt>TimeOfDay</tt> forms a <tt>LocalTime</tt>. This is contains the data that we normally denote time with: a year, month, day, hour, minute, and second. However, it does not denote an absolute time because it contains no time zone information.<br />
<br />
<tt>LocalTime</tt> is used represent date and time for printing and parsing; however it should be avoided for computation. The biggest problem with <tt>LocalTime</tt> is that, due to daylight savings time, regularly the same time of day is repeated twice a day. This means you cannot even use <tt>LocalTime</tt>s to reliably determine the relative order of events.<br />
<br />
== TimeZone ==<br />
<br />
Somewhat confusingly named, a <tt>TimeZone</tt> represents an offset from UTC measured in minutes. It also contains ancillary data such as the timezone name and whether or not it is intended to be used for summer time only. Eastern Standard Time (EST) or Pacific Daylight Time (PDT) are examples of timezone that could be represented by a <tt>TimeZone</tt> value. <br />
<br />
It does not represent the time zone of a region, such as Eastern Time, because regions often vary their offsets from UTC depending on the time of year.<br />
<br />
The <tt>utc</tt> value is the value of the <tt>TimeZone</tt> with no offset from UTC.<br />
<br />
== ZonedTime == <br />
<br />
A <tt>ZonedTime</tt> is a <tt>LocalTime</tt> together with a <tt>TimeZone</tt>. This does refer to a specific event in absolute time and can be converted to a <tt>UTCTime</tt> with the <tt>zoneTimeToUTC</tt> function, and could be further converted into a <tt>AbsoluteTime</tt> if one has a leap second table.<br />
<br />
There are, of course, many different <tt>ZonedTime</tt> values corresponding to the same absolute, <tt>UTCTime</tt>. Given a <tt>TimeZone</tt> one can create a <tt>ZonedTime</tt> with that <tt>TimeZone</tt> by using the <tt>utcToZonedTime</tt> function.<br />
<br />
<tt>ZonedTime</tt> is a common stop when converting between common year-month-day-hour-minute-second human time format and absolute <tt>UTCTime</tt> time.<br />
<br />
== TimeZoneSeries ==<br />
<br />
Almost nothing in the time library deals with regional time zones such as "Eastern Time" or "Pacific time" For that we need to reach out to the timezone-series and timezone-olson packages. The difficulty with regional time zones is, like leap seconds, that they are unpredictable and subject to be changed. <br />
<br />
A <tt>TimeZoneSeries</tt> is a series of <tt>TimeZone</tt>s, that is offsets from UTC, along with the absolute times where those <tt>TimeZone</tt>s are in effect. This is a suitable structure for defining a regional time zone. The functions in the timezone-olson package will allow you to create a <tt>TimeZoneSeries</tt> from an Olson time zone database file.<br />
<br />
== getTimeZone ==<br />
<br />
There there is one set of functions in the time package that does deal with regional time zones. The <tt>getTimeZone</tt> function will compute the timezone for a given, <tt>UTCTime</tt>, but only the local region as set by the <tt>TZ</tt> environment variable. The <tt>getCurrentTimeZone</tt>, <tt>getZonedTime</tt>, and <tt>utcToLocalZonedTime</tt> are functions derived from <tt>getTimeZone</tt>.<br />
<br />
There is no functionality in the time package that will convert from a local regional time to <tt>UTCTime</tt>, owing to the fact that the same local regional time may refer to multiple different <tt>UTCTime</tt> due to daylight savings times. <tt>localTimeToUTC'</tt> from the <tt>timezone-series</tt> packages will do this conversion given a <tt>TimeZoneSeries</tt>.</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Frag&diff=59886Frag2015-06-30T23:11:23Z<p>SimonMichael: </p>
<hr />
<div>'''Frag'''<br />
<br />
[[Image:Frag1.png]]<br />
<br />
Frag is a 3D first person shooting game written in Haskell, by Mun Hon<br />
Cheong. It is licensed under the GPL. The design and implementation of<br />
Frag is described in Mun's 2005 undergraduate thesis, <br />
[http://www.cse.unsw.edu.au/~pls/thesis/munc-thesis.pdf Functional Programming and 3D Games]. An AI system for Frag is described in Jayatheeban Soundararajan's 2007 undergrad thesis, also titled [http://www.cse.unsw.edu.au/~pls/thesis/theeban-thesis.pdf Functional Programming and 3D Games].<br />
<br />
[http://uk.youtube.com/watch?v=0jYdu2u8gAU YouTube Video]<br />
<br />
== Features ==<br />
<br />
* Yampa, a domain-specific embedded language for the programming of hybrid systems that using the concepts of Functional Reactive Programming (FRP) was used to program the game entities.<br />
* The Quake 3 BSP level format, Q3Map2, and the MD3 format for models and animations are used in this game.<br />
* Sven Panne's OpenGL binding, HOpenGL is used to render graphics.<br />
<br />
== Requirements ==<br />
<br />
* GHC 6.8 or greater, providing HOpenGL-2.0.<br />
* OpenGL drivers that support the vertex array and multitexture OpenGL extensions<br />
* Frag has portability problems. It is known to work on i386 and AMD64, and known not to work on big-endian systems.<br />
<br />
See the blog article [http://monadickid.blogspot.com/2008/11/haskell-eye-for-windows-guy.html A Haskell eye for the windows guy] for the list of requirements and how to install for Windows users.<br />
<br />
== Download ==<br />
<br />
The code can be downloaded from<br />
[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/frag Hackage]; it is also distributed via a Darcs repository: <br />
<br />
darcs get http://code.haskell.org/frag<br />
<br />
[[Darcs]] is the standard revision control system of the Haskell community.<br />
<br />
== Contributions ==<br />
<br />
Frag needs contributions from the community! Darcs send patches to<br />
[http://www.cse.unsw.edu.au/~dons/ Don Stewart].<br />
<br />
== Screenshots ==<br />
(Note that these screenshots are of the old level, which was replaced for copyright reasons.)<br />
<br />
[[Image:Frag2.png]]<br />
<br />
[[Image:Frag3.png]]<br />
<br />
[[Image:Frag4.png]]<br />
<br />
[[Image:Frag5.png]]<br />
<br />
[[Category:Applications]]<br />
[[Category:Games]]<br />
[[Category:3D]]<br />
<br />
== BibTeX Entry ==<br />
<br />
<pre><br />
@mastersthesis{Frag,<br />
author = {Mun Hon Cheong},<br />
title = {Functional Programming and 3D Games},<br />
year = {2005},<br />
month = {November},<br />
school = {University of New South Wales},<br />
address = {Sydney, Australia},<br />
abstract = {Games are commonly programmed in imperative languages.<br />
Functional languages have been known to have benefits but have<br />
rarely been used to program games. In this thesis we implement<br />
a first person shooting game in Haskell and Yampa. The merits<br />
of this approach are examined.}<br />
}<br />
</pre></div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Frag&diff=59885Frag2015-06-30T23:10:55Z<p>SimonMichael: </p>
<hr />
<div>'''Frag'''<br />
<br />
[[Image:Frag1.png]]<br />
<br />
Frag is a 3D first person shooting game written in Haskell, by Mun Hon<br />
Cheong. It is licensed under the GPL. The design and implementation of<br />
Frag is described in Mun's 2005 undergraduate thesis, <br />
[http://www.cse.unsw.edu.au/~pls/thesis/munc-thesis.pdf Functional Programming and 3D Games]. An AI system for Frag is described in Jayatheeban Soundararajan's 2007 undergrad thesis, [http://www.cse.unsw.edu.au/~pls/thesis/theeban-thesis.pdf Functional Programming and 3D Games].<br />
<br />
[http://uk.youtube.com/watch?v=0jYdu2u8gAU YouTube Video]<br />
<br />
== Features ==<br />
<br />
* Yampa, a domain-specific embedded language for the programming of hybrid systems that using the concepts of Functional Reactive Programming (FRP) was used to program the game entities.<br />
* The Quake 3 BSP level format, Q3Map2, and the MD3 format for models and animations are used in this game.<br />
* Sven Panne's OpenGL binding, HOpenGL is used to render graphics.<br />
<br />
== Requirements ==<br />
<br />
* GHC 6.8 or greater, providing HOpenGL-2.0.<br />
* OpenGL drivers that support the vertex array and multitexture OpenGL extensions<br />
* Frag has portability problems. It is known to work on i386 and AMD64, and known not to work on big-endian systems.<br />
<br />
See the blog article [http://monadickid.blogspot.com/2008/11/haskell-eye-for-windows-guy.html A Haskell eye for the windows guy] for the list of requirements and how to install for Windows users.<br />
<br />
== Download ==<br />
<br />
The code can be downloaded from<br />
[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/frag Hackage]; it is also distributed via a Darcs repository: <br />
<br />
darcs get http://code.haskell.org/frag<br />
<br />
[[Darcs]] is the standard revision control system of the Haskell community.<br />
<br />
== Contributions ==<br />
<br />
Frag needs contributions from the community! Darcs send patches to<br />
[http://www.cse.unsw.edu.au/~dons/ Don Stewart].<br />
<br />
== Screenshots ==<br />
(Note that these screenshots are of the old level, which was replaced for copyright reasons.)<br />
<br />
[[Image:Frag2.png]]<br />
<br />
[[Image:Frag3.png]]<br />
<br />
[[Image:Frag4.png]]<br />
<br />
[[Image:Frag5.png]]<br />
<br />
[[Category:Applications]]<br />
[[Category:Games]]<br />
[[Category:3D]]<br />
<br />
== BibTeX Entry ==<br />
<br />
<pre><br />
@mastersthesis{Frag,<br />
author = {Mun Hon Cheong},<br />
title = {Functional Programming and 3D Games},<br />
year = {2005},<br />
month = {November},<br />
school = {University of New South Wales},<br />
address = {Sydney, Australia},<br />
abstract = {Games are commonly programmed in imperative languages.<br />
Functional languages have been known to have benefits but have<br />
rarely been used to program games. In this thesis we implement<br />
a first person shooting game in Haskell and Yampa. The merits<br />
of this approach are examined.}<br />
}<br />
</pre></div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Frag&diff=59884Frag2015-06-30T23:10:31Z<p>SimonMichael: link to second Frag thesis</p>
<hr />
<div>'''Frag'''<br />
<br />
[[Image:Frag1.png]]<br />
<br />
Frag is a 3D first person shooting game written in Haskell, by Mun Hon<br />
Cheong. It is licensed under the GPL. The design and implementation of<br />
Frag is described in Mun's 2005 undergraduate thesis, <br />
[http://www.cse.unsw.edu.au/~pls/thesis/munc-thesis.pdf Functional Programming and 3D Games]. An AI system for Frag is described in Jayatheeban Soundararajan's 2007 undergrad thesis, [http://www.cse.unsw.edu.au/~pls/thesis/theeban-thesis.pdf Functional Programming and 3D<br />
Games].<br />
<br />
[http://uk.youtube.com/watch?v=0jYdu2u8gAU YouTube Video]<br />
<br />
== Features ==<br />
<br />
* Yampa, a domain-specific embedded language for the programming of hybrid systems that using the concepts of Functional Reactive Programming (FRP) was used to program the game entities.<br />
* The Quake 3 BSP level format, Q3Map2, and the MD3 format for models and animations are used in this game.<br />
* Sven Panne's OpenGL binding, HOpenGL is used to render graphics.<br />
<br />
== Requirements ==<br />
<br />
* GHC 6.8 or greater, providing HOpenGL-2.0.<br />
* OpenGL drivers that support the vertex array and multitexture OpenGL extensions<br />
* Frag has portability problems. It is known to work on i386 and AMD64, and known not to work on big-endian systems.<br />
<br />
See the blog article [http://monadickid.blogspot.com/2008/11/haskell-eye-for-windows-guy.html A Haskell eye for the windows guy] for the list of requirements and how to install for Windows users.<br />
<br />
== Download ==<br />
<br />
The code can be downloaded from<br />
[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/frag Hackage]; it is also distributed via a Darcs repository: <br />
<br />
darcs get http://code.haskell.org/frag<br />
<br />
[[Darcs]] is the standard revision control system of the Haskell community.<br />
<br />
== Contributions ==<br />
<br />
Frag needs contributions from the community! Darcs send patches to<br />
[http://www.cse.unsw.edu.au/~dons/ Don Stewart].<br />
<br />
== Screenshots ==<br />
(Note that these screenshots are of the old level, which was replaced for copyright reasons.)<br />
<br />
[[Image:Frag2.png]]<br />
<br />
[[Image:Frag3.png]]<br />
<br />
[[Image:Frag4.png]]<br />
<br />
[[Image:Frag5.png]]<br />
<br />
[[Category:Applications]]<br />
[[Category:Games]]<br />
[[Category:3D]]<br />
<br />
== BibTeX Entry ==<br />
<br />
<pre><br />
@mastersthesis{Frag,<br />
author = {Mun Hon Cheong},<br />
title = {Functional Programming and 3D Games},<br />
year = {2005},<br />
month = {November},<br />
school = {University of New South Wales},<br />
address = {Sydney, Australia},<br />
abstract = {Games are commonly programmed in imperative languages.<br />
Functional languages have been known to have benefits but have<br />
rarely been used to program games. In this thesis we implement<br />
a first person shooting game in Haskell and Yampa. The merits<br />
of this approach are examined.}<br />
}<br />
</pre></div>SimonMichaelhttps://wiki.haskell.org/index.php?title=User:SimonMichael&diff=57317User:SimonMichael2013-12-17T21:15:46Z<p>SimonMichael: </p>
<hr />
<div><br />
http://joyful.com</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=User:SimonMichael&diff=57315User:SimonMichael2013-12-17T21:07:04Z<p>SimonMichael: </p>
<hr />
<div><br />
http://joyful.com<br />
<br />
[[AllPages]] - list all pages in this wiki, since I couldn't find another way</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=User:SimonMichael&diff=57314User:SimonMichael2013-12-17T21:06:53Z<p>SimonMichael: </p>
<hr />
<div><br />
<br />
<br />
[[AllPages]] - list all pages in this wiki, since I couldn't find another way</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=User:SimonMichael&diff=57313User:SimonMichael2013-12-17T21:06:38Z<p>SimonMichael: Created page with " AllPages - list all pages in this wiki, since I couldn't find another way"</p>
<hr />
<div><br />
<br />
<br />
AllPages - list all pages in this wiki, since I couldn't find another way</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=41566Applications and libraries/Games2011-08-12T16:36:51Z<p>SimonMichael: /* Games */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/boomslang boomslang]<br />
: A clone of the popular Flash game Boomshine.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]<br />
:A video game, based on [[Yampa]]<br />
<br />
;[http://hackage.haskell.org/package/stunts stunts]<br />
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]<br />
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
;[https://github.com/adorablepuppy/CurryDog CurryDog]<br />
:Aims to be a 2d and 3d modular game engine.<br />
<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=41565Applications and libraries/Games2011-08-12T16:36:03Z<p>SimonMichael: </p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
(See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.)<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/boomslang boomslang]<br />
: A clone of the popular Flash game Boomshine.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]<br />
:A video game, based on [[Yampa]]<br />
<br />
;[http://hackage.haskell.org/package/stunts stunts]<br />
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]<br />
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
;[https://github.com/adorablepuppy/CurryDog CurryDog]<br />
:Aims to be a 2d and 3d modular game engine.<br />
<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=41564Applications and libraries/Games2011-08-12T16:35:35Z<p>SimonMichael: correct double edit</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/boomslang boomslang]<br />
: A clone of the popular Flash game Boomshine.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]<br />
:A video game, based on [[Yampa]]<br />
<br />
;[http://hackage.haskell.org/package/stunts stunts]<br />
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
<br />
<br />
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]<br />
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
;[https://github.com/adorablepuppy/CurryDog CurryDog]<br />
:Aims to be a 2d and 3d modular game engine.<br />
<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=41563Applications and libraries/Games2011-08-12T16:35:11Z<p>SimonMichael: </p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/boomslang boomslang]<br />
: A clone of the popular Flash game Boomshine.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]<br />
:A video game, based on [[Yampa]]<br />
<br />
;[http://hackage.haskell.org/package/stunts stunts]<br />
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
<br />
<br />
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]<br />
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
;[https://github.com/adorablepuppy/CurryDog CurryDog]<br />
:Aims to be a 2d and 3d modular game engine.<br />
<br />
<br />
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=41562Applications and libraries/Games2011-08-12T16:34:39Z<p>SimonMichael: /* Games */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/boomslang boomslang]<br />
: A clone of the popular Flash game Boomshine.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://hackage.haskell.org/package/SpaceInvaders Space Invaders]<br />
:A video game, based on [[Yampa]]<br />
<br />
;[http://hackage.haskell.org/package/stunts stunts]<br />
:A revival of the classic racing game Stunts to serve as a non-toy-sized example for LambdaCube.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
<br />
<br />
See also the [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] category on Hackage.<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/package/GLFW-b GLFW-b]<br />
:Bindings to GLFW, a free, open source, multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
;[https://github.com/adorablepuppy/CurryDog CurryDog]<br />
:Aims to be a 2d and 3d modular game engine.<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=40486Game Development2011-06-10T16:28:46Z<p>SimonMichael: </p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game%20engine Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
* [http://www.gamasutra.com/view/feature/2985/postmortem_naughty_dogs_jak_and_.php Postmortem: Naughty Dog's Jak and Daxter: the Precursor Legacy]; an article about a game developed with a [http://en.wikipedia.org/wiki/Domain-specific_language DSL] compiler written in Lisp<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* https://github.com/mlesniak/game - Haskell/OpenGL/Chipmunk game prototypes<br />
<br />
* [[wxAsteroids]], a well-documented game, based on [[wxHaskell]]<br />
<br />
* [https://github.com/simonmichael/hssdl-mac-example hssdl-mac-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff<br />
<br />
* Possible Hackage categorisation guidelines: upload games to Game, engines and libs to Game Engine, or at least to some category beginning with Game, and check latest categories before uploading<br />
<br />
== Wishlist ==<br />
<br />
Is hackage missing a useful data structure or library for some functionality that would benefit game programming? Suggestions for useful things can be added here as potential projects to hack on.<br />
<br />
* Octtree, kd-tree, various space partitioning techniques (maybe start with [http://hackage.haskell.org/package/spacepart spacepart]).<br />
<br />
* Binding to [http://www.fmod.org fmod]<br />
<br />
* Binding to [http://enet.bespin.org/Features.html enet] for multiplayer games. (jeffz is working on this).</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38876Game Development2011-02-25T22:51:29Z<p>SimonMichael: /* Examples */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/hssdl-mac-example hssdl-mac-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff<br />
<br />
* Possible Hackage categorisation guidelines: upload games to Game, engines and libs to Game Engine, or at least to some category beginning with Game, and check latest categories before uploading</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38875Game Development2011-02-25T22:50:56Z<p>SimonMichael: /* Examples */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/hssdl-mac-example hssdl-mac-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff<br />
<br />
* A sample policy for hackage categorisation: upload games to Game, engines and libs to Game Engine, or at least to some category beginning with Game, and check latest categories before uploading</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38757Game Development2011-02-14T00:07:21Z<p>SimonMichael: update link</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/hssdl-mac-example hssdl-mac-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38756Game Development2011-02-13T23:54:45Z<p>SimonMichael: /* Games and game engines */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound], [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38755Game Development2011-02-13T23:53:08Z<p>SimonMichael: /* Games and game engines */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38754Game Development2011-02-13T23:52:50Z<p>SimonMichael: /* Games and game engines */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] lists [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* See also these Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38753Game Development2011-02-13T23:47:30Z<p>SimonMichael: /* Games and Game Engines */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and game engines ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38751Game Development2011-02-13T23:47:11Z<p>SimonMichael: clearer title</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Games and Game Engines ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38750Game Development2011-02-13T23:46:03Z<p>SimonMichael: /* Examples */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38749Game Development2011-02-13T23:45:42Z<p>SimonMichael: </p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ===<br />
<!-- add new ones at the top, probably --><br />
<br />
* [https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example] - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38748Applications and libraries/Games2011-02-13T23:44:40Z<p>SimonMichael: whitespace</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38747Applications and libraries/Games2011-02-13T23:44:16Z<p>SimonMichael: move example elsewhere</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/hogre hogre]<br />
:Haskell bindings to the excellent OGRE 3D rendering engine. Ogre has been used in commercial games such as Torchlight and several books exist documenting the Ogre API. Ogre uses an MIT license making it compatible with many Haskell libraries.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38744Game Development2011-02-13T20:56:18Z<p>SimonMichael: </p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<!-- add new ones at the top, probably --><br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Examples ===<br />
<!-- add new ones at the top, probably --><br />
<br />
* https://github.com/simonmichael/graphics-drawingcombinators-example - how to make an SDL-using package buildable on mac OSX<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38740Applications and libraries/Games2011-02-13T20:06:27Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent BSD-licensed 2D game engine based on OpenGL and GLUT. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38739Applications and libraries/Games2011-02-13T20:05:24Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
;[https://github.com/yairchu/defend/tree Defend The King from Forces of Different]: A simple multiplayer real time strategy game.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://www.hedgewars.org/ Hedgewars]<br />
:A turn-based artillery game. The game server is written in Haskell.<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
;[http://ipwnstudios.com/node/4 Bloodknight]<br />
:An action RPG for mobile devices<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
;[http://joyridelabs.de/game/ Nikki and the Robots]<br />
:A puzzle, platformer game<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/package/FunGEn FunGEn]<br />
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine, released in 2002 and recently revived. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell. Its light dependencies make it easy to install, however GLUT is reputed to be unsuitable for simultaneous keypresses. Forks and patches welcome!<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://hackage.haskell.org/package/bullet Bullet]<br />
:A wrapper for the Bullet physics engine.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[http://hackage.haskell.org/package/lambdacube-engine LambdaCube]<br />
:LambdaCube is a 3D rendering engine entirely written in Haskell. The main goal of this project is to provide a modern and feature rich graphical backend for various Haskell projects, and in the long run it is intended to be a practical solution even for serious purposes.<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38737Game Development2011-02-13T18:53:13Z<p>SimonMichael: </p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]<br />
<br />
== Misc ==<br />
<br />
=== Examples ===<br />
<br />
* http://codepad.org/LRGEkkDp - initialization for SDL to start rendering OpenGL stuff</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38736Game Development2011-02-13T18:08:41Z<p>SimonMichael: </p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell. You may also wish to join the [http://www.haskellers.com/teams/7 Games group] on haskellers.com.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
* [http://www.palgorithm.co.uk/2009/08/haskell-for-games/ Haskell for Games!] Blog post, with PDF slides from AngloHaskell talk.<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38720Applications and libraries/Games2011-02-12T00:12:35Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/examples/worms/worms.hs games], in Haskell.<br />
<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12; forks and patches welcome<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38719Applications and libraries/Games2011-02-11T23:42:47Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine. As of 2011 it's the only general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/Examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/Examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/Examples/worms/worms.hs games], in Haskell.<br />
<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12; forks and patches welcome<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38718Applications and libraries/Games2011-02-11T23:41:51Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine. As of 2011 it's the only pure-haskell general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/Examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/Examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/Examples/worms/worms.hs games].<br />
<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12; forks and patches welcome<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38717Applications and libraries/Games2011-02-11T23:37:03Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2D OpenGL-based BSD-licensed game engine. As of 2011 it's the only pure-haskell general-purpose game engine, and the quickest way to throw together [http://darcsden.com/simon/fungen/browse/Examples/helloworld.hs simple] [http://darcsden.com/simon/fungen/browse/Examples/pong/pong.hs 2D] [http://darcsden.com/simon/fungen/browse/Examples/worms/worms.hs games].<br />
<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12, patches welcome<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38716Applications and libraries/Games2011-02-11T23:33:34Z<p>SimonMichael: move fungen back to the "working" category</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12, patches welcome<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38715Applications and libraries/Games2011-02-11T23:30:28Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12, patches welcome<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38714Applications and libraries/Games2011-02-11T23:30:00Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release and project page with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12/base 4; patches welcome<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38713Applications and libraries/Games2011-02-11T23:29:26Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release, with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's 2008 cabalised version, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008/2011 branch, cabalised and updated for GHC 6.12/base 4; patches welcome<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38712Applications and libraries/Games2011-02-11T23:28:55Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release, with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Miloslav Raus's cabalised version from 2008, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Simon Michael's 2008-2011 branch, cabalised and updated for GHC 6.12/base 4; patches welcome<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38711Applications and libraries/Games2011-02-11T23:26:04Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 2002 release, with docs<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised version from 2008, no repo<br />
* [http://darcsden.com/simon/fungen fungen] Another 2008 branch, now cabalised and updated for base 4; use this one<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38710Applications and libraries/Games2011-02-11T22:46:18Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no repo<br />
* [http://darcsden.com/simon/fungen fungen] A separate branch from 2008, with darcs repo, revived in 2011 and open for patches<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38709Applications and libraries/Games2011-02-11T22:06:34Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no docs/examples or repo<br />
* [http://darcsden.com/simon/fungen fungen] A separate branch from 2008, with darcs repo, revived in 2011<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38675Applications and libraries/Games2011-02-11T00:27:09Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no docs/examples or repo<br />
* [http://joyful.com/darcsweb/darcsweb.cgi?r=fungen fungen] A separate branch from 2008, with darcs repo<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38674Applications and libraries/Games2011-02-11T00:26:21Z<p>SimonMichael: /* Unfinished/in-progress game engines/libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2011 it's still the only pure-haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no docs/examples or repo<br />
* [http://joyful.com/darcsweb/darcsweb.cgi?r=fungen fungen darcs repo] A separate branch from 2008, with darcs repo<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38673Applications and libraries/Games2011-02-11T00:16:59Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using [http://hackage.haskell.org/package/graphics-drawingcombinators graphics-drawingcombinators] on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2010 it's still the only pure haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no docs/examples or repo<br />
* [http://joyful.com/darcsweb/darcsweb.cgi?r=fungen fungen darcs repo] A separate branch from 2008, with darcs repo<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Applications_and_libraries/Games&diff=38672Applications and libraries/Games2011-02-11T00:15:42Z<p>SimonMichael: /* Game Engines and Libraries */</p>
<hr />
<div>{{LibrariesPage}}<br />
<br />
See also: [[Game Development]]<br />
<br />
<br />
== Games ==<br />
<br />
;[http://hackage.haskell.org/package/babylon babylon]<br />
: An implementation of a simple 2-player board game. Uses wxHaskell.<br />
<br />
; [http://www.maths.tcd.ie/~icecube/2008/11/endless-cavern/ Endless Cavern]: A 2D procedurally-generated cave exploration game.<br />
<br />
;[http://sourceforge.net/projects/fooengine/?abmode=1 Foo]<br />
:Foo (abbreviation from football) is a playing machine of [http://en.wikipedia.org/wiki/Paper_Soccer Paper Soccer], a pencil and paper game for two players. It contains a simple interface using HOpenGL library and provides many playing algorithms.<br />
<br />
;[[Frag]]<br />
:Frag is a 3D first person shooting game written in Haskell, by Mun Hon Cheong. It uses Yampa, Quake 3 BSP level format and OpenGL. It is licensed under the GPL.<br />
<br />
;[[GeBoP]]<br />
:The General Boardgames Player, offers a set of board games: Ataxx, Bamp, Halma, Hez, Kram, Nim, Reversi, TicTacToe, and Zenix. It uses wxHaskell.<br />
<br />
;[http://www.informatik.uni-bremen.de/~cxl/lehre/pi3.ws01/asteroids/ Haskell in Space]<br />
:An asteroid like game<br />
<br />
;[http://web.comlab.ox.ac.uk/oucl/work/ian.lynagh/Hetris/ Hetris]<br />
:ASCII tetris in Haskell<br />
<br />
;[http://hackage.haskell.org/package/hfiar hfiar]<br />
:Four in a Row in Haskell. Uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/hinvaders hinvaders]<br />
:A simple ANSI-graphics space invaders written entirely in Haskell 98.<br />
<br />
;[http://www.cse.unsw.edu.au/~dons/code/contrib/hsChess hsChess]<br />
:Chess AI engine<br />
<br />
;[http://mu.org/~mux/LambdaChess/ LambdaChess]<br />
:GTK chess client<br />
<br />
;[https://github.com/kosmikus/LambdaHack LambdaHack]<br />
:A small roguelike game with a flexible engine. GTK and terminal front-ends.<br />
<br />
;[http://www.ncc.up.pt/~pbv/stuff/lostcities/ Lost Cities]<br />
:A two-player card game where each player tries to mount profitable expeditions. It uses wxHaskell.<br />
<br />
;[http://hackage.haskell.org/package/mage Mage]<br />
:Nethack clone written in Haskell (The web site have [http://www.scannedinavian.com/~shae/mage-1.0pre35.tar.gz this mage-1.0.pre35.tar.gz file] containing an older version that was using Data.FiniteMap.) There seems to be a problem with newer curses library even with the more recent 1.1.0 version.<br />
<br />
;[http://hackage.haskell.org/package/MazesOfMonad MazesOfMonad]<br />
:Role-Playing Game (influenced by Nethack), complete and fully playable. Console mode only.<br />
<br />
;[http://www.geocities.jp/takascience/haskell/monadius_en.html Monadius]<br />
:Monadius is a shoot 'em up with the selection bar power-up system for Windows, written in Haskell (now on [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Monadius-0.9.20071203 Hackage])<br />
<br />
;[http://d.hatena.ne.jp/authorNari/20080422/1208880928 Nario]<br />
:A Super Mario clone, using an SDL binding different from the one in Hackage: [http://fxp.hp.infoseek.co.jp/haskell/HSDL/arc/HSDL-0.2.0.zip]<br />
<br />
;[http://berlinbrowndev.blogspot.com/2007/09/octane-mech-opengl-haskell-based-mech.html Octane Mech]<br />
:Octane Mech, OpenGL Haskell based mech game<br />
<br />
;[http://haskell-tetris.pbwiki.com/Main OpenGL Tetris]<br />
:Tetris in Haskell with OpenGL<br />
<br />
;[http://www24.brinkster.com/srineet/para/para.html Paratrooper]<br />
:Paratrooper is a simple action game that runs on Windows and is written in literate Haskell.<br />
<br />
;[http://raincat.bysusanlin.com/ Raincat]<br />
:2D puzzle game featuring a fuzzy little cat (uses GLUT)<br />
<br />
;[http://roguestar.downstairspeople.org Roguestar]<br />
:Roguestar is a science fiction adventure role playing game using Haskell and OpenGL.<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Shu-thing Shu-thing]<br />
:A 2-D vector graphics upwards-scrolling keyboard-controlled shooter. You shoot the enemies while dodging their bullets until you reach and defeat the enemy.<br />
<br />
;[http://web.jfet.org/~kwantam/TriHs.tar.gz TriHs] (tar.gz)<br />
:A 1- or 2-player Tetris game using Gtk2Hs and Cairo.<br />
<br />
;[[wxAsteroids]]<br />
:Your space ship enters an asteroid belt, try to avoid collisions! wxAsteroids is based on wxHaskell.<br />
<br />
;[http://xiangqiboard.blogspot.com/2007/12/gnuxiangqi-angekndigt.html Xiangqiboard]<br />
:An implementation of xiangqi for Unix, using gtk2hs + cairo<br />
<br />
<br />
=== Unfinished/in-progress games ===<br />
<br />
; [https://github.com/ghulette/haskell-game-of-life haskell-game-of-life]<br />
: Conway's Game of Life<br />
<br />
;[http://dotat.at/prog/life/hslife.hs HsLife]<br />
:A Haskell implementation of hashlife. It uses GLUT.<br />
<br />
; [http://folk.uio.no/carljsv/game/game-1.0.tar.gz game-1.0.tar.gz]<br />
: An attempt on a "five-in-a-row"-program<br />
<br />
<br />
== Game Engines and Libraries ==<br />
<br />
;[http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Hipmunk Hipmunk]<br />
:Hipmunk: A Haskell binding for [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk]. Chipmunk is a fast, simple, portable, 2D physics engine. It is completely self-contained. See also [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/HipmunkPlayground HipmunkPlayground]: a simple OpenGL program that allows you to see some of Hipmunk's functions in action.<br />
<br />
;[[Hpysics]]<br />
:Hpysics is a physics engine written using Data Parallel Haskell during Google Summer of Code 2008.<br />
<br />
;[http://projects.haskell.org/game-tree/ game-tree]<br />
:game-tree is a purely functional library for searching game trees - useful for zero-sum two player games.<br />
<br />
;[http://hackage.haskell.org/package/IrrHaskell IrrHaskell]<br />
:Haskell binding to the [http://irrlicht.sourceforge.net/ Irrlicht game engine]. The Irrlicht Engine is an open source high performance realtime 3D engine<br />
<br />
;[https://github.com/simonmichael/graphics-drawingcombinators-example graphics-drawingcombinators-example]<br />
:An example of using HackageDB:graphics-drawingcombinators on Mac OSX, to ease getting started on that platform.<br />
<br />
<br />
=== Unfinished/in-progress game engines/libraries ===<br />
<br />
;FunGEn<br />
:FunGEn (Functional Game Engine) is a platform-independent 2d OpenGL-based BSD-licensed game engine. As of 2010 it's still the only pure haskell general-purpose game engine. The engine and examples work, but need updating for current GHC and OpenGL.<br />
* [http://www.cin.ufpe.br/~haskell/fungen FunGEn] Andre Furtado's original 0.1 release in 2002, with docs and examples<br />
* [http://hackage.haskell.org/package/FunGEn FunGEn on hackage] Cabalised/updated version from 2008, confusingly also 0.1, no docs/examples or repo<br />
* [http://joyful.com/darcsweb/darcsweb.cgi?r=fungen fungen darcs repo] A separate branch from 2008, with darcs repo<br />
<br />
;[[HaskGame]]<br />
:An incomplete graphics system abstraction layer.<br />
<br />
; [https://github.com/shicks/hsgame hsgame]<br />
:A framework for network games<br />
<br />
<br />
[[Category:Games|*]]<br />
[[Category:Applications]]<br />
[[Category:Libraries]]</div>SimonMichaelhttps://wiki.haskell.org/index.php?title=Game_Development&diff=38671Game Development2011-02-10T22:59:04Z<p>SimonMichael: /* Articles and blog posts */</p>
<hr />
<div>[[Category:Games]] [[Category:Community]]<br />
<br />
This page and the #haskell-game [[IRC channel]] is the starting point for everyone interested in doing game development with Haskell.<br />
<br />
There are quite a lot of games, unfinished libraries, and interested people out there - please gather links here and join us on '''[irc://irc.freenode.net/#haskell-game #haskell-game]''' !<br />
<br />
You may also wish to join the [http://www.haskellers.com/teams/7 Games special interest group] on haskellers.com.<br />
<br />
<br />
== Software ==<br />
<br />
* [[Applications and libraries/Games]] - a partial list of [[Applications and libraries/Games#Games|games]] and [[Applications and libraries/Games#Game_Engines_and_Libraries|game engines/libs]]<br />
<br />
* Some relevant Hackage categories: [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:game Game Engine] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:graphics Graphics] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:sound Sound] - [http://hackage.haskell.org/packages/archive/pkg-list.html#cat:physics Physics]<br />
<br />
== Articles and blog posts ==<br />
<br />
* [http://lambda-the-ultimate.org/node/1277 The Next Mainstream Programming Languages: A Game Developer's Perspective] (PPT, PDF) presentation by Tim Sweeney<br />
<br />
* [http://prog21.dadgum.com/23.html Purely Functional Retrogames]<br />
<br />
* [http://prog21.dadgum.com/36.html Accidentally Introducing Side Effects into Purely Functional Code]<br />
<br />
* [http://legacy.cs.uu.nl/daan/download/papers/wxhaskell.pdf wxHaskell - A Portable and Concise GUI Library for Haskell] (PDF) - describes an implementation of an asteroids game, [[wxAsteroids]]<br />
<br />
== Videos ==<br />
* [http://video.google.com/videoplay?docid=9139666903029663537 Games in Haskell] - Matthew Sackman and Tristan Allwood on developing games with OpenGL in Haskell<br />
<br />
* [http://www.youtube.com/watch?v=AJQZg3Po-Ag bloxors: an OpenGL Logic Game written in Haskell]</div>SimonMichael