I made this game in others languages first, languages that I already knew well 
and was confortable with.

I found [Raylib](https://www.raylib.com/) which is a nice C library which to my 
suprise has bindings to a lot of languages. So I proposed to myself a silly 
challenge: pick up a language I never used before and create something playable 
in the least amount of time.

The game: [Word Search 
Shooter](https://github.com/Intasx/Intas-games/tree/master/Word%20Search%20Shooter%20-%20Nim/)

Nim binding used: [Raylib 
Forever](https://github.com/Guevara-chan/Raylib-Forever/)

This took me 4 days. It was a really fun experience! From the gif you can see a 
little about the gameplay. You have to kill the enemy by clicking on the 
letters and forming the words of the list, if you misspell the word or if the 
timer gets to zero you get hurt, and of course if your HP gets to zero you lose.

The raylib binaries are included so if I'm not mistaken, you should be able to 
play on windows with `nim main.nim`

  * Why Nim?



I started with Nim because it was the most interesting language. Also because 
the amazing Nim binding supports raygui, so I didn't have to make my own button 
(it wouldn't be very hard to implement but... I'm lazy :P) and the syntax, 
which is similar to python, a language I already know.

  * How did I learn Nim?



If you already know all the important concepts about programming (loops, 
conditionals, functions...) all you have to do is to get familiar with the 
syntax and that's pretty much it. That also includes the language's quircks, 
gotchas and limitations.

I found this page: [Nim basics](https://narimiran.github.io/nim-basics//) to be 
**very** useful. It's pretty much a must read for anyone who wants to learn 
Nim. I wish every language had such a simple "basics" page. The manual was 
useful too.

If you have any other good tutorials or "basics" let me know!

Feel free to share feedback or improvements! Keep in mind that I was learning 
the language on the go while making the game, so there may be a lot of things 
to improve.

Reply via email to