As was foretold, we've added advertisements to the forums! If you have questions, or if you encounter any bugs, please visit this thread: https://forums.penny-arcade.com/discussion/240191/forum-advertisement-faq-and-reports-thread/
We're funding a new Acquisitions Incorporated series on Kickstarter right now! Check it out at https://www.kickstarter.com/projects/pennyarcade/acquisitions-incorporated-the-series-2

Game Dev - Unreal 4.13 Out Now!

12223252728100

Posts

  • KupotheAvengerKupotheAvenger Destroyer of Cake and other deserts.Registered User regular
    There is a bit involved in a Mega Man like weapon structure. If you're new to programming, then just take it in steps.

    You must program the weapons behavior first. You don't have to program them all, but at least program two different weapons.

    Once they are working, you must set up the code that the player uses the currently selected weapon. Something like
    int[] weapons;
    int currentWeapon;
    
    if(currentWeapon == weapon[0])
         ShootGun(); 
    else if(currentWeapon == weapon[1])
              FireBall();
    

    And so on.

    Now you have to figure out how the player will toggle between weapons. Will it be a button? That's pretty easy to set up. Is it just like Mega Man with a menu? That's more involved because you have to create the GUI code AND pause code.

    Would it be possible to set up a toggle key to cycle through the unlocked weapons? And then for an indicator on screen would it just be a conditional check (if this weapon is cycled to, display this icon)?

    fc: 1821-9801-1163
    Battlenet: Judgement#1243
    psn: KupoZero

  • MiserableMirthMiserableMirth Registered User regular
    edited September 2014
    There is a bit involved in a Mega Man like weapon structure. If you're new to programming, then just take it in steps.

    You must program the weapons behavior first. You don't have to program them all, but at least program two different weapons.

    Once they are working, you must set up the code that the player uses the currently selected weapon. Something like
    int[] weapons;
    int currentWeapon;
    
    if(currentWeapon == weapon[0])
         ShootGun(); 
    else if(currentWeapon == weapon[1])
              FireBall();
    

    And so on.

    Now you have to figure out how the player will toggle between weapons. Will it be a button? That's pretty easy to set up. Is it just like Mega Man with a menu? That's more involved because you have to create the GUI code AND pause code.

    Your advice is excellent, and I know its just a quick incomplete example but your code is mega confusing my brain. Why would you have an array of numbers for the weapons, and then check the current weapon number against the contents of this array? Is this a typo or doing something clever, or am I just being dumb?

    You didn't miss anything. I goofed, haha. I'm not sure what I was thinking making weapons an array when I could have just made it a regular int.

    Would it be possible to set up a toggle key to cycle through the unlocked weapons? And then for an indicator on screen would it just be a conditional check (if this weapon is cycled to, display this icon)?

    Yes. For a toggle, you can set it up where pressing the toggle buttons adds or subtracts 1 from the currentWeapon int. You will need code that loops it though like
    if(currentWeapon > maxWeaponAmount)
                  currentWeapon = 0;
    

    As for the GUI, yes, setting it up through if statements can work.

    MiserableMirth on
  • KupotheAvengerKupotheAvenger Destroyer of Cake and other deserts.Registered User regular
    There is a bit involved in a Mega Man like weapon structure. If you're new to programming, then just take it in steps.

    You must program the weapons behavior first. You don't have to program them all, but at least program two different weapons.

    Once they are working, you must set up the code that the player uses the currently selected weapon. Something like
    int[] weapons;
    int currentWeapon;
    
    if(currentWeapon == weapon[0])
         ShootGun(); 
    else if(currentWeapon == weapon[1])
              FireBall();
    

    And so on.

    Now you have to figure out how the player will toggle between weapons. Will it be a button? That's pretty easy to set up. Is it just like Mega Man with a menu? That's more involved because you have to create the GUI code AND pause code.

    Your advice is excellent, and I know its just a quick incomplete example but your code is mega confusing my brain. Why would you have an array of numbers for the weapons, and then check the current weapon number against the contents of this array? Is this a typo or doing something clever, or am I just being dumb?

    You didn't miss anything. I goofed, haha. I'm not sure what I was thinking making weapons an array when I could have just made it a regular int.

    Would it be possible to set up a toggle key to cycle through the unlocked weapons? And then for an indicator on screen would it just be a conditional check (if this weapon is cycled to, display this icon)?

    Yes. For a toggle, you can set it up where pressing the toggle buttons adds or subtracts 1 from the currentWeapon int. You will need code that loops it though like
    if(currentWeapon > maxWeaponAmount)
                  currentWeapon = 0;
    

    As for the GUI, yes, setting it up through if statements can work.

    You guys are awesome. I literally have zero code knowledge, so hopefully I can put something interesting together.

    fc: 1821-9801-1163
    Battlenet: Judgement#1243
    psn: KupoZero

  • DarkMechaDarkMecha The Outer SpaceRegistered User regular
    Hey guys, I finally made a video showing off my project progress! It's a bit rambly but it turned out alright.

    Steam Profile | My Art | NID: DarkMecha (SW-4787-9571-8977) | PSN: DarkMecha
  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    DarkMecha wrote: »
    Hey guys, I finally made a video showing off my project progress! It's a bit rambly but it turned out alright.

    I enjoy discussions of game design and principal, and wasn't expecting to watch this entire video, but I did. Very nice job so far on the game and lot of interesting design decisions is always a nice perspective on the developers view.

    I'm making video games. DesignBy.Cloud
  • DarkMechaDarkMecha The Outer SpaceRegistered User regular
    Yeah it was probably too long and full of stuff most people don't care about, haha. Glad you liked it. I'll try to be more concise in my future progress videos.

    Steam Profile | My Art | NID: DarkMecha (SW-4787-9571-8977) | PSN: DarkMecha
  • WinkyWinky rRegistered User regular
    Alright, so, game saves:

    My game is a Flash game written in AS3

    Currently I basically have a big GameState class instance with every important object as a property of it, all of my classes implement IExternalizable so that they can serialize correctly, and when I save basically I register all the class aliases and serialize the whole thing and stuff it in the SharedObject (for non-Flash people, it basically just writes to a file on the user's computer). To read the save file I just do the opposite.

    It's nice because it's lazy and it works and while the save files are bigger than they need to be they aren't that big.

    However it is a problem, because there's no backwards compatibility with old saves between versions if I change any properties of any of the classes. It just reads the serialized object wrong and generates errors.

    So, this is sort of a big question: How do I do this better? Serializing is new to me and I don't understand it very well. What I'd like to do is just make it so that as the object is being deserialized it'll look at each thing that it's stuffing back into the class and make sure it still fits in there, and then recognize if anything is missing and initialize it. I just don't know where/how to correctly do this within the existing AS3 framework for serialization.

    Or, should I say "fuck it", ignore AS3's pre-existing serialization stuff, and just attempt to make my own system for serializing game data from scratch (I desperately don't want to spend the time to do this)?

    Does anyone have any good resources to help me understand object serialization?

    @RiemannLives (since you know Flash)

  • RiemannLivesRiemannLives Registered User regular
    @Winky I have had this exact problem come up. Different language, very different program, exact same problem.

    In the long run relying on your framework to do serialization / deserialization for you will always end up in this kind of issue. Sometimes the framework serializer has hooks so you can get away with just making some modifications (this is the case in C#) but a lot of the time the right thing is to maintain your own. This is actually a quite unusual! Usually the best answer is to use existing, tested, code whenever possible.

    There are two problems with using procedural serialization:
    1) versioning, as you have run into.
    2) it almost always serializes way more data than it needs to. Unless you put enough effort into marking up your data objects with attributes or whatever the language equivalent is to tell the serializer exactly what to do. But that usually ends up being as much work as just writing the serialization code.

    I just took a look at IExternalizable and IDataOutput (previously when I have used flash data is stored on a server not in a locally serialized blob) and I don't think there is a lot of value in trying to work with their interfaces. There just isn't anything there worth reusing.

    For AS3, I would recommend writing your own code to write out a JSON string and restore its state from a JSON string. It might be a bit bigger in file size than a binary blob but we are talking a few K here even for a huge app (unless you are saving images or something). In today's terms it's trivial.

    I can provide more info on this if you are interested.

    Attacked by tweeeeeeees!
    Winky
  • durandal4532durandal4532 Registered User regular
    Sooo

    In Gamemaker Studio: What's the best option for making reasonably elaborate branching dialogs? I want to allow at least the standard:

    NPC: Hey what is up

    Response:
    1.) I feel okay
    2.) Not much
    3.) The lords of dreadfell are upon us once more, flee you fool!

    response selection options.

    Ideally I'd like this to be something that's not spread all to hell, so it's easier to track what each person can possibly say in one big chunk. The idea would be that each client has some set of information it is possible to discover, and dialog has multiple branching paths toward that information, or closes off that information.

    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
  • RiemannLivesRiemannLives Registered User regular
    @Winky to expand a bit on the above, when you serialize data include a version number for the data format.

    In your deserializer you check the version number. If it is old then go into a module that knows how to "upgrade" the data by adding in missing stuff with default values or ignoring old stuff.

    Attacked by tweeeeeeees!
  • WinkyWinky rRegistered User regular
    Winky I have had this exact problem come up. Different language, very different program, exact same problem.

    In the long run relying on your framework to do serialization / deserialization for you will always end up in this kind of issue. Sometimes the framework serializer has hooks so you can get away with just making some modifications (this is the case in C#) but a lot of the time the right thing is to maintain your own. This is actually a quite unusual! Usually the best answer is to use existing, tested, code whenever possible.

    There are two problems with using procedural serialization:
    1) versioning, as you have run into.
    2) it almost always serializes way more data than it needs to. Unless you put enough effort into marking up your data objects with attributes or whatever the language equivalent is to tell the serializer exactly what to do. But that usually ends up being as much work as just writing the serialization code.

    I just took a look at IExternalizable and IDataOutput (previously when I have used flash data is stored on a server not in a locally serialized blob) and I don't think there is a lot of value in trying to work with their interfaces. There just isn't anything there worth reusing.

    For AS3, I would recommend writing your own code to write out a JSON string and restore its state from a JSON string. It might be a bit bigger in file size than a binary blob but we are talking a few K here even for a huge app (unless you are saving images or something). In today's terms it's trivial.

    I can provide more info on this if you are interested.

    @RiemannLives Thanks a ton, I'll absolutely look into it.

    I haven't worked with JSON before, but I'm figuring it's roughly as easy as working with XML?

    Do you happen to know of any good tutorials or examples for converting AS3 objects to JSON strings?

  • RiemannLivesRiemannLives Registered User regular
    Winky wrote: »
    Winky I have had this exact problem come up. Different language, very different program, exact same problem.

    In the long run relying on your framework to do serialization / deserialization for you will always end up in this kind of issue. Sometimes the framework serializer has hooks so you can get away with just making some modifications (this is the case in C#) but a lot of the time the right thing is to maintain your own. This is actually a quite unusual! Usually the best answer is to use existing, tested, code whenever possible.

    There are two problems with using procedural serialization:
    1) versioning, as you have run into.
    2) it almost always serializes way more data than it needs to. Unless you put enough effort into marking up your data objects with attributes or whatever the language equivalent is to tell the serializer exactly what to do. But that usually ends up being as much work as just writing the serialization code.

    I just took a look at IExternalizable and IDataOutput (previously when I have used flash data is stored on a server not in a locally serialized blob) and I don't think there is a lot of value in trying to work with their interfaces. There just isn't anything there worth reusing.

    For AS3, I would recommend writing your own code to write out a JSON string and restore its state from a JSON string. It might be a bit bigger in file size than a binary blob but we are talking a few K here even for a huge app (unless you are saving images or something). In today's terms it's trivial.

    I can provide more info on this if you are interested.

    RiemannLives Thanks a ton, I'll absolutely look into it.

    I haven't worked with JSON before, but I'm figuring it's roughly as easy as working with XML?

    Do you happen to know of any good tutorials or examples for converting AS3 objects to JSON strings?

    JSON is simpler than XML. Can't do the stuff XML can, especially since there is no equivalent to XSD or XSLT, but it is super easy to work with from Actionscript and Javascript.

    It is allows you to encode objects, arrays of object and named attributes on objects. There is no typing. It is simple enough to write out by hand if you want to test your code.
    http://www.w3schools.com/json/default.asp

    AS3 (and previous versions of flash) have built in support for it: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON.html

    Attacked by tweeeeeeees!
    KashaarWinky
  • WinkyWinky rRegistered User regular
    Winky wrote: »
    Winky I have had this exact problem come up. Different language, very different program, exact same problem.

    In the long run relying on your framework to do serialization / deserialization for you will always end up in this kind of issue. Sometimes the framework serializer has hooks so you can get away with just making some modifications (this is the case in C#) but a lot of the time the right thing is to maintain your own. This is actually a quite unusual! Usually the best answer is to use existing, tested, code whenever possible.

    There are two problems with using procedural serialization:
    1) versioning, as you have run into.
    2) it almost always serializes way more data than it needs to. Unless you put enough effort into marking up your data objects with attributes or whatever the language equivalent is to tell the serializer exactly what to do. But that usually ends up being as much work as just writing the serialization code.

    I just took a look at IExternalizable and IDataOutput (previously when I have used flash data is stored on a server not in a locally serialized blob) and I don't think there is a lot of value in trying to work with their interfaces. There just isn't anything there worth reusing.

    For AS3, I would recommend writing your own code to write out a JSON string and restore its state from a JSON string. It might be a bit bigger in file size than a binary blob but we are talking a few K here even for a huge app (unless you are saving images or something). In today's terms it's trivial.

    I can provide more info on this if you are interested.

    RiemannLives Thanks a ton, I'll absolutely look into it.

    I haven't worked with JSON before, but I'm figuring it's roughly as easy as working with XML?

    Do you happen to know of any good tutorials or examples for converting AS3 objects to JSON strings?

    JSON is simpler than XML. Can't do the stuff XML can, especially since there is no equivalent to XSD or XSLT, but it is super easy to work with from Actionscript and Javascript.

    It is allows you to encode objects, arrays of object and named attributes on objects. There is no typing. It is simple enough to write out by hand if you want to test your code.
    http://www.w3schools.com/json/default.asp

    AS3 (and previous versions of flash) have built in support for it: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/JSON.html

    Awesome, thanks!

  • durandal4532durandal4532 Registered User regular
    So I think I'm just going to prototype branching dialogue in Twine, actually.

    It's a bit annoying but it's a hell of a lot simpler than trying to do anything complex with the Gamemaker dialog stuff from scratch. Maybe I'll be able to find a really nicely formatted one pre-made.

    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
    Elvenshae
  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    Hey dudes!

    So I am announcing my own game jam that is running in October called SpookyJam. It's Halloween themed, 72 hours, and pretty relaxed. I am also giving away some prizes! So be sure to check it out. I would love to see what kind of stuff you guys come up with.

    I'm still putting the rest of the site together, but everything should be up in the next day or so.

    fx9dWZ0.png
    www.spookyjam.com

    I'm making video games. DesignBy.Cloud
    durandal4532doomybearElvenshaeWinkyDarkMechaTechnicalitykimeKoopahTroopahAistanFawstVegemyteIanatorZavianInfidel
  • durandal4532durandal4532 Registered User regular
    My (very very early) prototype:

    http://www.philome.la/Durandal4532/happy-entrails-prototype

    Turns out there is legit not a more useful node-based branching dialog designer around than Twine. Took less time, easier to follow, more fully featured than basically anything else I was fooling about with.

    Now as to actually implementing a dialog system in Gamemaker, that's a problem for tomorrow.

    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
    ElvenshaeTechnicality
  • TechnicalityTechnicality Registered User regular
    ...
    My (very very early) prototype:

    http://www.philome.la/Durandal4532/happy-entrails-prototype

    Turns out there is legit not a more useful node-based branching dialog designer around than Twine. Took less time, easier to follow, more fully featured than basically anything else I was fooling about with.

    Now as to actually implementing a dialog system in Gamemaker, that's a problem for tomorrow.

    I bought one statue, and when I went to re-arrange it thought I had both. It did not diminish my enjoyment of it though, nice prototype! It reminded me of how horribly addicted I got to "a dark room", and that playing these sort of games is bad for my productivity :)

    handt.jpg tor.jpg

    Elvenshae
  • durandal4532durandal4532 Registered User regular
    Oh blah, I literally looked that bug in the face, thought about the thing that would fix it, and then made some tea and forgot about it.


    I don't want to get crazy involved with making it in Twine because I'd like to have a strong graphical element in the final game, but it is so fast and fun for just hashing out ideas about possible features to implement.

    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
  • ElvenshaeElvenshae Registered User regular
    Oh blah, I literally looked that bug in the face, thought about the thing that would fix it, and then made some tea and forgot about it.


    I don't want to get crazy involved with making it in Twine because I'd like to have a strong graphical element in the final game, but it is so fast and fun for just hashing out ideas about possible features to implement.

    For some reason, I started losing money with every soothsaying attempt. Also, the entrails *always* stated that I should speak soothingly. Might be a bug, might just be random chance?

  • durandal4532durandal4532 Registered User regular
    edited September 2014
    Elvenshae wrote: »
    Oh blah, I literally looked that bug in the face, thought about the thing that would fix it, and then made some tea and forgot about it.


    I don't want to get crazy involved with making it in Twine because I'd like to have a strong graphical element in the final game, but it is so fast and fun for just hashing out ideas about possible features to implement.

    For some reason, I started losing money with every soothsaying attempt. Also, the entrails *always* stated that I should speak soothingly. Might be a bug, might just be random chance?

    Haha

    It's actually part of the central thesis!

    The game takes place in a world where soothsaying is accepted as an important part of everyday decision-making. I was specifically thinking of ancient Greece, where you'd ask the oracle to tell you when the best time to do basically anything was. Or to interpret your dreams, or whatever.

    The reason I'm not making it explicitly set in an ancient time period or a particular place is because I want players to go in with the assumption that because everyone acts like it works, soothsaying works. But actually, it totally doesn't! It's just a big old pile of entrails with some instructions attached that are basically meaningless. The only thing that actually helps is asking your clients what's up, and figuring out how to solve their problems. Having your assistant tail a client in this little example gets you +1 money, as a real toy example of the idea.

    The idea is that eventually you'd need to combine good "Soothsaying" practice with good investigatory practice. In this example version, the concept is reaaaally simplified as: you give good advice, but don't do the entrails right, you get a worse rep but your client lives to see another day and you get paid. And so on for the combinations of good advice/good practice. There's also a danger of just annoying your client because of course you're supposed to be able to just do this shit, not be asking her about what she had for dinner or whatnot. So you need to couch your investigating in the right way. In this little toy example it's just "Probing question" makes you lose rep, other questions make you gain money.

    So for the final game the concept would be that you start off trying to do the gut-readings, figure out they don't work, try to just give good advice based on logic. Then need to manage your relationships with clients so that they don't think you're a shitty oracle because you're totally misreading the intestines, even if your advice is good.


    The real genesis of this idea is a passage in Xenophon's Anabasis where he basically says "Haha, I know the soothsayer doesn't want me to settle a city here, but I've got his number. I'm going to ask him if it's a good idea, but look over his shoulder! That way he can't hide the results from me, because I know a bit about reading entrails."

    It's such a weird combination of absolute respect for the practice and understanding that the practitioner has their own angle on the thing. It made me think about what it would be like being this jack-of-all-trades advice-giver while not actually having your experiences be considered an integral part of the process.

    Edit: Oh yeah and also ha, I didn't include the bit in the investigation part that tells you specifically not to speak soothingly so you could be drawn to the other options.

    In the real game it'd be extensively different, actually telling the person some sequence of events to perform and coming to the conclusion that they're the best option through a combination of attempts to figure shit out.

    Edit: Oh! And, my concept for the actual readings in the game is a sort of Papers, Please style physical-ish puzzle. That way getting good at it won't become irrelevant later in the game, it'll be a skill you now use to convince clients of stuff instead of a thing that you think actually works. I want it to involve an element of enjoyable puzzle-solving so that people don't just toss it away as inconsequential, and I like that style of rule-accumulation puzzle.

    durandal4532 on
    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
    ElvenshaeKashaarCalica
  • KupotheAvengerKupotheAvenger Destroyer of Cake and other deserts.Registered User regular
    Have any of you guys tried Modular Sprite Creation? Familiar with Spine or Spriter? I'm considering using one or the other for a project I have in mind.

    fc: 1821-9801-1163
    Battlenet: Judgement#1243
    psn: KupoZero

  • AistanAistan Tiny Bat Registered User regular
    Hey dudes!

    So I am announcing my own game jam that is running in October called SpookyJam. It's Halloween themed, 72 hours, and pretty relaxed. I am also giving away some prizes! So be sure to check it out. I would love to see what kind of stuff you guys come up with.

    I'm still putting the rest of the site together, but everything should be up in the next day or so.

    fx9dWZ0.png
    www.spookyjam.com

    Yeah i'll be doing this.

    Assuming I can think up some sort of idea between now and then and can follow through when it starts, it'll be my first finished product. It'll be nice to have a bit of incentive for something, i've kind of lost steam after I halted my first couple initial projects.

    HallowedFaith
  • WinkyWinky rRegistered User regular
    Hey dudes!

    So I am announcing my own game jam that is running in October called SpookyJam. It's Halloween themed, 72 hours, and pretty relaxed. I am also giving away some prizes! So be sure to check it out. I would love to see what kind of stuff you guys come up with.

    I'm still putting the rest of the site together, but everything should be up in the next day or so.

    fx9dWZ0.png
    www.spookyjam.com

    I am so down for this. Any restriction on team size? Because I see myself recruiting six or seven of my friends for this.

    Also, how much pre-planning is allowable/suggested? Is the idea to be going into the 72-hours with a whole design doc ready, or to not even think about the game before the kick-off?


  • WinkyWinky rRegistered User regular
    Have any of you guys tried Modular Sprite Creation? Familiar with Spine or Spriter? I'm considering using one or the other for a project I have in mind.

    I have only played around with it but I adore Spine. The whole 2D mesh animation thing is amazing and can create some really beautiful motion. Sadly I found the current options for applying different skins insufficient for my game; namely the fact that the skin swapping doesn't work with all of the mesh animation options. That said, they were talking about fixing that eventually, and I'm sure if I put enough effort into it I may have been able to hack together something that works. I really don't personally see any advantages of using Spriter over Spine.

    Awesome example of gloriously smooth Spine animation:
    raptor-walk.gif

    As it is, I do my modular sprite animations in Flash, which works well enough. I've heard that Vanillaware's in-house stuff is actually Flash-based too. And luckily if you like the idea of animating in Flash but hate the idea of programming in it there's more than a few ways to get around that with various packages, though none of them are perfect.

    KashaarGlalKoopahTroopahdurandal4532HounKupotheAvengerElvenshaeFawstVegemyteDarkMechaIncenjucarZavianRainfall
  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    Winky wrote: »
    Hey dudes!

    So I am announcing my own game jam that is running in October called SpookyJam. It's Halloween themed, 72 hours, and pretty relaxed. I am also giving away some prizes! So be sure to check it out. I would love to see what kind of stuff you guys come up with.

    I'm still putting the rest of the site together, but everything should be up in the next day or so.

    fx9dWZ0.png
    www.spookyjam.com

    I am so down for this. Any restriction on team size? Because I see myself recruiting six or seven of my friends for this.

    Also, how much pre-planning is allowable/suggested? Is the idea to be going into the 72-hours with a whole design doc ready, or to not even think about the game before the kick-off?


    Team size doesn't matter. Most, if not all the work should be done during the Jam but it's a relaxed event so I am not holding anyones feet to the fire.

    I'm making video games. DesignBy.Cloud
  • WinkyWinky rRegistered User regular
    Told my team about the game jam and they're pumped!

    My artist is already making mock-ups:
    50cbea37a9c202ebd316d5a14fc26b02.png

    Come October 10th we're gonna be chomping at the bit :P

    Ed GrubermanHounFawstKoopahTroopahElvenshaedurandal4532HallowedFaithMNC DoverdoomybearkimeKupotheAvengerIanatorDarkMechaIncenjucarZavianDusda
  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    That looks awesome. Can't wait to see what everyone comes up with!

    I'm making video games. DesignBy.Cloud
  • durandal4532durandal4532 Registered User regular
    edited September 2014
    It is astonishing how little assistance there is out there for making a dang dialog box in Game Maker Studio.

    Like, click on a character:

    Jane:
    Hello adventurer! What do you want to do?
    -Adventure!
    -Not adventure!

    Select option with mouse or arrow keys.

    This has been a long process that's ended up with me choosing to probably modify this textbox engine. I have seen more tutorials on how to make the fucking screen wobble than I have ones on how to have an NPC ask a question and a PC answer it. BLUURGH.

    http://www.youtube.com/watch?v=3_vsitAfoXs

    durandal4532 on
    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
  • MiserableMirthMiserableMirth Registered User regular
    I have no experience with Game Maker. Are you having problems displaying a dialogue box on screen or is it allowing the player to choose an option?

  • durandal4532durandal4532 Registered User regular
    edited September 2014
    I'm making a bit of headway thanks to this guy:

    http://gmc.yoyogames.com/index.php?showtopic=554511.

    The creation of a dialog box + a single line of dialog is no big deal: draw a big box, draw_text(x.inthebox, y.inthebox, "Hi!")

    The issue is creating dialog, then creating responses that the user can select, then creating new dialog in the box in response to those options. There are a bunch of half-finished forum discussions or tutorials that teach you exactly up until the "draw a line of text on the screen" stage, but none that discuss branching dialog extensively.

    Edit: Annnnd with a few edits I finally have it: move close enough to an NPC, hit space, they change direction to look at you, a dialogue box with options pops up, you select with arrow or cursor, press space or click to respond, see new text from the NPC.

    Finally.

    Swear to fucking god, I'm making a youtube tutorial of this once I've made certain I understand all of this guy's code.

    I am astonished this isn't covered anywhere in the official tutorial stuff.

    Now I just need to see if I can make this read from XML. Oor maybe HTML because Twine exports to HTML.

    Edit: Wait, no: JSON. Game Maker Studio actually supports JSON, so that's probably my best bet. I just don't want to be writing ten thousand lines of dialog in Case statements.

    durandal4532 on
    Take a moment to donate what you can to Critical Resistance and Black Lives Matter.
    Kashaar
  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    I emulated through code, what my brain does when I can't figure something out.

    BxMcI99IQAAgADU.png:large

    I'm making video games. DesignBy.Cloud
  • AistanAistan Tiny Bat Registered User regular
    What count are you up to now?

  • HallowedFaithHallowedFaith Call me Cloud. Registered User regular
    The .pngs are empty, there is no way of knowing the count. Just like life.

    I'm making video games. DesignBy.Cloud
    FawstMachwing
  • MachwingMachwing It looks like a harmless old computer, doesn't it? Left in this cave to rot ... or to flower!Registered User regular
    edited September 2014
    I made a toon shader :3 It uses a shadow bias map!

    prh2kmj.jpg


    Anybody played much with linking between the material editor/blueprint in UE4? I'm trying to replicate this, but they got rid of the custom lighting shader type and you can't use light vectors without like, updating it from blueprint or something :/

    Machwing on
    l3icwZV.png
    ElvenshaeamnesiasoftMahnmutHallowedFaithWinkyKashaarKoopahTroopahsurrealitycheckFawstdurandal4532
  • KashaarKashaar Low OrbitRegistered User regular
    Yeah, UE4's using a deferred lighting system. I've messed with toon shading in it a little bit, and your best bet is probably to do it in postprocessing. Might have to manually pass the closest light positions through parameters to calculate lighting.

    Generally, use material parameter collection assets to pass global values to materials, and make dynamic material instances for per-object values.

    Indie Dev Blog | Twitter | Steam
    Unreal Engine 4 Developers Community.

    I'm working on a cute little video game! Here's a link for you.
  • LaCabraLaCabra MelbourneRegistered User regular
    I made a procedurally generated spaceship interior in UE4
    15019833557_1052ca4a35_o.jpg

    vines on m'blog

    KoopahTroopahKashaarElvenshaeEd GrubermandoomybearVegemyteFawstSmokeStacks
  • KoopahTroopahKoopahTroopah The koopas, the troopas. Philadelphia, PARegistered User regular
    I should really start messing around in UE4. Every screen and lighting detail I've seen look awesome.

    Fawst
  • LaCabraLaCabra MelbourneRegistered User regular
    yeah it's rad. that whole spaceship thing took me less than a day

    Elvenshae
  • HandkorHandkor Registered User regular
    That toon shader looks really good. But yeah so far I've only been able to pass parameters to the material from blueprint. Like Kashaar said, passing the dominant or closest light is the way to go.

  • MachwingMachwing It looks like a harmless old computer, doesn't it? Left in this cave to rot ... or to flower!Registered User regular
    I am literally barfing everywhere as I read about deferred shading. Like whoop dee doo unlimited lights SO MUCH CRAP'S GOTTA BE SCREENSPACE OR POST-PROCESS THIS IS HARRIBLE

    l3icwZV.png
Sign In or Register to comment.