Home

Awesome

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/pedrozaalex/asimov-ts"> <img src="https://github.com/pedrozaalex/asimov-ts/blob/main/.github/asimov-ts.png?raw=true" alt="Logo" width="256" height="256"> </a> <h3 align="center">asimov-ts</h3> <p align="center"> <code>asimov-ts</code> is a tiny experimental engine for creating games targeting the web leveraging the power of TypeScript. <br /> <a href="https://github.com/pedrozaalex/asimov-ts"><strong>Explore the docs »</strong></a> <br /> <br /> <a href="https://github.com/pedrozaalex/tiny_snek">View Demo</a> · <a href="https://github.com/pedrozaalex/asimov-ts/issues/new?assignees=&labels=&template=bug_report.md&title=">Report Bug</a> · <a href="https://github.com/pedrozaalex/asimov-ts/issues">Request Feature</a> </p> </div> <!-- ABOUT THE PROJECT -->

About The Project

Code Example

Built With

This section is actually mostly empty since I tried to keep the dependencies to a minimum. That said, there are some projects that made my life a lot easier:

Why?

Mostly, I wanted to experiment with some ideas I had about how to create a game engine. I also wanted to learn more about TypeScript and how to use it to create a library.

But also, I really like the idea of giving back to the community. God knows how much I've learned from the open source community. So I thought it would be nice to create something that could help others.

Why the name?

First of all, I love Asimov's Foundation series. Seriously, go read it right now if you haven't already.

Secondly, Asimov created entire worlds with just a few words. I wanted to create a tiny engine that could be used to create games with just a few lines of code. So I thought the name was fitting and a nice tribute to the author.

<!-- GETTING STARTED -->

Getting Started

To get a local copy up and running follow these simple example steps.

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

Installation

  1. Create new project if you haven't already. I like vite for this, but you can use whatever you want.

    pnpx create-vite my-project --template vanilla-ts
    
  2. Install asimov-ts

    pnpm add @asimov-ts/core @asimov-ts/web
    

That's it! You can now start using the engine.

<!-- USAGE EXAMPLES -->

Usage

Please refer to this project to see how to use asimov-ts to create a sort of complete game.

<!-- ROADMAP --> <!-- CONTRIBUTING -->

Contributing

This was created mostly for learning and fun. That said, it would be great if you could contribute to this project.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request
<!-- LICENSE -->

License

Distributed under the MIT License. See LICENSE.txt for more information.

Please note that I'm not affiliated with the Asimov's Foundation in any way shape or form. I just like the name.

<!-- CONTACT -->

Contact

Alexandre Pedroza - @alex_pedroza_ - pedrozaalexandre@gmail.com

Project Link: https://github.com/pedrozaalex/asimov-ts