Git Product home page Git Product logo

wism's Introduction

"# wism"

For discussion and more details, see: http://warlords.branallygames.com.

[Overview]

War! Welcome to War in a Senseless Mind (WISM). WISM is an original Warlords 1990 clone, but is designed for modification and reuse/fork into similar projects as a game engine. Additionally, WISM was designed to have all core game logic outside of proprietary platforms like Unity or other game engines. This will allow for easier extension in the future and longevity as platforms evolve. A good example of this is the ASCII WISM app which provides a Console-based UI to the same game engine.

Why another Warlords clone? Can't we just play the original on DosBox or Warlords Classic Strategy on iOS? Sure you can and you should! However, the original has limited re-playability on DosBox and old resolutions, it does not allow mods, new maps, armies, or features (though Warlords III introduced some of this). Warlords Classic is an iOS exclusive latter and closed source. We deserve more Warlords and we can with inspiration from SSG and all the subsequent great turn-based strategy games.

Here is a brief orientation to the projects.

[WISM Client]

This project is for core WISM game logic and is separated roughly into the API (Controller), Core (Model), and Agent (ASCII View).

API: The Client API is the local contract for a UI, AI, or remote player interface. Since all changes must be driven through Commands, the interface for a UI like Unity or the Console, an AI or set of AI controllers, or remote players is the same. This drives simplicity and is a key design principle.

Further, this layer is designed such that all game state changes driven by a controller are replayable deterministically. This allows for any controller set to the same random seed to stay in sync without copying or replicating game state other than the Command objects. This is also a key design principle and must not be violated. There may be additional non-game state, such as user information, chat, or similar state that may be managed outside of the command channel.

Core: The Core model contains the entities like Army, Terrain, and Items; though it also contains business logic for the core game states and operations such as private IWarStrategy and IPathingStrategy implementations to be consumed or extended by the API. It may be extended either directly or via the Module interfaces. This layer is designed for mods to be created as new army types, cities, or other items are added. Examples are found under "/mod" in the form of JSON files.

Agent: The agent contains basic primitives for constructing a game loop and interfacing with the WISM API controller and Core model (read-only). This contains a reference implementation called ASCII WISM to demonstrate extension. It also provides the structure for an agent to push or consume remote Commands. The agent will be the sync mechanism with the cloud or other remote play options to apply or send commands between systems.

[WISM Unity]

This is the primary UI for the Warlords clone implementation. It is designed to accurately reflect Fawkner's look and feel. It borrows concepts, art, and sound to skin the game with an authentic experience. The desire is to add similar Module capability to the Unity UI to allow for easy extension, similar to WISM Core. At present updates and mods require changes to the Unity environment prefabs and GameObjects, which is not the long-term goal. As mentioned above, game logic is pushed as low as possible in the stack--down towards Core. However, there may be some user experience elements that are best left to the View (ASCII WISM or Unity WISM). Examples include display of combat sequences, army selection, or cut-scenes.

The choice of using Unity and all .NET Standard 2.0 binaries means that this game is fully portable to all modern gaming environments, including Windows PC, iOS, Android, Xbox, or any of the platforms supported by Unity. Currently, the primary device target is Windows as it most closely honors the original Warlords spirit.

Thank you for visiting. I hope you enjoy the game!

Legal Disclaimer: Warlords and all related imagery and references are copyrights of SSG registered trademarks and attributed to Steven Fawkner and Roger Keating. Use of this code is for educational purposes only and may not be distributed for commercial use.

[References]

https://en.wikipedia.org/wiki/Warlords_(1990_video_game) http://www.ssg.com.au/

No affiliation with Warlords Classic. For official Warlords content, visit and support: https://www.facebook.com/WarlordsGame.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.