Hi everybody, I'm very new in Nim and I would have a chance to try it.
My idea is to implement a simple interface for an isola-game engine in Nim. Maybe in the future I could work for the AI of the engine but for now I think that it can be really silly, it could do just the work of a stupid player.
This could help me to learn how to implement a good interface between two processes (the engine and the UI) and how to realize a graphic interface (I'm new to GUI programming too). I thought that I could use GTK+ for the GUI Library because I like in the future write some programs for the Gnome platform, but if you have a better suggestion I'm ready to listen. I've seen that there is a module 'socket' that I could use for create a posix socket between the two process, but documentation about it seems very poor.
My main question is: Is Nim enough mature for let a nim-newbie do that (I know Ruby, Java and a bit of lisp and c; I've never play with GUI except for the hello-world examples...)? If the answer is "yes", do you have any suggestions, any recommendations about how to start, where to look etc. ?
Thanks in advance and best luck to this funny language!
Is Nim enough mature for let a nim-newbie do that
Nim is fine for that task. When you can do it in any other language, then doing it in Nim is no problem. When you have no idea how to do it at all, then it may take some time.
A GTK3 board can be done with a few lines of code, for example see
https://github.com/StefanSalewski/nim-chess3
Socket communication is also not difficult, I used that in
for data exchange with nimsuggest IDE tool.
What is some more difficult is animated movement of game pieces, or letting the game engine work in the background without blocking the user interface. I was too lazy to try that.
Of course there exists more GUI toolkits for Nim, but I have only used GTK3 yet.
Thank you for your kindly answer, I'll watch from your examples!
What is some more difficult is animated movement of game pieces
I'm not very interested by complicated animations in this kind of games; a clean interface and board game is more attractive to me.
or letting the game engine work in the background without blocking the user interface. I was too lazy to try that.
I supposed that's no easy, I guess there aren't standard interface protocols for Isola out here. I'll try to make a simple one.