No video

🎮 Ren'py RPG Combat Engine! 🎮

  Рет қаралды 75,729

Visual Novel Design

Visual Novel Design

Күн бұрын

This tutorial shows how to build a turn based combat engine directly in Ren'py, from a simple setup for beginners, to a robust system with multiple party members, weakness/resistances, and a basic magic system!
Download the Code Here:
github.com/Vim...
Ren'py Images + Action Editor Tutorial:
• Ren'py Images and Acti...
Ren'py Screens Tutorial:
• Ren'py Screens Tutorial
00:00 Simple RPG Fight!
01:52 A Graphical Upgrade
03:59 Randomized Combat
06:29 All the Extras!
12:37 Forget everything you know about this tutorial...
13:23 Object Oriented Programming Primer!

Пікірлер: 219
@hopeeverest
@hopeeverest 2 жыл бұрын
Now we're one step closer to creating fun RPG games WITHIN a visual novel!
@vimi
@vimi 2 жыл бұрын
THE DAY OF PROPHECY!
@user-cm2np9mf6j
@user-cm2np9mf6j Жыл бұрын
Man, I can't belive how underrated you are. Your videos are so well made and extreeeemly helpful. I assume it's because of the small renpy community, you're one of the only good ren'py creators, I would even go as far and call you THE best renpy tutor. I'm so thankful for your videos!!!
@vimi
@vimi Жыл бұрын
Thank you!
@nihilistick
@nihilistick Жыл бұрын
@@vimi He is indeed correct! You're unbelievably small in comparison to the level of professionalism you put up in your videos. Keep it up and you'll grow in no time!
@vimi
@vimi Жыл бұрын
@@nihilistick Thanks! I'll try!
@alexanderbean7737
@alexanderbean7737 Жыл бұрын
I cannot BELIEVE how perfect this tutorial is. I figured having combat elements in my visual novel was a pipe dream because of my n00b level skills but now I'm going to pursue it. Thank you!
@dwaynejohnson5586
@dwaynejohnson5586 Жыл бұрын
Yes me too!!!
@servlet5374
@servlet5374 2 жыл бұрын
Although I already know how to do this, its still so nice to see that you're covering it in barebones. Some people who're new to this might find it very challenging to pursue this kind of game mechanic but your explanation definitely paints a clear picture of how the logic works. Well done good sir!
@vimi
@vimi 2 жыл бұрын
Thanks!
@sohlasattelite971
@sohlasattelite971 3 ай бұрын
Same. While i have enough programming knowledge to code pretty much anything i would want it was mindblowing how a simple back-and-forth mechanics got visually stimulating and entertaining with addition of the camera changes and basic animations. Good food for thought.
@jewelvang8242
@jewelvang8242 Жыл бұрын
RENPY HAS A 3D Thing NOW?!? HOLY IM BEHIND IM MOVING BACK YO REN PY
@jmh6559
@jmh6559 Жыл бұрын
This, This is exactly what I always wondered about the potentials of Ren'py. This video just fried away all of my concerns about the limitaions of Ren'py and I finally got my decision to choice of which game making tools to use. I really appreciate you to make this video.
@vimi
@vimi Жыл бұрын
No problem!
@ghosterntt7183
@ghosterntt7183 2 жыл бұрын
This is awesome! I watched lots of tutorials, but it's a struggle for me to understand coding, I can see people building blocks but never quite understand the principle behind it. This video finally made me understand all those tricky code names. I didn't see before but they are actually class variable changings. I'm really bad at coding, sometimes I can't even understand why I should code like this or that. So it's awesome to finally find a tutorial willing to take a noobie's hand. I would love to see your tutorials about inventory, and more stuff about basic coding!
@vimi
@vimi 2 жыл бұрын
The inventory video is in the works! I'll be highlighting a drag and drop inventory system somebody has already built and shared, but I'll also break down what goes into an "inventory system", so hopefully nobody builds a gargantuan system for a game that really only requires a little flag! In the meantime, my Day/Night Cycle video covers some other variations on loops, and if you check out my Ren'py Cookbook series, I show how you can at least delve into code other people have written, and adapt it for your needs!
@limondaes
@limondaes 2 жыл бұрын
Ohhhhh my God, I am SO happy about this video. I know Ren'py isn't really for making complex turn-based games, but I love seeing how far its functionality can stretch. I'm currently studying Python on its own, so I'm super excited about learning more about Python in relation to Ren'py! Thank you! 🙏 RIP to the canaries, lol.
@vimi
@vimi 2 жыл бұрын
There's so much weird, cool stuff you can do with Ren'py, and I'm never going to do even a fraction of what it's capable of doing on this channel! All I can hope for is that I'm giving devs the tools and knowledge to make newer, weirder visual novels.
@limondaes
@limondaes 2 жыл бұрын
@@vimi You are doing an excellent service, my friend. ✨️
@SPkiller31
@SPkiller31 2 жыл бұрын
There are probably too many words I wan't to say so I will limit myself to just: Thank you. Really, those tutorials, this whole channel is God-sent for people who want to work with RenPy. I started some time ago, creating my first game and basic Renpy stuff is very simple, after all you just write for most part. But things like night/day cycle or timers on choice are such a nice addition. Thank you again and wishing you all best for dedication to this niche but beatiful engine.
@vimi
@vimi 2 жыл бұрын
Aw, thank you so much!
@MaybePlato
@MaybePlato Жыл бұрын
Somehow I've just found you despite messing around with renpy for 2 years. Awesome tutorial. It's always nice to see how other devs do things.
@vimi
@vimi Жыл бұрын
❤❤❤
@eunicehan5380
@eunicehan5380 2 жыл бұрын
Thank you for posting this Vimis :) I really appreciate all your tutorials, they help me learn a lot!
@vimi
@vimi 2 жыл бұрын
I'm glad to be of service!
@DJaycerOfficial
@DJaycerOfficial Ай бұрын
In my RPG (which is being made in game maker) there’s a huge elements/effects system I’ve implemented. For starters, you have your basic element stuff which does what you expect them to do. Using spells can guarantee effects based on the element of its user. Then you have the weirder side of it which is the hardcode functions. If I want a certain enemy to have a constant damage multiplier against everyone, then they will get this hardcode functionality, which ignores all element checks. Then I check for if both the enemy and attacker are elemental, if the attacker is and the enemy isn’t, if the enemy is and the attacker isn’t, or if both aren’t elemental. That check gets run 4 separate times, each changing the damage value by a percentage. For case 1, (both elemental) damage is reduced by 5%, for case 2, damage is increased by 5%, for case 3, damage is reduced by 5%, and for the final case there is no change. This check gets run on the base elements of the attacker and the enemy, then on the weapon’s element and the enemy, then on the weapons element and the enemy’s armor. Also weapons with elements can stack onto effects during spells so if you have say fire on an electric elemental, you do “charge” as the effect. All of this is to say I put a lot of thought into my elements system because the whole premise of the game is elements. Everything gets taken into account. (Also magic defense will decrease damage taken significantly more than basic armor points. 1 magic point is 0.3 reduction and 1 armor point is 0.142856… reduction.)
@yannickchristianmuller214
@yannickchristianmuller214 2 жыл бұрын
The bird spoke: "I want Jiggle physics"🤣
@Fahrenheit451.
@Fahrenheit451. 11 ай бұрын
Just discovered your channel recently and love your videos.
@vimi
@vimi 11 ай бұрын
Glad you like them!
@samueleprencipe7310
@samueleprencipe7310 Ай бұрын
I’m new to game making and still learning Godot. But man being that GDScript is very similar to python I can now understand how to implement those things. Thank you so much!
@Darlnezz
@Darlnezz 2 жыл бұрын
Just found you today, not coded or written in Ren'Py for 2 years and your tutorials would been a godsend back then. There is one thing I looked at your videos and wondered if maybe you could potentially take time with and that is Layered Images. I remember having a really tough time figuring out how that works. It is also supposed to be useful for individual animations such as "eyes" or etc. I think you could really help people figure that one out with how well you explain and showcase stuff!
@vimi
@vimi 2 жыл бұрын
The toughest part about a Layered Images tutorial is just grabbing some files that can work for layered images! I just talked with a fellow dev, Ari, who is nice enough to loan me some of her art, so I can get started on that pretty soon!
@Darlnezz
@Darlnezz 2 жыл бұрын
@@vimi that would be really awesum! Keep up the amazing work!
@Zero0Zero0000
@Zero0Zero0000 Жыл бұрын
Damn, I just found your channel today and I'm loving it! Can't wait for the inventory video and I would love to see more parts on this fighting system to see just how complex it could get (rip canaries)
@issacthompson330
@issacthompson330 Жыл бұрын
Renpy has classes? Good to know. As someone more used to unity but likely to make visual novels in the future it will come in handy.
@mrdarkcat3892
@mrdarkcat3892 Жыл бұрын
Maybe this isn't a big deal now, but remember, Twice Devil Studios Team watched your videos to improve ours visual novels level, thank you so much for your videos and keep working on this, you have a bright future 💯💭
@keyzack
@keyzack 2 жыл бұрын
Best content creator Game dev/Visual novel/ RenPy related 🙏❤️ please keep the wonderful job. Hope your Patreon starts growing big!
@loudiamonds5888
@loudiamonds5888 Жыл бұрын
I thoroughly enjoyed this, thanks. I'm currently building a card-style combat system from scratch and I could really use the novice version of this video.
@louispaul4668
@louispaul4668 2 жыл бұрын
The only tutorial i was looking for! you made soooo much SUPER HELPFUL renpy tutorial ngl! i love how you explain the code aswell, thank you so much !
@vimi
@vimi 2 жыл бұрын
I'm glad I could help!
@louispaul4668
@louispaul4668 2 жыл бұрын
@@vimi please consider the jiggle physics code XDD
@master11050
@master11050 2 жыл бұрын
Great video! On minor nitpick is at 5:46 is that a d20 rolling 19-20 is a 10% chance, not a 20% one. So your skeleton really has a 10% chance of wild attack, 10% chance of heal and an 80% of normal attack. By the way, I'm really happy to find this channel. I've been playing D&D for years and wanted to try making Visual Novels inspired by Tabletop RPGs so finding your videos is really helpful, especially this one about implementing a combat system.
@vimi
@vimi 2 жыл бұрын
D'oh! Regarding the tabletop thing, I am also a big TTRPG fan, and I have a video in the works that you might be interested in, in the semi-near future :)
@kaczybut6257
@kaczybut6257 Жыл бұрын
im so happy that i started working with basics in renpy so now i know that it's actually easy stuff
@animatingtherealm1683
@animatingtherealm1683 Жыл бұрын
I’d be very interested in an in-depth Pokemon combat tutorial on RenPy
@melissam6931
@melissam6931 Жыл бұрын
Great Tutorial thanks! I was able to make a simple turn based battle mini game and had it work how I wanted thanks to your guide + a bit of experimenting on my part
@vimi
@vimi Жыл бұрын
I'm glad you got the chance to build something like this in your own game! Great Job!
@miserablepumpkin9453
@miserablepumpkin9453 2 жыл бұрын
This was super helpful and I'm hyped about the next batch of episodes! Also on a slightly unrelated note, if anyone in these comments wants to make a huge rpg game, Ren'py might not be the best engine for that...you're welcome to try, though
@vimi
@vimi 2 жыл бұрын
It's a very related note!
@ZiaSatazaki
@ZiaSatazaki 2 жыл бұрын
Doing it in Ren'py is largely if you want to have a robust storytelling system for all your story scene content, and then want to just kind of treat it like middleware for all the more interactive parts (and, importantly, if you want to do a lot of rolling-your-own regardless! RPG Maker and the like make a lot of assumptions about what you want to do; most of them are "safe" assumptions, but assumptions nonetheless)
@sensmediaweb
@sensmediaweb 2 жыл бұрын
Just Subbed mate. Thank you very much for the love into RenPy!
@vimi
@vimi 2 жыл бұрын
@brunoais
@brunoais Жыл бұрын
14:30: That class is still procedural. Just using classes doesn't change code from being procedural or object-oriented. In order to make that, you need to make use of methods, multipluralism (different classes that can be used the same way) and possibly concrete inheritance (instead of just interfaces)
@misozio
@misozio Жыл бұрын
とても参考になりました。ありがとうございます。That was really helpful. Thanks a lot!😀
@NeonKix
@NeonKix 2 ай бұрын
Damnit... the birb intro bit got me... Laughed My Dumb Cloaca Off.
@vimi
@vimi 2 ай бұрын
I bought a six pack of those birds, thinking it'd be my "thing".
@entevirtual
@entevirtual 2 жыл бұрын
$ explosion = 0 $ bird = explode If bird == explode: $ explosion += 1
@vimi
@vimi 2 жыл бұрын
you get it
@shaynsnyolo
@shaynsnyolo 2 жыл бұрын
I will watch this video 6000 times so it gets to 10k tomorrow aaaaaaa
@vimi
@vimi 2 жыл бұрын
🙏
@clayjar7636
@clayjar7636 Жыл бұрын
I am looking forward to the inventory video!
@vimi
@vimi Жыл бұрын
I'm slowly plugging away at it!
@kittygardenva2741
@kittygardenva2741 2 жыл бұрын
It's like the insult fights from Monkey Island all over again!
@vimi
@vimi 2 жыл бұрын
and AGAIN and AGAIN and AGAIN until everyone knows how awesome that combat system was!!!
@cronicasdeeberron8782
@cronicasdeeberron8782 Жыл бұрын
Hi! First of all: THANK YOU. This series has been a life saver for me. Little question/request, though: I DO get a LOT lost at the process around 2:15 where you talk about layers and camera angles/depth, and the video where you tackle how to use the Action Editor doesn't really cover how to manage the 3D enviroment (or even how to access it, since it's disabled by default). Would it even be possible to have a video of you explaining HOW do you actually manage this? It's crazy hard to fiddle around with your code and not to mess everything up with any slight adjustment. And, of course: THANKS AGAIN. You're great.
@vimi
@vimi Жыл бұрын
I think "camera: perspective True" turns on most of the 3d functionality, and from there, the action editor's "3d" category should handle most of complicated stuff. From there, it's just a LOT of really finicky adjustments to get things where you need them to be, and adjusting the camera itself to be at an angle where you can see things from the right angle. But yeah, I'm probably due for another Action Editor Video :) www.renpy.org/doc/html/3dstage.html#using-the-3d-stage
@cronicasdeeberron8782
@cronicasdeeberron8782 Жыл бұрын
@@vimi Thank you so much! Let me tell you that it's refreshing to see the level of commitment that you have with your audience. We all greatly appreciate it, and your fantastic work.
@vimi
@vimi Жыл бұрын
@@cronicasdeeberron8782 Thank you very much for your kind words! It really means a lot!
@lucieolantern4204
@lucieolantern4204 2 жыл бұрын
YEEEEEEEAH BABY THIS IS WHAT I’VE BEEN WAITING FOR!!!!!!!!
@vimi
@vimi 2 жыл бұрын
LET'S GOOOOOOO!!!
@jinzolaamenazadelamaquina8287
@jinzolaamenazadelamaquina8287 2 жыл бұрын
I have so much trouble with this! Thank you so much for the vid! It means a ton.
@vimi
@vimi 2 жыл бұрын
Happy to be of service!
@lildog5360
@lildog5360 2 жыл бұрын
you deserve a like and sub for that thumbnail alone haha love it!
@vimi
@vimi 2 жыл бұрын
my thumbnail game is STRONG
@Proceleon
@Proceleon 2 жыл бұрын
Ah yes, a canary of culture.
@vimi
@vimi 2 жыл бұрын
I think I'm gonna keep it on my head. It feels right.
@FelixTheAnimator
@FelixTheAnimator 2 жыл бұрын
F for all the lost birdies out there.
@vimi
@vimi 2 жыл бұрын
F
@5naf_plushies482
@5naf_plushies482 2 жыл бұрын
Pretty neat! I might end up using a system like this in my games. Also poor birds lol
@vimi
@vimi 2 жыл бұрын
All of the birds were just ONE day from retirement, too...
@LEFF-NUT
@LEFF-NUT 2 жыл бұрын
This… satisfies me
@vimi
@vimi 2 жыл бұрын
😃
@user-yp5di7xx6y
@user-yp5di7xx6y 2 жыл бұрын
Thank you, the topic is important and the explanation is very simple
@vimi
@vimi 2 жыл бұрын
I'm glad I managed to pare down this very complicated topic into something manageable!
@brunoandrade5957
@brunoandrade5957 3 ай бұрын
Amaziiiiiiiiiiiiiiiiiiiiiiiiing!!!! OMG!
@alexsan305
@alexsan305 Жыл бұрын
dang, thank you so much man! you escapes me from my suffering :,D.
@vimi
@vimi Жыл бұрын
i'll throw you a rope anytime, buddy
@huynhvubaonhan6158
@huynhvubaonhan6158 2 жыл бұрын
How about fight scene with jiggle physics?
@vimi
@vimi 2 жыл бұрын
no thank you
@user-yz2og8dp5k
@user-yz2og8dp5k Жыл бұрын
that bird speak for me Ps: thanks for the great video
@matsu1140
@matsu1140 2 жыл бұрын
So when it comes to classes, do you just create them all within the script and set conditions that trigger them in the script as well. Still new to RenPy and having everything on "one page" is just crazy. Must be a nightmare to organize.
@vimi
@vimi 2 жыл бұрын
Ren'oy will parse through every .rpy file to find every label/class/definition/variable it needs to, so feel free to make as many new .rpy files as you need to best organize your game! I'll have a sheet of predefined images, variables, and classes; a sheet for every major chapter of my game; a separate sheet for each major module I build for my game; and my script.rpy file usually will be a short snippet of code that references out to all the modules on all those other sheets.
@matsu1140
@matsu1140 2 жыл бұрын
@@vimi That makes more sense. Thank you!
@Dizzydizzydizzy7
@Dizzydizzydizzy7 2 жыл бұрын
Great video as always
@vimi
@vimi 2 жыл бұрын
I'm still working hard at them 😤
@sirifys-al
@sirifys-al 2 ай бұрын
Really cool and helpful tutorial, I finally made my battle system good enough. I have only one question: WHAT IS THIS SUPER CONVENIENT 3D STAGE EDITOR? Is it something built-in?
@vimi
@vimi 2 ай бұрын
Watch my video on it here: kzfaq.info/get/bejne/gdWJi92DqqzcZHU.html
@sirifys-al
@sirifys-al 2 ай бұрын
@@vimi oh, so it's Ren'Py action editor? I saw that video, but probably missed that part about 3D...
@vimi
@vimi 2 ай бұрын
@@sirifys-al It's towards the end - if you vary the placement of several items in the z-axis, that's what it'll look like on screen.
@lugotorix6911
@lugotorix6911 2 жыл бұрын
Thanks for the tutorial, can you give some information about multi-language support sometime?
@vimi
@vimi 2 жыл бұрын
Yes!
@watchandlearnLboard
@watchandlearnLboard Жыл бұрын
I've been working on a renpy game for 2 years now (no prior knowledge) and this video is the FIRST I'm seeing about 3d renpy stuff, do you have video / referral for that type of stuff? it looks SO COOL
@vimi
@vimi Жыл бұрын
Yup! You can check out my Ren'py Action Editor video over here: kzfaq.info/get/bejne/gdWJi92DqqzcZHU.html
@watchandlearnLboard
@watchandlearnLboard Жыл бұрын
@@vimi my mind is blown, I absolutely love your renpy videos. thaNK YOU
@angeldutchess2996
@angeldutchess2996 2 жыл бұрын
Thank yooou- this is so helpful! ps: do you think you can cover quick time events in an action scene in the future?
@vimi
@vimi 2 жыл бұрын
You'll want to watch my "Timed Choices" video! Instead of a visible timer and some choices, you'll want to replace it with a custom screen overlay that prompts the user for the inputs you need from them, and whatever visual spice you want to add!
@angeldutchess2996
@angeldutchess2996 2 жыл бұрын
@@vimi Oh! That makes sense! Thank yooou!🙂
@anpucamilla
@anpucamilla 2 жыл бұрын
Correct me if I'm wrong, but wouldn't the OOP solution presented in this video break with rollback? I was using it as a reference for a game jam project I'm working on, and it seemed like if I made a call to damage a character the changed hit points would persist beyond rollback (and beyond the point of saving and loading, until I closed and re-opened the game), meaning I could damage a character repeatedly just by going back and forth between two lines. Regardless, loved the video! I've been watching your videos for a while and it's been very helpful and entertaining as a ren'py newbie.
@keyzack
@keyzack 2 жыл бұрын
In this case I would recommend to disable "rollback" function when these kind of mechanics are involved
@EriksBlue
@EriksBlue 2 жыл бұрын
Excellent video as always
@vimi
@vimi 2 жыл бұрын
I try my best!
@duckcluck123
@duckcluck123 2 жыл бұрын
Commenting for the algorithm
@vimi
@vimi 2 жыл бұрын
I already made a goat sacrifice for the algorithm, so hopefully I'm already covered
@peterxyz3541
@peterxyz3541 Жыл бұрын
Thanks! You’re saving my life (slight exaggeration but I am ready to die if I don’t chase my dream, quit my day job)
@vimi
@vimi Жыл бұрын
Keep chasing that dream!!!
@RH-zb4fu
@RH-zb4fu Жыл бұрын
Really good stuff, keep it up :)
@watchandlearnLboard
@watchandlearnLboard Жыл бұрын
quick question about the gameplay shown at 2:45, how do you make it move smoothly between two moving camera shots? i have a camera transform that's constantly moving, and im trying to get a smooth move from that to another camera angle, but it's scuffed every time.
@vimi
@vimi Жыл бұрын
If you start the camera with an ease, it will move the camera from whatever position it's currently at to the new transform that you just wrote. If you look at the code, "label camera_playerattack" covers that. I didn't use that a lot though! I find it a lot easier to do quick camera cuts before quick action!
@RikardRynoson
@RikardRynoson 2 жыл бұрын
Awesome stuff! Thanks a lot.
@vimi
@vimi 2 жыл бұрын
You're welcome!
@eleyaculadordelaverno1502
@eleyaculadordelaverno1502 Жыл бұрын
Great video Friend!
@SOLOM0N
@SOLOM0N Жыл бұрын
Thank you so much for all the effort you put in your tutorials! I have a question, do you know if you can add game borders in Ren'py? Like the PC-98 ones?
@vimi
@vimi Жыл бұрын
Can you link to an example of what you mean?
@drawingkhaganate
@drawingkhaganate Жыл бұрын
I have two questions for you. 1) If I want to make a space game in renpy, how can I do it? 2) Can we transfer the python output of a game we made in Microsoft Makecode to renpy?
@TrueMonkeyNinja
@TrueMonkeyNinja 11 ай бұрын
Awhile ago I saw a snippet of a Renpy example you had I think of the character able to move in a side scroller, and a tutorial was going to be made for that (I think). Do you know which video this could be of yours? It wasn’t released yet at the time I think. Unless the Renpy action editor will discuss this. Or this battle one does xD I mostly just wanted to see how to walk around in the vn and try it out!
@vimi
@vimi 11 ай бұрын
I ended up dropping it - I could never get it to "feel" right when controlling a character. I might revisit it later on.
@marc13bautista
@marc13bautista 10 ай бұрын
@vimi ​ Please do cover this. I really wanna do a sidescroller type of thing in Ren'Py- much like the game Kingdom Two Crowns (2.5D) or- a combat system like Autumn War (flash game). I REALLY wanna do a fun combat system that still sticks with Ren'Py's visual novel functionality (as I don't wanna go through the hassle of learning another game engine... and building vn functionalities there from scratch or $$$). Cool new stuff like maybe motion parallax and I think you covered editing scenes in Ren'Py 3d space (with sprite locations closer or further from the literal background) methods could be used in conjunction with what's covered with this video? This RPG Maker youtuber sort of covers this for the RPG Maker Engine in their own process, although I'm wishing for a Ren'Py version. Maybe even utilizing the call functions to transition between maps and such. That'd be amazing. www.youtube.com/@sidemv kzfaq.info/get/bejne/Z9Bho8ecmtiymZc.htmlsi=DkrZrfFGP1oxJD1G&t=129 Hope you cover something so amazing to kickstart my passion for Ren'Py combat+VN hybrid game making with such a video.
@TrueMonkeyNinja
@TrueMonkeyNinja 10 ай бұрын
@@vimi Ah, I see! If you do revisit it, please definitely do release a video!
@ewaineee
@ewaineee 2 жыл бұрын
Is it possible to develop type racing using renpy?
@vimi
@vimi 2 жыл бұрын
Yes, but "possible" is a very different word than "feasible" or "advisable".
@ivanfoxxd4041
@ivanfoxxd4041 6 ай бұрын
Just a quiestion, all of that code is made on separated scripts, or can be together in one?
@vimi
@vimi 6 ай бұрын
Either - Ren'py will parse your project for all .rpy files, so you can split your ren'py code into as many .rpy files as you want. I tend to split my code into different sheets depending on what makes sense to me for that particular functionality, or different large sections of narrative.
@tjreed7797
@tjreed7797 4 ай бұрын
I've been thinking about turning a project of mine into a visual/kinetic novel but I'm having trouble figuring out what sort of combat system I want to include. ATM I know I don't want to include a rpg like gear and leveling system since they seem like a hassle and I do want to include comic panel scenes with the combat system. Actually, as I'm typing this, I just thought that I could have the player select a panel to react and attack the enemy.
@JohnSmith-xq1pz
@JohnSmith-xq1pz Жыл бұрын
Question Is it possible to add a formula modifier that would rely on a number based on your choices doing the story? Each choose would have a point value something like this Choice a -2 Choice b -1 Choice c 0 Choice d +1 Choice e +2
@vimi
@vimi Жыл бұрын
Yup! Lots of different ways to do it! www.renpy.org/doc/html/python.html
@JohnSmith-xq1pz
@JohnSmith-xq1pz Жыл бұрын
@@vimi excellent, Thank you 👍
@stawalahwun
@stawalahwun 6 ай бұрын
I know this is an old vid, but I tried to follow through this on an exercise and ran into something I didn't know how to find the answer to. When you've designed your fighter/combatant/character, whatever- Class. You use it to streamline stats and everything. But *how* do you make it so that for your battle loop, you can call which object/instance of that class as you need it? Like in the middle of the video you programmed that block of text of "if enemy_element == etc" then "$ enemy_(etc)_hp -= value" That's basically like, coding a variable for each enemy in your class. But is it possible to make like, a variable be "target" or something- so that you wouldn't have to code the numerous variables for each enemy? I tried to do like, ren'py simplified code $ target = "ghoul", and then $ [target].hp -= damage. But you can't combine ren'py streamlining with python code. Anyway! This video was great, really inspiring and led to lots of googling and experimenting. :D
@vimi
@vimi 6 ай бұрын
Yeah, there's a lot of ways to do that, but I didn't want to get too into the weeds with Python classes and how they're used; I just wanted to touch on the general concept of what they are. Creating an actual, robust RPG fight system in Ren'py is pretty elaborate, and there are limitless ways you can structure them dependent on your needs. You can create a series of temporary variables that pull info from called out class functions on at a time, or create new class objects from scratch with every combat, or create a series of pre-defined encounters that minimize the unique variables needed. Take the time to think stuff out step by step, and try to write psuedo code to think of how you can structure what you know together, to create something that functions close to how you want it. Even if I tell you a solution, it might not be what you are looking for, or need! (for example, if I wanted to create a more elaborate version of this RPG fight code, I'd make four enemies, "enemy1, enemy2, enemy3, and enemy4", that can be populated with all the class variables of whatever enemies I call from a long list of class objects, including images I can define in the objects. The player is always fighting the "same" four enemies, but they'll always have stats and appearances according to how I define them, and if they fight less than four enemies, any enemies I define as "none" will simply never have their turn. Simple!)
@stawalahwun
@stawalahwun 6 ай бұрын
Thank you so much for the reply! Your videos are really good at getting one inspired and on a path to practice, without just hammering out a "here's how you do it" that's rigid and inflexible. Even just the notion of temporary variables that pull from classes has me realizing I have to think more about this!
@deethanyter7324
@deethanyter7324 3 ай бұрын
nice tut
@antymatery
@antymatery 3 күн бұрын
Hi! I downloaded the sample code but had hard time trying to make it work. Could you, by any chance, help with that? I'm not a good programmer so I can't really build on top of this, but as I have it right now, it doesn't work at all. The game refuses to launch even
@vimi
@vimi 3 күн бұрын
I didn't even want to share the code, honestly, but people kept asking for it, even after I told them "it will not work". The top commented lines of code explicitly say "this code will not work". I knew everyone had their own ideas of how an rpg fight engine should operate, so I made the focus of the video on taking a simple, central game loop, and then building on it over time. I'd recommend doing the same thing; do not use this to build on top of, use it as reference for building your own combat engine from scratch.
@antymatery
@antymatery 3 күн бұрын
​@@vimi Oh, I spent this entire day working on this and completely forgot about this comment('^w^). I actually change a bunch of things in this but building on top of it still and managed to get this to work pretty well. I want to expand on this later on and I think I am somewhat able to do that, cause it turned out easier than I thought at first. I really understand why you didn't want to share it, but in the end even tho I changed a lot already, it really made it easier for me^^ I have only a few issues I don't yet know how to solve. 1. When I launch the game it completely ignores all the dialogues before the fight and goes straight to it. 2. When after the fight I go back to dialogues they appear, but the camera is completely broken. 3. When I try to add a custom health bar it gets cut in half (the bottom half) and I can't get why But really, this code helped me a lot and your videos are really helpful in general. I don't know how I would start this project without it^^
@dirtmonkeyal
@dirtmonkeyal Ай бұрын
Do what the birb says.
@Pawlo370
@Pawlo370 2 жыл бұрын
Is this possible to create minecraft in renpy?
@vimi
@vimi 2 жыл бұрын
No.
@samanthamontoya9670
@samanthamontoya9670 Жыл бұрын
If I want to add a move like regeneration for my character to heal up how should I do it? I've been trying for days
@vimi
@vimi Жыл бұрын
One way to do it is to have a variable that just says if a character has points in regeneration, and every turn, you'd want to check for that variable for that character. A regeneration check like this would be put in before every turn: if char1_regeneration >= 1: $ char1_health += [number of health points you want to add] $ char1_regeneration -= 1 And the actual move would just give you some points in regeneration, plus maybe an initial health boost. There are a few other ways to do it, but this is probably the easiest to understand!
@samanthamontoya9670
@samanthamontoya9670 Жыл бұрын
@@vimi Thank you very much!! You're awesome!
@SeongCastle
@SeongCastle 2 жыл бұрын
This is SO useful!!Thank you very much!!! PS: Do you think it'd be possible to create a SRPG (Ala Fire Emblem/Final Fantasy Tactics) engine using Ren'py?
@vimi
@vimi Жыл бұрын
Yes, but you're gonna have to reinvent the wheel when it comes to unit placement! It's honestly a LOT easier and faster to find an engine built in Unity or other game engine than to build it in Ren'py!
@depotemkin
@depotemkin Жыл бұрын
Выглядит действительно круто
@imtrappedinmydadsbasement
@imtrappedinmydadsbasement Жыл бұрын
i want to make a pokemon esque vn, and this video is perfect for it, i just wanna know how to make a party system like pokemon? where you can switch out each character that has its own moves and stats and also for the opposing team to make different moves? do i just call the dice roll screen for the enemy and make the percentages and stuff?
@VoltitanDev
@VoltitanDev Жыл бұрын
Thanks for the tips definetly using this for Voltitan Vol.2's update.
@kiindogames
@kiindogames 2 жыл бұрын
Could you create a tutorial on how to make a navigation screen?
@vimi
@vimi 2 жыл бұрын
Probably at some point, but that can mean a lot of different things! When people are looking up "Ren'py Navigation Screen", would it refer to a map with clickable icons or areas? Is it Myst-style rotation and movement? Can it just be a list of areas you can select from? I'll likely tackle all of these at some point (My Day/Night cycle video already covers the "choose from a list of locations" type of navigation), but each of them have very different requirements!
@kiindogames
@kiindogames 2 жыл бұрын
@@vimi By navigation screen I am particularly looking for a way to create a menu to switch to different locations at any given moment, similar to Ace Attorney where you can go to crime scenes and visit/question your clients
@vimi
@vimi 2 жыл бұрын
@@kiindogames I cover that in my day/night cycle video. kzfaq.info/get/bejne/o8VdhdeE0aulnXU.html
@kiindogames
@kiindogames 2 жыл бұрын
Thanks!
@brooketraver250
@brooketraver250 Жыл бұрын
Question, You talk about adding classes, I see that part in the code you link, but how do you then add that into the RPG mechanics code. What code is needed so those variables translate into stats??
@vimi
@vimi Жыл бұрын
That's what I explain at 15:20: once you set up a class, you can define an object using that class, and then when you need to make any value adjustments to the class attributes of that object, you can treat it like any other variable with the naming convention [objectname].[attributename] - I used p1.hp to refer to the hp value of the first player character, for instance.
@brooketraver250
@brooketraver250 Жыл бұрын
@@vimi thank you. Something wasn't clicking in my head at first but rewatching that part, I think I got it now. Thank you again
@KiNASuki
@KiNASuki Жыл бұрын
I'm that canary!
@systarth
@systarth 7 ай бұрын
I get an error saying "name 'player_max_hp' is not defined", can someone please help?
@vimi
@vimi 7 ай бұрын
It sounds like you didn't define the variable before it was called. Try going through your own code and make sure you understand the overall flow, so you can think of where you may have possible errors.
@systarth
@systarth 7 ай бұрын
@@vimi i put a default value for player_max_hp and enemy_max_hp and that fixed it. Thank you so much for this amazing tutorial, now I can implement some fun little minigames in my VN!
@rogerbaker9353
@rogerbaker9353 Ай бұрын
This is cool, but how do we throw in classes and skills?
@rogerbaker9353
@rogerbaker9353 Ай бұрын
okay, so 14 hours and one hyperfocus session later, classes and lists, not so bad. skills and items are pretty similar programming wise. still working out initiative and turn order. the video's code was good for checking that I structured my classes right. working on getting the battles ready so I reuse and recycle the label. got any ideas?
@rogerbaker9353
@rogerbaker9353 Ай бұрын
actually, what's stopping from using classes in your code example Visual Novel Design?
@TheSmsm16
@TheSmsm16 11 ай бұрын
here after unity last announcement lol
@vimi
@vimi 11 ай бұрын
I will say the tweets have been delicious. Tons of hot goss with my fellow game devs. Bunch of Phaser devs at my day job have been walking around with puffed out chests. Exciting times!
@Heksapoda
@Heksapoda Жыл бұрын
Hope there are section where the last part are more in depth. Since I don't like the look of earlier part code, like, ew.
@seiikei
@seiikei 10 ай бұрын
Could there be a healing system?
@vimi
@vimi 10 ай бұрын
Yeah! There just needs to be an action that adds to an HP total.
@seiikei
@seiikei 10 ай бұрын
@@vimi could we get a tutorial on that?
@MxVerdaArt
@MxVerdaArt 8 ай бұрын
Ok but how do I recreate Wizardry: Tale of the Forsaken Land? Is Ren'Py beter or RPG Maker?
@vimi
@vimi 8 ай бұрын
I'd recommend RPG maker over Ren'py.
@MxVerdaArt
@MxVerdaArt 8 ай бұрын
Yeah, makes sense. I think I was half-asleep when I wrote that question @@vimi
@embi3182
@embi3182 Жыл бұрын
thank you! Do you know how to put in app purchase consumables with renpy?
@vimi
@vimi Жыл бұрын
Not well enough to make a video on it! Ren'py supports unlockable in-app purchases, but I think getting an app purchase consumable system integrated in your game would take some work!
@lovidicus1555
@lovidicus1555 9 ай бұрын
i typed everything exactly as you did but still getting errors am i missing something?
@vimi
@vimi 9 ай бұрын
This video is primarily here to give you the basic ideas to build your own combat sections from scratch, and I generally encourage beginner devs to start with a simple structure, and build off of that in your own direction. In the code I provided at the github link, I mentioned everything would break because it doesn't include the associated images, but it could also break for a myriad of other reasons; this isn't an in-the-box renpy rpg combat engine, it's just extra reference.
@lovidicus1555
@lovidicus1555 9 ай бұрын
@vimi ohh I get get it. I hope one day you could make a tutorial for absolute beginners. I saw your vid on renpy beginners tutorial but no offence I got lost as I don't know anything about coding. I hope you can make a simple dungeon tutorial where you can go forward, back, left and right with random enemy encounters. Anyway thanks for responding to such an old video!
@sihirbaz_arttzz3297
@sihirbaz_arttzz3297 2 жыл бұрын
Hi, I'm wondering how to add an intro when entering the game in renpy. I would be very happy if you could help me. 👑
@vimi
@vimi 2 жыл бұрын
Check out the splashcreen functionality :) www.renpy.org/doc/html/splashscreen_presplash.html
@sihirbaz_arttzz3297
@sihirbaz_arttzz3297 2 жыл бұрын
@@vimi thank you so much i'm grateful
@ShadowWolf1307
@ShadowWolf1307 Жыл бұрын
I have a request! Can you do an indepth tutorial about how saving works and how we can use it in code etc? Like how we can save at certain points for story purposes etc I looked at the documentation but its still very complicated for me & at times not well explained there so i think i'd be a great topic
@vimi
@vimi Жыл бұрын
Are you asking about autosaving, specifically?
@ShadowWolf1307
@ShadowWolf1307 Жыл бұрын
@@vimi not really, at least if you mean something with a frequency like "automatically make a save every 10 mins". Thats not what i meant but it would be a nice inclusion. I was more thinking of situations were a save would be good, like before a hard fight. Or right before a choice (but i think theres a command for this one? Didnt figure it out yet :( ). EDIT::::::::::: I just realized that the name should be "checkpoint system" as i want a save at a certain point of progress of the game ::::::::::::::::::::: Example: Like in RPGs theres sometimes a big door to a bossroom and the little icon pops up "your game has been saved" - but like for VN. Meaning: you want the user to not lose the whole chapter worth of progress. Or want to save between chapters automatically, but via commands in the script. I really really want to do it but i just casnt make it happen haha. Been stuck FOR DAYS NOW on this and permanet/persistent variables that just wont be saved no matter what i do Oh and awesome that you responded, you always make great videos! Have a great day! ^^
@vimi
@vimi Жыл бұрын
@@ShadowWolf1307 Yup, that's just an autosave system! www.renpy.org/doc/html/config.html?highlight=autosave#var-config.autosave_frequency This covers a variety of ways you can implement autosaves, but the important lines are: define config.has_autosave = True ^^^ Turns autosaves on define config.autosave_on_choice = True ^^^ This makes the game automatically autosave at each choice (might not be what you want) $ renpy.force_autosave() ^^ And this autosaves at certain moments you designate In addition to this, you'll want to make sure you manually give a little indication whenever the game autosaves - on my first game, I forgot about this detail, and users thought they could NEVER save the game, when really, I was autosaving the game for them every chapter!
@ShadowWolf1307
@ShadowWolf1307 Жыл бұрын
@@vimi Yes i've found these commands but somehow they didnt help my problem with saving variables. Because of your comment thought i went through my scrip again and found my problem! Its that i start a new game every time i fire up my project, i think, so it never loads the save/checkpoint i guess Have to figure out how i can fix that now! Thanks for the help though :)
@kuroihitsuji444
@kuroihitsuji444 7 ай бұрын
​@@vimi i think what they mean is also something that i personally want, which is the option to have "save points" but not "quick save". being given the option to save only at specific points of the story. i don't know how to do that but it's something i want to have in my game
@yokoyapen
@yokoyapen Жыл бұрын
but the real question is how to make the overworld/worldmap system
@vimi
@vimi Жыл бұрын
It's harder than you'd think! If you need combat + overworld travel, it's probably better to switch to RPGMaker, or use Unity!
@xxkillin3mxx
@xxkillin3mxx Жыл бұрын
the ending 🤣🤣🤣
@Jenneviv
@Jenneviv 2 жыл бұрын
Hey Vimis! Do you have any idea about make a game with Live2D animated characters since Ren'Py support that feature? Like set up some basic stuff to use it properly (like a turn on/off button for animations and other things).
@vimi
@vimi 2 жыл бұрын
I'll make a video on it soon! If you check out my livestream this sunday (2pm EST, abouts), I'll be getting into it a bit then, but a comprehensive video will be coming later on!
@Jenneviv
@Jenneviv 2 жыл бұрын
@@vimi Okay! I'll be waiting :)
@angelselix5641
@angelselix5641 2 жыл бұрын
Hello! I was wondering if you could make a video on how to shake a sprite or background! Thanks.
@vimi
@vimi 2 жыл бұрын
My transitions and animations video should cover most of the basics!
@cringylegend2082
@cringylegend2082 Жыл бұрын
Is the inventory system still planned to come out?
@vimi
@vimi Жыл бұрын
It's in the pipeline - I have a VERY long video coming out in mid-May that has taken a lot of time. When I get to inventory, it will probably be an overview of this system: www.lezcave.com/lezinventory-framework/
@cringylegend2082
@cringylegend2082 Жыл бұрын
@@vimi alright thanks
@weltonn
@weltonn 2 жыл бұрын
Wow
@ggadams639
@ggadams639 2 жыл бұрын
W T F I was actually searching for something like that
@vimi
@vimi 2 жыл бұрын
That's why I made it!
@ggadams639
@ggadams639 2 жыл бұрын
@@vimi Thx for the amazing content man. Ren'py is a very fun tool for people who wants to make games like me. And as it's very light and "basic" it really ages well too.
@colonelchic1199
@colonelchic1199 2 жыл бұрын
RENPY HAS 3D???? SINCE WHEN????
@vimi
@vimi 2 жыл бұрын
It was added in version 7.4.5, back in May 2021. It's pretty awesome.
@vimi
@vimi 2 жыл бұрын
Just to clarify, Ren'py does not support 3d models in engine, but it does have a 3d stage that easily allows you to place assets in parallax. Functionally speaking, it's pretty barebones, but if you're willing to put in a lot of work, you can make some neat stuff!
@colonelchic1199
@colonelchic1199 2 жыл бұрын
@@vimi oh that's so fuckin cool actually!! I'll have to look into it, I'm huge on using renpy to make combat based games (because I'm a masochist apparently)
LEVEL UP Your Visual Novel Sprites!
15:31
Visual Novel Design
Рет қаралды 63 М.
How Do You Improve Turn Based Combat?
17:43
Design Doc
Рет қаралды 775 М.
How I Did The SELF BENDING Spoon 😱🥄 #shorts
00:19
Wian
Рет қаралды 35 МЛН
📣5 Ren'py Tricks You Probably Didn't Know!
8:11
Visual Novel Design
Рет қаралды 36 М.
The Ominous Bottle has a lot of problems right now.
6:20
Phoenix SC
Рет қаралды 469 М.
What you need to know about the Story in Satisfactory
6:33
Coffee Stain Studios
Рет қаралды 38 М.
Making a difficult game about fitting in - Acerola Jam 0
19:17
jess::codes
Рет қаралды 337 М.
Ren'py Images and Action Editor Tutorial
12:33
Visual Novel Design
Рет қаралды 69 М.
Ren'Py -- Visual Novel Game Engine
11:08
Gamefromscratch
Рет қаралды 60 М.
I Optimised My Game Engine Up To 12000 FPS
11:58
Vercidium
Рет қаралды 637 М.
[Ren'Py] The ultimate Ren'Py Masterclass - Beginner to Advanced - # 1
54:03
Game Developer Training
Рет қаралды 43 М.
A new way to generate worlds (stitched WFC)
10:51
Watt Designs
Рет қаралды 523 М.