## About The Project

### 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)