Difference between revisions of "Sharplike"
Jump to navigation
Jump to search
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{library| name = Sharplike | {{library| name = Sharplike | ||
|developer = [http://largerussiangames.com Large Russian Games]: Sean Edwards, Alex Karantza, and Ed Ropple | |developer = [http://largerussiangames.com Large Russian Games]: Sean Edwards, Alex Karantza, and Ed Ropple | ||
|released = June 10, 2010 (0.2.0) | |released = June 10, 2010 (0.2.0) | ||
|updated = June | |updated = June 18, 2010 (0.4.0) | ||
|dependencies = [[.NET Framework]] 2.0 or [[Mono Framework]] | |dependencies = [[.NET Framework]] 2.0 or [[Mono Framework]] | ||
|status = Alpha | |status = Alpha | ||
Line 18: | Line 18: | ||
==Current Version== | ==Current Version== | ||
The current version of Sharplike is '''0. | The current version of Sharplike is '''0.4.0''', released on June 18, 2010. Features include (0.4.0 in bold): | ||
* Modular core system for audio, graphics, input, and scripting (scripting currently disabled) using a provider model for all core systems. | * Modular core system for audio, graphics, input, and scripting (scripting currently disabled) using a provider model for all core systems. | ||
* OpenGL audio and video system, using [[OpenTK]]. | * OpenGL audio and video system, using [[OpenTK]]. | ||
* Keyboard and mouse input using WinForms. Command-based input mechanism; games don't have to care about specific key bindings outside of an .ini file, the framework handles it for you. | * Keyboard and mouse input using WinForms. Command-based input mechanism; games don't have to care about specific key bindings outside of an .ini file, the framework handles it for you. | ||
* | * '''Blocking or non-blocking game flow.''' | ||
* Stack based state machine for control flow. Integrates with the game loop automatically, without any special configuration. | * Stack based state machine for control flow. Integrates with the game loop automatically, without any special configuration. | ||
* Preliminary noise generation systems in Sharplike.Noise. | * Preliminary noise generation systems in Sharplike.Noise. | ||
* | * '''Mapping system is (mostly) finished, using Pages (uniformly sized blocks) of Squares (tiles). Other features build on top of Mapping, including the following:''' | ||
:* '''Entity system implemented (usable for both mobiles and items). Predominantly event-driven to enable fine-grained control.''' | |||
:* '''Messaging system implemented, to send messages between entities and pages in a thread-safe manner (that works effectively with the multi-threaded schedulers).''' | |||
:* '''A game caching system. Currently only "cold" caching (to-disk) is implemented; future plans include a "warm" caching system for saving on CPU time while keeping the page and its entities in memory.''' | |||
:* '''An actor scheduling system, with a number of scheduler types. The SingleThreadedScheduler is recommended for simpler games, such as Hacks and Bands, while the multithreaded schedulers (included primarily for advanced use) are more useful for large-scale, Dwarf Fortress-style games.''' | |||
* '''Control-based UI, named Regions, for use in graphical displays. A Region is somewhat similar to a Windows Form control, in that it may be arbitrarily placed within the display window. They may be subclassed for your specific needs. (The map display is a Region, and can be manipulated as such.)''' | |||
* Built using the .NET Framework 2.0 and tested with Mono 2.4.4 to ensure cross-platform operation on Linux and Mac OS X. | * Built using the .NET Framework 2.0 and tested with Mono 2.4.4 to ensure cross-platform operation on Linux and Mac OS X. | ||
Latest revision as of 14:22, 18 June 2010
Sharplike | |
---|---|
Library project | |
Developer | Large Russian Games: Sean Edwards, Alex Karantza, and Ed Ropple |
Released | June 10, 2010 (0.2.0) |
Updated | June 18, 2010 (0.4.0) |
Status | Alpha |
Licensing | Common Public Attribution License, Version 1.0 |
P. Language | C# |
Platforms | Windows, Mac OS X (Mono 2.4 and newer), Linux (Mono 2.2 and newer) |
Dependencies | .NET Framework 2.0 or Mono Framework |
Official site of Sharplike |
Introduction
Sharplike is an open source roguelike library written in C# for the .NET Framework and Mono Framework, licensed under the CPAL 1.0 (a derivative of the Mozilla Public License). It is developed in an attempt to provide a best-practices framework within which developers can concentrate on just making an awesome game, instead of spending a lot of time reinventing the wheel. Development of Sharplike focuses on two separate concerns:
- An easily usable, extensible core library, and
- A clean, powerful library of additional features for developers who want to get a head start on realizing their game.
Current Version
The current version of Sharplike is 0.4.0, released on June 18, 2010. Features include (0.4.0 in bold):
- Modular core system for audio, graphics, input, and scripting (scripting currently disabled) using a provider model for all core systems.
- OpenGL audio and video system, using OpenTK.
- Keyboard and mouse input using WinForms. Command-based input mechanism; games don't have to care about specific key bindings outside of an .ini file, the framework handles it for you.
- Blocking or non-blocking game flow.
- Stack based state machine for control flow. Integrates with the game loop automatically, without any special configuration.
- Preliminary noise generation systems in Sharplike.Noise.
- Mapping system is (mostly) finished, using Pages (uniformly sized blocks) of Squares (tiles). Other features build on top of Mapping, including the following:
- Entity system implemented (usable for both mobiles and items). Predominantly event-driven to enable fine-grained control.
- Messaging system implemented, to send messages between entities and pages in a thread-safe manner (that works effectively with the multi-threaded schedulers).
- A game caching system. Currently only "cold" caching (to-disk) is implemented; future plans include a "warm" caching system for saving on CPU time while keeping the page and its entities in memory.
- An actor scheduling system, with a number of scheduler types. The SingleThreadedScheduler is recommended for simpler games, such as Hacks and Bands, while the multithreaded schedulers (included primarily for advanced use) are more useful for large-scale, Dwarf Fortress-style games.
- Control-based UI, named Regions, for use in graphical displays. A Region is somewhat similar to a Windows Form control, in that it may be arbitrarily placed within the display window. They may be subclassed for your specific needs. (The map display is a Region, and can be manipulated as such.)
- Built using the .NET Framework 2.0 and tested with Mono 2.4.4 to ensure cross-platform operation on Linux and Mac OS X.
Links
- http://dev.largerussiangames.com/projects/show/sharplike - the Redmine project on the primary developers' tracker. Primary source for documentation and updates on development.
- http://dev.largerussiangames.com/projects/sharplike/boards - the Sharplike forum.
- http://dev.largerussiangames.com/projects/list_files/sharplike - the Sharplike release list.
- http://opensource.edropple.com/svn/Sharplike/trunk - SVN trunk for project's source repository.