Question

Started by brlmnd, August 09, 2013, 10:33:32 PM

Previous topic - Next topic
The next versions of the Solarus are aimed to be used by someone who don't know anything about programming?

August 09, 2013, 11:47:23 PM #1 Last Edit: August 10, 2013, 12:07:19 AM by paragonx9
I don't really know where you heard this, but in my bit of experience in game programming, I've learned that you can't really make a game without knowing anything about programming. I bet the next versions will be more user-friendly and documented, but I can almost guarantee you that you will still need Lua for the more "complicated" events. Lua isn't really that hard to learn, even if you don't have any programming experience. And if you feel confused, I'd suggest going to the "Zelda: Mystery of Solarus DX" github website to look at the source code, and open up the scripts to see how they work. I was pretty confused a few days ago, but I'm starting to get the hang of it now  ;)

I don't think it is possible to make a game without programming somehow. Game creation software like RPG Maker, Multimedia Fusion or Game Creator can hide the programming part behind a graphical user interface, but in the end, you still find the same problem and have to solve the same issues as a with traditional programming language. So for me, with these software you use a graphical programming language.
What I'm saying is that no matter the game engine you use, you have to learn some kind of language.

Lua is very minimalist. It is easy to learn compared to others.
(You can start here: www.lua.org/pil/contents.html)

In Solarus, you have to use Lua to make all your menus: the title screen, the pause menu, the dialog box, etc. In the future, there will problably lots of examples of scripts for these on this forum or the wiki so that people don't have to write them from scratch or adapt them from existing games.

But once you have your menus, programming the behavior of a map is quite easy. For example, if you have a switch called "my_switch" and you want it to make a chest called "chest_1" appear, you do

function my_switch:on_activated()
  chest_1:set_enabled(true)
end


We will make tutorials soon to explain all of this :)