Let's Make A Game!

Let's Make A Game!

140: Radio buttons

140: Radio buttons

139: New theme

139: New theme

138: Adapting a board game

138: Adapting a board game

137: More logic puzzles

137: More logic puzzles

136: Logic puzzles continued

136: Logic puzzles continued

135: Logic puzzles

135: Logic puzzles

131: Random names

131: Random names

129: Free AI art in 2024

129: Free AI art in 2024

128: Health bars

128: Health bars

125: Fleeing

125: Fleeing

124: Oops

124: Oops

123: Morale

123: Morale

122: Ending combat

122: Ending combat

121: PC attacks

121: PC attacks

120: Enemies attack

120: Enemies attack

118: Group Combat

118: Group Combat

116: Morale

116: Morale

115: Combat display

115: Combat display

114: Improving combat

114: Improving combat

113: Combat

113: Combat

112: The 'help' command

112: The 'help' command

Пікірлер

  • @thomasedwards5177
    @thomasedwards51773 күн бұрын

    Or, you know, just use `<Array>.shuffle()`.

  • @kevinkavendish9313
    @kevinkavendish93134 күн бұрын

    Great! Can you provide examples of how to work with CSS? How to make UI better looking. Backgrounds, frames, different buttons and their effects, side-bar buttons, etc. I know where beautiful games are but I'm unsure if I can share the site's name because they are NSFW.

  • @lets-make-a-game
    @lets-make-a-game4 күн бұрын

    Can you give me an example of a free game that you think looks particularly good? I'll check it out and try to do a video about it.

  • @michaeltodd2012
    @michaeltodd20124 күн бұрын

    I am following along with your series but am converting it to Harlowe along the way, just because I want to learn one way to do it.

  • @michaeltodd2012
    @michaeltodd20126 күн бұрын

    The creator says Harlowe is for non web developers aka programmers. It does have save-game and load-game commands.

  • @Fensterchef
    @Fensterchef13 күн бұрын

    Thank you, that helps a lot! :)

  • @lets-make-a-game
    @lets-make-a-game13 күн бұрын

    No problem.

  • @BrianDulaney-ew8cb
    @BrianDulaney-ew8cb23 күн бұрын

    Exactly what I was looking for. Thank you!

  • @lets-make-a-game
    @lets-make-a-game23 күн бұрын

    No problem!

  • @deserteagle-nx1hl
    @deserteagle-nx1hlАй бұрын

    Mage has just wiped all my images out after "upgrading" to a vastly inferior entity. How sad.

  • @chuckabutty5491
    @chuckabutty5491Ай бұрын

    "You could probably just ignore the button that says select models." That being the button that opens up dozens of alternate models, from photorealistic to cartoon to anime, as well as the ability to change aspect ratio to portrait or landscape images instead of squares. Might be better learning the software before offering tutorials.

  • @scarpheel
    @scarpheelАй бұрын

    Thanks for the tutorial

  • @lets-make-a-game
    @lets-make-a-gameАй бұрын

    No problem!

  • @kevinkavendish9313
    @kevinkavendish93132 ай бұрын

    Could you talk and show examples of how to work with random-generated npc? How to program their behavior to change their locations and so on.

  • @lets-make-a-game
    @lets-make-a-gameАй бұрын

    So, are you thinking of these NPCs as being people you talk to to get information from? Or are they monsters you're meant to fight? Or something else?

  • @kevinkavendish9313
    @kevinkavendish9313Ай бұрын

    @@lets-make-a-game Sure! Let's imagine three gangs in the city(three goblin tribes) interacting independently with each other from a player. There are 10 beings in each group with a leader and when player does their stuff, they drink, fight, and so on. If a leader is Tommy Big Gun now, then it could be Donny Skull. In other words, I'm interested in a NPC life simulation system.

  • @kevinkavendish9313
    @kevinkavendish9313Ай бұрын

    The easiest part. Gangsters have needs and according to their needs, they fight, sleep, eat, or work ob. This process happens without straight causation whether the player is present or not. They just "live".

  • @lets-make-a-game
    @lets-make-a-gameАй бұрын

    @@kevinkavendish9313 So are you talking about a system like The Sims?

  • @kevinkavendish9313
    @kevinkavendish93132 ай бұрын

    That's a great video! Thank you!

  • @lets-make-a-game
    @lets-make-a-gameАй бұрын

    Thanks!

  • @VGamingJunkie
    @VGamingJunkie2 ай бұрын

    Pretty nice tutorial!

  • @lets-make-a-game
    @lets-make-a-game2 ай бұрын

    Thanks!

  • @kevinkavendish9313
    @kevinkavendish93132 ай бұрын

    Wow! You're a genuine magician! Thank you very much!

  • @lets-make-a-game
    @lets-make-a-game2 ай бұрын

    No problem!

  • @kevinkavendish9313
    @kevinkavendish93132 ай бұрын

    That's a great video! I'd like to create a health bar that will change colors depending on the status. Less than 25 % is red, orange between 25 and 50 percent, 50 - 75 - yellow, and green for >75 %. A player will have more and more health with time, so the health points are not fixed. Could you create a video to show how to make such a bar? If it's too hard or takes too much energy, just a green bar that will reduce if a player gets damaged. Anyway, thank you very much for your videos!

  • @lets-make-a-game
    @lets-make-a-game2 ай бұрын

    Thanks for the suggestion. I've made the video: kzread.info/dash/bejne/mn9k0NyFaNGrXag.html

  • @noctisocculta4820
    @noctisocculta48202 ай бұрын

    Mate, no offense but you've over-engineered this. Do you know how to use objects(hint: arrays are a type of object)? SugarCube natively uses JSON. I also recommend temporary variables, dot notation, the capture macro, and predicates. tl;dr: JSON is easy and powerful, temp variables are cool, predicates remove long-ass array loops - easy to read, easy to extend, less cognitive load. Starting with temporary variables, because easy: underscore sigil instead of the dollar sigil. E.g. <<set _foo to "bar">>. Why use them? They stay for the passage only, so they don't bloat state history and you can reuse the names without fear of breaking other things. Pretty sure you know this(haven't payed attention), but I'll patronisingly say it anyway: Dot notation accesses an object's properties using the period character. E.g. <<set $player . name to "Adventurer">><<set $player . party to ["Frodo","Sam","Gollum"]>>. Btw, I'm adding spaces between them because KZread thinks they're links. If you already know JSON, then sorry for patronising in advance: JSON's easy to use and it's been widely adopted by basically every language/markup so you can use it outside of SugarCube/javascript. JSON notation is like this: {propertyA:value, propertyB:value}. They're surrounded in curly braces, property names and values are separated with colons, and additional properties are separated by commas. E.g. <<set $playerweapon to {name:"long sword",damage:"1d8",weight:3,price:15,twohanded:false,damagetype:"slashing",skill:"blades"}>>. Cool thing is, in SugarCube you can use property names exactly like array integer values with the square bracket [ ] notation (as that's what arrays are in javascript/SugarCube, i.e. integers as property names). object["propertyname"]. E.g. <<set $pets to [cats:[{name:"Scrambles",breed:"siamese"},{name:"Bunny",breed:"manx"}],dogs:[{name:"Fido",breed:"labrador"},{name:"Stinky",breed:"german shepherd"}]>> <<set $player . pet to $pets["cats"][0]>> <<print "My pet's name is "+$player.pet.name>> <!-- you will get 'My pet's name is Scrambles' -->. The setup object I use is a SugarCube thing, don't have to use it but it's nice. If JSON's not powerful enough, you can also make your own object prototypes (and classes, if you prefer object oriented). I'll leave that to you to figure out, but it's great for shared functionality between similar objects. <<set $player.weapon to clone(setup . weapons["longsword"])>>Could make a actor prototype for party members and enemies, ensures they have default names and useful functions. <<set $validmoves to $playerparty[_x].validmoves>> might return an array of moves the player's party member can do, for example only show spells character has enough mana to use. I use classes because I come from C#, but prototypes have better cross platform support. Predicates are great for arrays, they effectively cut out verbose loops etc. <<set $player.weapon to setup . weapon . find( (weapon) => weapon . name == "long sword")>> Another example: <<if $playerparty.find( (x) => x.hp > 0)>> At least one party member is alive! <</if>> <!-- returns the first character with positive hit points, which is also truthy for the purposes of If statements. --> Finally, the capture macro allows you to use a variable as it is in the moment, instead of (frustratingly!) as it is at the end of the page. Use it in loops, listboxes, etc. Difficult to wrap your head around, but powerful. You'll know what I mean when you see it. E.g. <<set $name to "Bob>> <<print $name>> <<set $name to "Burt">> might display Burt instead of Bob. I see a few loops you could use this for. In particular, I use it when looping through collections in cases where SugarCube uses the last value instead of the one I got from the loop. E.g. in combat: displaying character moves as radial buttons with a loop, then each button has a listbox of enemies to target. Use capture to get the listbox value for that move. I can use the move button's listbox to select the target, then click the move's radial button, link to next passage sets move target to selected move's target, next passage will execute move on that target. Might not need this one, but it's good to keep in mind. Do you use SugarCube widgets? I see you using passages, but not sure if I've seen widgets. You can find the right widget by string, so you could store the widget name for skill effects, etc. Holy wall of text, Batman!? Unnecessarily verbose and complicated, but hopefully you can see how powerful this stuff is. Much simpler than $sk[0][1]=[null,1,1,0].

  • @AndersonCorreadaSilvaLima
    @AndersonCorreadaSilvaLima2 ай бұрын

    Thank you for the video and for the channel! But, how do I can put the button of undo and redo? Also, how to put "save" and "restart" button? I'm new in program stuffs.

  • @lets-make-a-game
    @lets-make-a-game2 ай бұрын

    If your story is using the Sugarcube format, it should have all these buttons. So, in the story, go to 'Story', then 'Details', and choose 'Sugarcube 2.36.1'. If you do this, and it doesn't have the buttons when you run the story, let me know.

  • @SoyCarlosLanto
    @SoyCarlosLanto3 ай бұрын

    Your videos are very useful!! Thanks a lot!

  • @lets-make-a-game
    @lets-make-a-game3 ай бұрын

    No problem!

  • @247videogame
    @247videogame3 ай бұрын

    Nice video👍 just subscribed to your YT channel 😎🎮

  • @lets-make-a-game
    @lets-make-a-game3 ай бұрын

    Thanks!

  • @VGamingJunkie
    @VGamingJunkie3 ай бұрын

    Ooh, Open Game Art, now there's a handy resource.

  • @ezekialkrow8675
    @ezekialkrow86754 ай бұрын

    Excellent! Just a week or so ago I started working on my own combat system for my twine game; so far I've developed a system to generate a random group of enemies, set proper variables, and a base level UI to control it all, but I'm doing heavy research on how to make the turns of player vs multiple enemies show properly and appear smooth and natural. Looking forward as you dig deeper into combat systems in general, I bet I'll glean something for my own development!

  • @lets-make-a-game
    @lets-make-a-game4 ай бұрын

    Thanks!

  • @ezekialkrow8675
    @ezekialkrow86754 ай бұрын

    Thank you for your work, I have been following diligently why I too have been working on my own twine game! I have a question regarding some code here, and I may be confusing myself with the source code. Between Video 53 and 57, Explore get's broken into two passage: Explore and Explore2. The source code shows three: Explore through Explore3. You may explain it further in your series (and if so, I can skip to that video!) but what was the need/reasoning behind the split?

  • @lets-make-a-game
    @lets-make-a-game4 ай бұрын

    Explore displays the map, and Explore 2 changes your coordinates. You go to Explore 2 without going through Explore when you change coordinates without clicking an arrow, for example because you fight and are driven off. That's why Explore 2 is separate to Explore. The reason Explore 3 is separate to Explore 2 is because, at the end of Explore 2, the game checks whether you still have a light source. It doesn't use an 'include', but rather has a string, and if everything's fine sends you to the page whose name is the same as that string. That page can't be Explore 2, because then you'd go round in a never-ending loop. So it sends you to Explore 3. The reason the light-check pages don't use an include is because you might die or have to leave the dungeon. In either case, it wouldn't be appropriate to go back to the page that sent you there. I hope that makes sense. Please let me know if I haven't explained something properly.

  • @ezekialkrow8675
    @ezekialkrow86754 ай бұрын

    @@lets-make-a-game It makes perfect sense, thank you! I should have been paying more attention to the $de variable; it looks like it gets set pending the player's choice as they move between those passages. I'll spend a little more time digging through the code; thanks again!

  • @lets-make-a-game
    @lets-make-a-game4 ай бұрын

    @@ezekialkrow8675 No problem.

  • @davidtarrant228
    @davidtarrant2286 ай бұрын

    A couple of possible enhancements to your Example A 1: Don't include elements like "null" in an Array if you don't intend to reference them. <<set $p to ["dwarf.png", "elf.png", "human.png", "troll.png"]>> 2: Use SugarCube's Array random() method, instead of the random() function. <<set $z to $p.random()>> 3: Use the Image Markup based Link's ability to handle variable based expressions, instead of a <<print>> macro. [img["pics/" + $z]]

  • @decomposedcorpse5186
    @decomposedcorpse51866 ай бұрын

    How does your sidebar include a saves and restart button? Mine just has an undo and redo button.

  • @lets-make-a-game
    @lets-make-a-game6 ай бұрын

    Are you using the Sugarcube format? Is this a new story?

  • @decomposedcorpse5186
    @decomposedcorpse51866 ай бұрын

    @@lets-make-a-game Yeah, I switched to Sugarcube, but I had to make a new story for it to take effect. Works now, thanks! I'll probably be looking through your videos a lot, so thanks in advance.

  • @lets-make-a-game
    @lets-make-a-game6 ай бұрын

    @@decomposedcorpse5186 No problem. You can change a story's format by getting into the story and clicking 'Story' then 'Details'.

  • @decomposedcorpse5186
    @decomposedcorpse51866 ай бұрын

    @@lets-make-a-game Do you know how to randomize what image is picked from an image folder?

  • @lets-make-a-game
    @lets-make-a-game6 ай бұрын

    @@decomposedcorpse5186 I don't think there's any command which will do this, but you could make an array with the names of all the files, then randomly choose an element from this array.

  • @DatFugginGuy
    @DatFugginGuy6 ай бұрын

    Cool

  • @lets-make-a-game
    @lets-make-a-game6 ай бұрын

    Thanks!

  • @EXpex19
    @EXpex196 ай бұрын

    Hi, your story is very interesting. But why is there no clips to represent what you are saying? just a single picture. Did you intend to make it that way?

  • @lets-make-a-game
    @lets-make-a-game6 ай бұрын

    I thought that the audio was enough to get across what I was trying to say.

  • @EXpex19
    @EXpex196 ай бұрын

    @@lets-make-a-game well I think using visual representation is more okay, it allows users to be more interested.

  • @serijas737
    @serijas7377 ай бұрын

    Bro I spent 6 months creating a character creator. Ur living my dream

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    What software were you using?

  • @loressa7110
    @loressa71107 ай бұрын

    My comments from reddit, since this seems a better spot to share them! Thank you so much for the extensive feedback! It's really helpful for my future improvement! I feel like I shouldn't have included the word count, heh, as it seemed to have directed the majority of your thoughts on the game. I might remove that from the itch page. There are 10 levels, 8 of which can each be revisited with new content, so I promise most of the writing isn't just exploratory text - as your video made clear it's very important to show deeper content early on to help grab players and set expectations. It's framed off Dante's Divine Comedy so the lobby is meant to be limbo, but I can definitely spice it up more. This will be a fun creative challenge - how do you make purgatory feel like you have meaningful choices? The "Delve" concept I based the game around is about revisiting experiences with a new perspective to show how things like therapy help us see our past in a different light, which is why I chose an elevator for the main navigation mechanic so players could go back to previously played levels to see how they had changed (eg the game show audience becomes cardboard cutouts on a revisit to show how something daunting and overwhelming becomes less intimidating when the spotlight isn't turned on). It's probably far too artsy without enough solid grounding to convey what I was going for and I'm seeing when I watch someone play it that it's unlikely they will get to that 2nd round of visiting floors. This is really helpful to see and I'll work on figuring out how to guide players back to revisiting the content to see that second perspective. The game itself was made for a game jam so I only had 3 weeks to make it which limited what I could get done (including the variant endings - due to the time limit, there are technically 18 different ending ***results*** but the narrative text for those is mostly the same). The writer who was going to handle the text for the popup elements (eg the clock description and so on) had to drop out, so I didn't get to spend as much time on those as I would have liked within the time frame. Later in the game there are more interactive options embedded in these popups with different choices you can make, but your playthrough has highlighted the importance of putting these in as early as possible! Watching you play, I realize the early gameplay choices are too subtle (eg saying no, that's not my number) and not impactful enough. I'll definitely include more and work on making the intro more gripping and interactive, as well as clear up the confusion on the page with the letter. The game is intended as an overarcing story with room within that story to explore around and discover achievements and play minigames. I had thought narrative would be a good description for that, but it seems to have given you other expectations for what the gameplay would be. Do you have thoughts on other descriptive words I could use to help prime player mindset for that sort of game? The art was all AI which I made and I liked your notes about how it takes iterations. Each picture used an overall core prompt I developed over time to get the consistent feel (the receptionist was actually one of the early ones and that's why she does have more grayscale) and probably took 10-50 runs to get the final one I picked. The splash logo was made by me in gimp using the image from the end of the first level and the 9th level spliced together using layers. There's a kinda cool progression I had fun with where the guy who interviews you at the end of each level becomes more demonic over time which I achieved through using demonic:x% tacked onto the core prompt and image seed once I created one I liked. I was really surprised at how the AI actually evolved that core image to morph into a more demonic version using just that modifier - AI art has really evolved in understanding natural language! Now that the jam is done, I can go back and improve the game more, so your feedback has been very helpful! Thank you once again for giving the game a try. May I ask how you came across the game to try out?

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    Thanks for responding. I saw your game on the twinegames subreddit. "Do you have thoughts on other descriptive words I could use to help prime player mindset for that sort of game?" I don't exactly know. Are you saying that there isn't really 'winning' and 'losing' in the game?

  • @loressa7110
    @loressa71107 ай бұрын

    @@lets-make-a-game the end result (spoiler) is a job title offered to you by the devil. The game is a retelling of Dante's Divine Comedy through the perspective of a job interview. The first level you played through is limbo. The final level gets you a job offer in hell, eg VP of HR or Customer Service Representative based on your stats. There isn't really winning or losing, no, my focus was on telling a story/giving a satirical take on how job interviews are hellish.

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    @@loressa7110 OK, so, the stats are basically your score? I don't think that was clear from playing the start of the game, and I don't remember them changing much based on things I did.

  • @loressa7110
    @loressa71107 ай бұрын

    @@lets-make-a-game the stats determine your final job offer. It's a story about how job interviews and corporate culture suck, especially if you're neurodivergent - the game itself is meant to be an example of maladaptive daydreaming during a job interview from hell. The stats adjust based on your choices through the game, for example in the archery level each shot lets you choose how you felt about shooting ghosts of your past, which tweaks your morality. If you revisit heresy (the level where you're forced to do public speaking) you can choose to inspire people with a dream or a fear, another way to tweak morality. You can refuse or comply with the narrative you're given which affects your rebellion (eg in the first level you can cycle back through the waiting room and bump up your rebellion or redo your entries to make the job application prompts more snarky). You can say screw this or ugh I'm done a lot to boost rebellion. Willpower is constantly ground down by the job interview process, but there are secret ways to raise it. In the casino level you can adjust all your stats as much as you like so you can use the save function and revisit the casino to get all the different offers if you really want. I will go back and add different text to each result now that I have time! There are 10 total levels, 8 of which you can revisit for new content, and your video only played through the first level and a bit of the 2nd. I'll work on making that first level more engaging so people get hooked to play the rest! Thanks again for the feedback!

  • @loressa7110
    @loressa71107 ай бұрын

    Thank you for the extensive feedback! I'll use this to improve the game going forward :)

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    No problem!

  • @nathanieljennings3311
    @nathanieljennings33117 ай бұрын

    Pretty cool! I am on the 'data transformation' side of software, so its interesting to see another side. Keep it up

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    Thanks!

  • @ebouchoc
    @ebouchoc7 ай бұрын

    Too much opinion...get to the tutorial

  • @katie-allen
    @katie-allen7 ай бұрын

    Cool! Hope this game gets some attention!

  • @lets-make-a-game
    @lets-make-a-game7 ай бұрын

    Thanks!

  • @ByronPendason
    @ByronPendason8 ай бұрын

    Have you thought about making a playlist to make bone watching the videos in this series easier for the viewer? As it is, if one doesn't have KZread premium, we have to go back to your page, scroll down to the next video, and click on it. If you created a playlist with the earlier ones first and going in order, we could just go to the playlist, click on the video and then it'll play them sequentially from there. This is my only complaint so far though. You're doing a great job and I hope you keep up the good work!

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    OK--I've made a playlist of all the videos in order. Hope that helps.

  • @ByronPendason
    @ByronPendason8 ай бұрын

    @@lets-make-a-game Thanks a ton! You're awesome, man!

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    @@ByronPendason No problem.

  • @ANARAHATH
    @ANARAHATH8 ай бұрын

    Finally a comprehensive guide. Excellent work!

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks!

  • @artfulGhoul
    @artfulGhoul8 ай бұрын

    Love it. Speaking of exploits, just a heads up, I would 100% try and give the beggars a negative number of shells (like -500 shells) to see if the game increases my shell inventory (If the beggars were in previous vids, I don't think I saw them, so sorry if that possibility was already covered).

  • @Ironfist786
    @Ironfist7868 ай бұрын

    Great advice! I was looking for something like this. I hope you dont mind me asking you a question about story design. Im creating a more a choice based narrative game as opposed to sandbox. Would you advise to write passage by passage, or do you create the overall story by creating the passages needed and then fill in the passages once your got the story layout I apologise if you covered this in one of your videos, in which case please redirect me to the appropriate video :) Once again thank you very much for creating this channel

  • @MichaelCoorlim
    @MichaelCoorlim8 ай бұрын

    For a narrative game what I personally do is plot out the critical path - in a gamebook style game this is similar to the "True Path" in a visual novel, or it can be as simple as just one of several possible paths through the game. Whatever it is, this is a linear set of scenes the player would encounter in a run through the game. I do this on a scene by scene level, sometimes in mind-mapping software or a flowchart on paper, but you could do this in Twine with just a summary of the scene's goals or whatever notes you find useful in each passage if you're willing to expand it later. Don't worry about small choices, just get the big picture stuff down. After you have the critical path down look at decision points that might send the player down different sub-branches; depending on the style you're going for they might rejoin the main path down the line, or they might lead to a completely different story direction if you're careful about combinatorial explosion. Plot out those branches in the same way; just notes for now, don't do too much work that you might just undo if you come up with a better idea. At this point I'll go through each passage and write out the prose, including minor choices that have a small impact but don't lead to a whole new branch of story. There's actually a lot to consider when it comes to making good choices but I'm going to stick to structure in this comment, aside from the note that you can get away without using minor choices or major branching, if your game is more linear, but you should at least have one or the other. Anyway, that's how I do it.

  • @Ironfist786
    @Ironfist7868 ай бұрын

    @MichaelCoorlim this is solid advise. I guess to add, I think the scope im doing is maybe a bit grand. So I'm thinking doing arc by arc, just to make it more manageable and able to complete some work. Anyways I think this should defo be covered in one of the videos, I feel like if I'm asking this questions so are other people :) Once again thanks Michael :)

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    I would write 'from the top down'--that is, write what can happen at a particular stage, and then break that down into smaller steps, until you get to individual pages, and then write those pages.

  • @mehnajiktafena
    @mehnajiktafena8 ай бұрын

    One quick question does twine require heavy JavaScript knowledge if i wanted to make something more complex like a food ordering game?

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    I don't really know what "a food ordering game" would be, sorry.

  • @mehnajiktafena
    @mehnajiktafena8 ай бұрын

    I was hoping you'd switch to tweego because how big it looks 😅

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    I've actually never looked at tweego.

  • @glitchyxxsky
    @glitchyxxsky8 ай бұрын

    You are really amazing mate and thank you for continuing this series ❤

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    No problem!

  • @ByronPendason
    @ByronPendason8 ай бұрын

    I had an idea that combines the ideas from these last few videos. I know you're way past this in your video series, so I know this won't be implemented, but I was wondering if you'd mind giving your opinion on it. So, my idea is that you randomly generate the attributes like you originally did, adding the racial bonuses and penalties, and then the $ba starts at zero for customizing. BUT, you can only adjust each attribute from there by no more than 5 above or 5 below the original generated value. So, a value that starts high because of a racial bonus will have to stay relatively high, and stats that start low because of racial penalties will start relatively low. And just like in the custom attributes video, each time you adjust one up, your balance gets decreased by 1, and each time you adjust down it goes up by 1, and you can only continue when the balance is 0. Thoughts?

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    That's a good idea, and I intend to revisit character creation to give more options, but not for several videos at least.

  • @ByronPendason
    @ByronPendason8 ай бұрын

    Very good series. A quick question, though. Why not move $ne to below the array declaration, and use $ne = $l.length That way, if you add to the array, you wouldn't need to remember having to update $ne as well.

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks! I didn't know about .length when I did this video. I don't use separate variables to keep track of how many elements are in arrays any more, but I didn't bother to go back and change what I'd already done.

  • @artfulGhoul
    @artfulGhoul8 ай бұрын

    Love the new map frame! Looks much nicer. With clarifying the attributes on the sidebar, I might try working out a way to give them hover text. I haven't tested it myself yet, but I think using a <label> element with title attribute should work (something like <label title="Strength: Affects your ability to fight with melee weapons">STR</label> ). I think your idea about fading the map as your oil burns out is a fun idea too. I might also play around with meters or progress bars on the main window so the player so the player has something eye-catching where their eyes already are to track oil. For instance, <progress @value="$oil" max="100"></progress> (I forget what actual variables you're using for oil, but you get the idea).

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks again!

  • @artfulGhoul
    @artfulGhoul8 ай бұрын

    From an outside perspective, it's not intuitive to me that my character would die on running out of Oil. My first expectations would be that running out of Oil makes travelling more dangerous (different types of encounters / making normal encounters more challenging) or that it dramatically slows my travel pace. I also think it's easy to miss that your oil is burning and that might break the immersion for me. Instead of it being a conscious risk/reward decision to travel with low oil, the game might make me feel like my character is an idiot who didn't realize their lamp was burning or running low. I also might look at those stats when I start the game, see I have 6hrs of oil, but since I never told the game to light a lantern or burn the oil, I might not intuitively assume it will burn down from moving until it's too fargone for me to survive. I love the idea of an Oil mechanic, but might advocate for a small 'heads up' at the start of the game to call out that losing your light means you're dead. Dying from not respecting the oil enough sounds fun, but it can be frustrating when games introduce mechanics by letting you die to them (particularly without autosaves or checkpoints to mitigate what you lose).

  • @adamipsenryngm7618
    @adamipsenryngm76188 ай бұрын

    Hi there! Thanks for sharing your thoughts on the start of my game. I thought I'd share my thinking here, fully aware that when an author or game maker feels the need to do so, they may have already "fallen short" in conveying meaning in the sense that it should require no explanation. :) In your video, you state that choices should have a meaningful impact on the game - bad ends, stat changes, plot shifts - and this is the yardstick for inclusion. However, there is a far more beneficial measurement in my opinion (and perhaps the only one that really matters), and that's the impact on the player. Offering choices at particular intervals to the player can have positive impacts on the player's experience, even if the choices themselves aren't "meaningful" in hindsight, such as: - Giving a sense of agency in the player gets to choose their answers or actions (Internal roleplaying). In a 3D game, a player can examine all the books in a shelf in the starting room, or just leave. Does it make a difference? Not to the plot, but it does to the sense of autonomy. - Giving players a break from large slabs of text. Some players will tap out of a Twine game if they're presented with several pages without a choice, but it doesn't make sense to have every choice be meaningful in an eight-hour game (That would be EXHAUSTING to write!). These choices present mental "pauses" to the player. Also, in this intro, it introduces the player to three key elements of the room that become important in hindsight (The Progenitor, the AI console/Esra, the destroyed chip panel). All of these are crucial to the plot later on, but presenting this information one after another would be boring. Breaking them into examinable "chunks" makes it more palatable. Story weaving is another impact on the player that may not be "meaningful" in a game sense, but is important in an experience-building sense. Admittedly, if I had to do the Trigaea intro again, I'd polish it up a fair bit. I don't personally think it gets really good until you get to the forest, and I'm just glad people play to that point to where the more impactful choices start to hit home a bit more. Thanks for the video response!

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks for your response.

  • @SomniumProxy
    @SomniumProxy8 ай бұрын

    The core that you're strawmanning is your assumption that the world building is separate from the plot. Of course these things can be done in a right way and wrong way or anything in between depending on the actual writing/design skill of the author making the game. Since your video was asking "why do Twine games do this" I was trying to provide you with a general answer. Since it appears you have misunderstood my argument, here's a more concrete example: Imagine a game where you are a detective walking into a house and finding a murder scene. Lots of investigative options open up. A player that is only halfway involved might just read the core passage and move on, a more invested player might examine the murder weapon and find details that come into play later. Someone who is really deep into the story might read a diary that reveals more about the character's involved and their motivations. None of this is (meant to be) random blabbering or imitating Tolkien by trying to pad the plot with lore. An alternative way to frame the same thing is that when reading a book the author decides for you which information to provide, when to provide it and how to work with your attention. If you are writing a Twine game, assuming that you have already decided that all of this information is necessary, it's generally better to break it down and avoid walls of text. There are indeed many reasons why this design has become common practice, but if you are interested into how things came to be you could always have these sorts of discussions on the official reddit/Discord *before* dropping the videos ^^

  • @SomniumProxy
    @SomniumProxy8 ай бұрын

    The common "examine" options in Twine games are not choices and they are (transparently) not meant to be choices. The reason why they are done this way and why this is good game design is that it allows the author to build more depth in their world and narrative while still keeping the main thread lean and quick. It gives players the opportunity to learn more should they want to but also makes it easy to skip the non-essentials and follow the main plot. You will find that games that DO NOT do this often lose many players who may be only partially interested and can't be bothered to deal with all the side stuff so they just end up leaving.

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks for posting. I've uploaded a response to this as a video: kzread.info/dash/bejne/fnuetdSdYNqrZbA.html

  • @silensystem
    @silensystem8 ай бұрын

    Me inspira mucho ver tus videos, me encanta el programa twine 2 y tu canal esta muy bien , enseña muchas cosas y las hace faciles de entender, gracias por tu contenido!!

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    ¡Gracias por ver!

  • @ZEXUDO_RECORDZ
    @ZEXUDO_RECORDZ8 ай бұрын

    Great video 🔥

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks 🔥

  • @ZEXUDO_RECORDZ
    @ZEXUDO_RECORDZ8 ай бұрын

    Great video 🙏🏽💯

  • @lets-make-a-game
    @lets-make-a-game8 ай бұрын

    Thanks 💯