AGS or Ren'Py for Point-and-Click/Visual Novel Hybrid?

Started by imagazzell, Thu 21/03/2024 00:58:57

Previous topic - Next topic

imagazzell

Hi guys,

I'm interested in making a game with elements of both point-and-click adventure and visual novel games (somewhat Phoenix Wright-esque), and would appreciate feedback from those familiar with both programs whether I would be better served using AGS or Ren'Py to make it.

I've spent the last few years getting to know how to use AGS quite well, whereas I have no prior experience with Ren'Py or the Python programming language, which I'm not entirely against learning if it'd be more beneficial in the long-run.

Elements that I'll want in the game and other factors to consider:

1. HD resolution, which I know AGS can manage, but I believe is the native choice for Ren'Py.
2. Still character images during conversations with the text in an overlay band near the bottom, as seen in most visual novels.
3. Branching dialogue trees. I know these well in AGS, but am not sure if Ren'Py only allows singular-path dialogue.
4. Speech audio. Again, I am experienced with this in AGS, and I believe Ren'Py can do it too, though I don't know how easily.
5. An inventory system with items that can be picked up from the background.
6. Interactive background hotspots, which inventory items can be used on. Not sure if such functionality exists in Ren'Py.
7. Background music that changes with each room/background. Pretty sure this should be as easy to do in Ren'Py as it is in AGS.
8. If it turns out well enough, I'd like to release it on Steam and (if possible) get it ported to console(s) via a company like Ratalaika, who appears to port both AGS and Ren'Py games, but I'm not sure if one engine is easier/more compatible to port than the other.

Based on these points (and any others I may not have considered), I'd appreciate any input on how might be best to proceed. Thanks!
Music Composing Services: https://youtu.be/BbT3kfhgA4E

eri0o

I don't have experience with Ren'Py and my advice would be to play with it a bit.

About AGS, there is a person from the forums (that I forgot the username) that has a Fiverr entry for coding where I think you could get access to their Visual Novel template if you want to exchange money for time

Fiverr Tarnos VN Template 2
Fiverr Tarnos VN Template 3

Overall most of the work in an HD VN I think is the art and the writing.

I think for HD VN Ren'Py is the better tool.

If you are using AGS I highly recommend doing extensive use of the Tween module and learning to work with Overlays.

If you have the time I would recommend coming up with a small one room design, with art and small dialog and setting it up in both tools.

Crimson Wizard

One essential feature of VNs that you do not have in your list is the "history" of choices and ability to rewind the story back. I don't know if you need this or not, but thought I'd mention this.
AGS has no such feature built-in, and making one would require a good planning & scripting effort.
Ren'Py supports that out of the box, AFAIK.

Snarky

I've played around with Ren'Py a bit. If necessary, you can write Python modules to do anything you like, and there are also libraries and plugins, so pretty much anything is possible in the engine.

Ren'Py:
1. Yes, HD support out of the box, and will scale nicely to any screen. Supports jpeg and webp formats: when you're working in HD, image compression is important! You can also easily replace the resources for other platforms (for example, downscale or compress all the images to run on phones)
2. VN dialog display out of the box, with a default UI (that can be customized).
3. Branching dialog can be written easily, but some of the things that are inbuilt in the AGS system must be set up specifically (e.g. marking already-taken branches as read). There is out-of-the-box support for a conversation log and the ability for players to rewind dialog, choices and any other actions, though this feature can be disabled.
4. Yes, you can have speech, though I haven't played around with it. Out of the box, Ren'Py supports three different audio types: music, sfx and speech, and allows players to adjust their volumes separately. I'm not aware of any built-in features for speech animation or lip sync, but I wouldn't be surprised if there are modules for it. Edit: It also has text-to-speech voicing as an out-of-the-box accessibility feature, at least on some platforms.
5. Ren'Py doesn't come with an inventory system out of the box, but it's not difficult to write, and many Ren'Py games do have inventories. You can probably find examples or templates.
6. Yes, you can have background hotspots easily enough, but there isn't a room editor like in AGS, so AFAIK you have to define it in code by providing the coordinates of a polygon. Also, in my experience Ren'Py can be a little sluggish in recognizing mouseovers, which makes "pixel hunting" more frustrating. Using inventory items on hotspots is another feature you probably have to code yourself.
7. Yes, background music is easy enough.
8. I don't know about porting to console. Ren'Py will build for Windows, Mac, Linux, Android, iOS and Web out of the box (Web build is still in beta).

Other things that might be worth considering, particularly if you're going commercial, are:

9. Text display/fonts. Ren'Py lets you use any TrueType font at any size and variation. Font size, outlines, etc. can be adjusted on the fly, and different fonts can be mixed in the same textbox (I'm fairly sure). Fonts are always rendered at the best possible resolution for the screen. In AGS, things are a lot less flexible, and fonts are rendered at the game resolution.
10. Videos. AGS video support is just getting upgraded, but Ren'Py has better support for modern video formats and mixing videos with other graphics and effects.
11. Translations. Ren'Py has a feature to extract dialog and create translations, but I'm not sure exactly how it works.
12. Game updates. In Ren'Py you can update the game and saves from older version will still work (though if you make major changes, you might have to write a "converter" to update the savegame). In AGS, almost any change to the project breaks all existing saves.
13. Platform adaptation. Ren'Py lets you adjust the UI for different platforms/screen dimensions, and I think there are some templates or at least conventions for how to display VNs on phones. Though if your game includes a lot of point-and-click elements, these adaptations may not work so well.

Overall, I think Ren'Py is probably a better option for you. The main factor is how well it handles HD and scaling, both for graphics and text. AGS is still very much a "stuck with one resolution" engine. And if you want the rewind capability Crimson Wizard mentioned, Ren'Py is definitely a better bet, since something like that is painful to implement in AGS. Nothing of what you mention should be a huge problem to do in Ren'Py, though a couple of things might be a little less convenient than it would be in AGS.

As for coding, the Ren'Py scripting language is very easy to pick up, and you don't need to know Python to get started (though once you get going you will probably run into cases where you have to write snippets of Python code). Of course, there is a bit of a learning curve for the engine, but I found it easier than other non-AGS engines I've tried.

Crimson Wizard

#4
Quote from: Snarky on Thu 21/03/2024 06:41:0812. Game updates. In Ren'Py you can update the game and saves from older version will still work (though if you make major changes, you might have to write a "converter" to update the savegame). In AGS, almost any change to the project breaks all existing saves.

With VN game, I suppose, you should be better scripting your own save system in AGS.

EDIT: actually, I think that VN makes it easier to write your custom save format, compared to a classic p&c game.

mkennedy

The game "Occult Crime Police" on Steam was made with Ren'Py so you may want to check it out to see what all Ren'Py can do.

imagazzell

Thank you for the great responses!

I'll poke around in the Ren'Py forum a bit to try to see how difficult it would be to do the things more native to AGS.
Music Composing Services: https://youtu.be/BbT3kfhgA4E

imagazzell

#7
At this point, I'm basically weighing whether it would be easier to figure out how to do the dialogue format in AGS or learn a new scripting language and figure out how to do a point-and-click style inventory in Ren'Py.

If I did want to try to do it in AGS, what would be the most efficient method of doing this type of dialogue formatting?



Obviously GUI elements for the text backgrounds. But what about the placement of all characters' dialogue in the lower box? I feel like SayAt for every instance would be a bit clunky. Perhaps a custom Say-type function that assigns the dialogue to labels on the GUI would be more elegant? But then, would I still be able to call speech audio from the speech folder that way? With Game.PlayVoiceClip, I suppose?

I'm curious how you more skilled folks would approach this.

PS: Ignore the stuff at the very bottom. A dialogue history/rewind feature isn't really crucial to me.
Music Composing Services: https://youtu.be/BbT3kfhgA4E

Snarky

For the text window: A GUI with labels for the text.
For the option buttons: A GUI with buttons. (But if the button text sometimes wraps across multiple lines, you'll need to use a label instead.)

If your game is a hybrid point-and-click where characters will also walk around on the screen, you may also want to use a GUI and button to display their closeup speech view, just so that positioning that closeup doesn't interfere with their normal position. (That's what I did when I was trying something similar.)


SMF spam blocked by CleanTalk