Solarus like Rpg Maker 2003

Started by 20degree, August 19, 2017, 02:18:49 PM

Previous topic - Next topic
Hi there it's been a while since ive come here, but still interrested in Solarus.

It would be great for beginners as i, that when peoples create some map and place some tile "event" wich could be invisible or visible. Like when the player walk over. The user could (Right click mouse button) the tile event, that could put the option "edit event"; when choosen could see some menu as into "Rpg Maker 2003". What i mean by that is the different tabs that have many clickable button as (Teleport/Move/Weather/Shop/Items/Switch "On Off"/Message/Input/etc). This could create some LUA file automaticly by Solarus indicating the event is on some map at some coordinate and does some thing. It could be a tile/sprite that could be activated/desactivated by pressing the spacebar (in front/or over) or activated/desaticating by passing over it.

Making the Solarus software auto create some LUA file, by simply clicking on some button/options menus as in Rpg Maker 2003. Could make beginners read the LUA file and try to understand what they have done and do some experiments. I'm not talking about the way the player battle the ennemies, battling as in the Snes Zelda is just fine.

Here is some url links to the command event button i'm talking about:

Doing so could be some major Solarus changes and updates, making peoples crazy and hungry for the Solarus Software. Why because doing as so, make Solarus creator much more easy for beginners. After all the gaming industry have prooven that the more easy and simple the use of a game creation tool editor software; the wider the audience there is for Solarus and it's peoples. Just do a google search on game editors/creators, find there websites and you'll notice on there website; that there tools is more easy then ever and they put the accent to create in new versions much more easy and simple for beginners than before.

So Solarus auto-creating some events LUA files, by simply clicking on some "command events tabs buttons" that the players/creators could read and understand as in Rpg Maker 2003. Does not mean that the creator can not program the LUA files, it simply mean more simpler for beginners but still excellent for advanced creators/programmers

What could be possibly good also is that when you edit a tile properties. In Solarus i know you can say if it is passable or as some kind of wall. It would be nice that some tiles could have by clicking on it some indications if the player can/cannot pass under/over and i what directions "arrows" like the software Rpg Maker 2003 image:

I wonder what peoples think about these idea's??


I suggested some stuff along this line a few years ago. The crippling issue with  Solarus, in general, is that  you  absolutely need to use Lua to do anything useful. Unless something has changed quite recently, doing a basic function, such as adding an npc, required Lua scripts; and adjusting say, the HP or attack power of that npc required editing the script as well.

(I wish that I had the time (and sanity) required to work on this, but I spend all of both on ZC.)

What  I suggested, is: Adding editor panes that can interface with scripts, read  their values, store basic values in a GUI panel, allow changing them there, then writing the values back out to the script. This could all be done in char!

Editor panes like that, could usethe script tokens (type, name) to bind them to the appropriate list.

Likewise, game actions, and game objects, could be set up in much the same way.

If Solarus was C99, I would be far more willing to work on stuff of this sort, but all of the highly-abstracted, OOP nonsense is just too much for this old bastard. ;)

Perhaps I'll look at it again at some point.

I will give my own opinion about this subject. Warning: I'm an extremely obstinate person and obsessive with this engine but I don't have offensive intentions, so don't get me wrong.

All this stuff is too specific and too rigid. If solarus had windows like these to make these things without using Lua, the options on the lists would be too limitated; in most cases you want to create something you will not find what you need there, unless you want to make a game that lacks originality in its mechanics. For experienced devs (or the learning ones, like me), this kind of GUIs with event lists would be terribly annoying and not useful, and some may leave this engine and change to some engine that is more flexible. If you want something as simple as a rock, you already have RPG Maker. Solarus should not be seen as a free version of RPG Maker, it is an engine that allows to make high quality pixel-art games of many kinds with much flexibility in its mechanics (even Mario Kart-like games would be possible soon), and that kind of event windows do not fit well with it its powerful features (IMO, all should be as general as possible).

I think that Christopho created Solarus because other engine (RPG Maker) was not flexible enough to make cool things and have more control on what you do. And the only way to have more control on things and flexibility is directly from beautiful code. The more control on things you want, the more you need to code things, and if you want an engine where you don't need to code, then forget about flexibility, quality and originality. No engine will ever offer a lot flexibility to do cool things without putting some minimum effort on code, because that is just like asking for oranges to an apple tree. Think on a pan balance where "technical difficulty", "flexibility" and "awesomeness" are on one side, and "easiness", "rigidity" and "boring things" on the other side. Solarus is well balanced and Lua is not a hard language to learn. In my opinion, learning Lua may take just a few months (6 at most for young people), while making a decent game takes many years of hard work even with a hard-working team (even with an engine like RPG Maker). Learning Lua is probably much easier than learning a speaking language, and all of us speak in one or several languages, so it is just a matter of having a lot of free time and motivation (and otherwise just a lazy excuse).

And I insist on that if you want something so simple as RPG Maker, then just use RPG Maker instead. (Recall that the original Mystery of Solarus was made on RPG Maker.)
"If you make people think they're thinking, they'll love you. But if you really make them think, they'll hate you."

Don't mean to pile on, but I totally agree Diarandor!

If you want to use RPG Maker, then use that solution. But Solarus is not RPG Maker and does not strive to be. In fact, I would advocate that Solarus should go the opposite direction - that too many things are hard-coded and should be developed as pure Lua solutions (which Christopho and others are already working on).

Now one solution could be to develop these scripts and then have them as templates available in the editor. Want to add a basic menu? Click a button and it adds the code in automatically, with plenty of comments so the game developer knows what to change to get the desired result. Same with basic item types, character scripts, etc. I think this could present an interesting balance and keep the power of the editor/engine while making it more user friendly.

By the way, Christopho is gonna add another feature to the SQE that allows to define values of variables for entities from the editor, so that the scripts use them. That is very user friendly and, at the same time, flexible. But scripting is still necessary.
"If you make people think they're thinking, they'll love you. But if you really make them think, they'll hate you."

Solarus was precisely created to bypass RPG Maker limited functions with custom scripts. Scripting in Lua is much more powerful than these menus. Creating a game is essentially computer programming and, at a certain point, you cannot avoid programming if you really want to control what's happening.

Solarus does not want to replicate these RPG Maker menus because it is precisely not intended to do that, sorry. Though the editor interface will improve with time, Lua scripting will remain at the core of Solarus, and this why Solarus is great.

That's interesting Diarandor, I hadn't heard that. Would these be global Lua variables, or even part of the GLOBAL table? Aren't those generally frowned upon in Lua scripting except in particular cases?

wrightmat: the entity editor will have a feature that allows to put custom properties (additionally to the built-in ones: x, y, layer, etc). Just like the custom properties in the dialog edtor.
And the Lua API will have two new methods: entity:get_property(property_name) and entity:set_property(property_name, value).
Uses cases are countless :D

That's a pretty awesome solution! Great work Christopho!

There is absolutely no need to hardcode any of the events. If when adding scripts to a quest, the scripts can add dialogues, then a set of default scripts, or templates, using that type of mechanic can tailor the UI in a way that makes it dead simple to use.

This notwithstanding,  if you are concerned about adding an in-built UI with events, items, npcs, game dialogue controls; whatever, even with a hardcoded set of defaults, a user could ignore using them, and use Lua to control everything.

I do not at all comprehend the argument that having one or the other need be mutually-exclusive.  Using the Lua to shape the UI is the *best* solution, IMO, but nothing prevents Lua from working if there are also say, internal enemies.

That is precisely how I'm planning to implement npc scripts in ZC in the future, and I would at some point want to allow scripts to modify the ZQuest interface, but that is a great deal harder than it sounds, for our case.

Anyway, it /sounds/ as if this is the direction that Christopho is taking, and it is a sane path. Template script sets that generate the UI, would make the programme less rigid, not more rigid. ;)

Yes this is the direction I am taking, but unfortunetaly I can't say when it can be done.

November 24, 2017, 05:39:47 PM #11 Last Edit: November 24, 2017, 05:42:15 PM by ZoriaRPG
Quote from: Christopho on November 24, 2017, 09:44:09 AM
Yes this is the direction I am taking, but unfortunetaly I can't say when it can be done.

I fully comprehend that. ;)

I'm a /primary/ ZC dev now,  so , I have similarly long to-do lists.

It is the correct decision though, and I'm glad that you are taking my advice from 1->2 years ago. :)

( I cannot comprend why Diarandor believed that adding this -kind of feature was mutually-exclusive with Lua-based control. )

I hope that all has been well with you, otherwise.  II  try to kqeep in touch, but it us hard.

I need to play the new Solarus quests, but as-is, I canna' keep up with ZC quests, and I am simultaneously coding four' versions of ZC, so my 'free time' is quite scant.

That issue aside, I have not stopped watching Solarus. :D

OT, but, have you added a pause feature?

I'd like to mention just in case its unclear, that RPG Maker's event system isn't magic.
They literally just wrote a script inside the game engine that interprets what those mean and adds whatever text they wrote there into another script file at run-time.

If you look at RMXP you can even read and replace all the code that handles what the event buttons do. You could create your own custom events.
Rather than adding this to Solarus proper, someone could write a simple executable that reads a Lua definition file to create buttons, label them, and define what kind of text gets added some output script or another.

Its essentially just a macro like you'd find in any IDE. A slightly less versatile Intellisense.

I'd hazard (if he was so inclined, which he seems not) Diarandor would be plenty able to make such a thing himself.

The only things you have to keep in mind are how Solarus operates (to base your insertted code around) and what functions do (which objects they operate on, what arguments they take)... and... lastly... what functions do you need?

No one person can ever truly think of every possible function you could need tied to a button( even if arguably only one or a few people wrote the functions ).

This isn't a bad idea per se, but I think it should be limited to a tool, rather than something integrated into the core.
Patience is difficult and rarely thanked, but always appreciated, and sorely missed when absent.

I still think that adding such lists of "events" would be unclean from the engine/editor part, and most part of devs would not use it. The cleanest way to do it would be to allow defining that list of "event functions" in Lua, and make the engine load that list in case it is defined in certain script(s). But who is gonna code these scripts in Lua? And, as Satoh says, it is unclear which functions should appear there. @ZoriaRPG: which functions should appear there? Could you be more specific?
"If you make people think they're thinking, they'll love you. But if you really make them think, they'll hate you."