Logo

asimov-ts

asimov-ts is a tiny experimental engine for creating games targeting the web leveraging the power of TypeScript.
Explore the docs »

View Demo · Report Bug · Request Feature

## About The Project ![Code Example](https://github.com/pedrozaalex/asimov-ts/blob/main/.github/code-example.png?raw=true) ### 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: - [TypeScript](https://www.typescriptlang.org/) - [nanoid](https://github.com/ai/nanoid) - [Nx](https://nx.dev/) ### 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 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. - Install pnpm folowing the instructions [here](https://pnpm.io/installation) ### Installation 1. Create new project if you haven't already. I like vite for this, but you can use whatever you want. ```sh pnpx create-vite my-project --template vanilla-ts ``` 1. Install asimov-ts ```sh pnpm add @asimov-ts/core @asimov-ts/web ``` That's it! You can now start using the engine. ## Usage Please refer to this [project](https://github.com/pedrozaalex/tiny_snek) to see how to use asimov-ts to create a sort of complete game. ## 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 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 Alexandre Pedroza - [@alex_pedroza\_](https://twitter.com/alex_pedroza_) - pedrozaalexandre@gmail.com Project Link: [https://github.com/pedrozaalex/asimov-ts](https://github.com/pedrozaalex/asimov-ts)