Difference between revisions of "Sharplike"

From RogueBasin
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{library| name = Sharplike: The Open Roguelike Library
{{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 10, 2010 (0.2.0)
|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.2.0''', released on June 10, 2010. Features include:
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.
* Stepwise game loop system for roguelike game control. (Realtime game loop coming in the next release.)
* '''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.
* Very early start of a UI library to use in conjunction with the core libraries. (Next release wll build this out significantly.)
* '''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