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/
Options

Game Dev - Unreal 4.13 Out Now!

18788909293100

Posts

  • Options
    ElvenshaeElvenshae Registered User regular
    No pressure!

  • Options
    LaCabraLaCabra MelbourneRegistered User regular
    Yeah for real D:

    Also, someone was asking how you'd do those "Itano Circus" anime missiles you get in fuckin' Gundam Whatever or whatever so I did this as a quick experiment and it made a cool couple gifs
    tumblr_o6kso0JSTk1v0qcloo1_500.gif
    tumblr_o6kso0JSTk1v0qcloo2_r1_1280.gif

  • Options
    MNC DoverMNC Dover Full-time Voice Actor Kirkland, WARegistered User regular
    Now just add in those little "c" shaped explosions:

    Picture+10.png

    Need a voice actor? Hire me at bengrayVO.com
    Legends of Runeterra: MNCdover #moc
    Switch ID: MNC Dover SW-1154-3107-1051
    Steam ID
    Twitch Page
  • Options
    RoyceSraphimRoyceSraphim Registered User regular
    Okay, researched and got little hitboxes appearing behind my character to kill enemies. Can make those invisible* and repeat with the boss. Now to just figure out how to make the boss move around the way I want.

    *I have used invisible blocks as the mechanism for my ground collision, I was curious if there was a better way.

  • Options
    HandkorHandkor Registered User regular
    Yeah those missiles have always been super easy and fun to implement. I've always found that the limiting factor was always managing that many entities at the same time.

  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    Okay, researched and got little hitboxes appearing behind my character to kill enemies. Can make those invisible* and repeat with the boss. Now to just figure out how to make the boss move around the way I want.

    *I have used invisible blocks as the mechanism for my ground collision, I was curious if there was a better way.

    Usually, you just attach an additional collider to an existing object. I mean, that's what I did in XNA, and that seems to be the idiomatic way in Unity. What engine are you using?

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    edited May 2016
    Not that I understand Unity, myself. Does anyone have any idea why my coroutine is freezing the whole goddamn game?

    I've got this IEnumerator method for "typing" up text in my text box:
    private IEnumerator TextTyping(string lineOfText)
        {
            int lineProgressIndex = 0;
            textObj.text = "";
            isTyping = true;
            skipTypingRequested = false;
    
            while(isTyping && !skipTypingRequested && (lineProgressIndex < lineOfText.Length - 1))
            {
                textObj.text += lineOfText[lineProgressIndex];
                lineProgressIndex += 1;
                Debug.Log("About to wait");
                yield return new WaitForSeconds(typingDelay);
                Debug.Log("Finished waiting");
                // play type sound
            }
            textObj.text = lineOfText;
            isTyping = false;
        }
    

    Called from an ordinary method on the same object, so that other objects can call this if they want to be deleted right after:
    private void DisplayNewLine()
        {
            StartCoroutine(TextTyping(textLines[currentLine]));
        }
    

    And the whole thing is usually started up by sending a new dialog file to the DialogManager object:
    public void ReceiveDialog(TextAsset ta, int startLine = 0, int endLine = 0)
        {
            if(IsTextBoxActive()) { return; }
            LoadDialog(ta, startLine, endLine);
            EnableTextBox();
            DisplayNewLine();
        }
    

    Which is, in this test, being called by my ShoutZone object.
    public void ShowText()
        {
            textBox.ReceiveDialog(textFile, startLine, endLine);
            playerCollider = null; // hacky; can't re-enable without exiting and re-entering collider
            if (destroyAfterDisplay) {
                Destroy(gameObject);
            }
        }
    

    The net effect is that it types the first character of the first line, freezes on the yield statement, and it never gets to my second Debug.Log call.

    Any suggestions?

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    KhavallKhavall British ColumbiaRegistered User regular
    I'm not sure I understand what you're trying to do there, but one problem is that I believe yield basically kicks out of the coroutine until the next frame(or until f waitforseconds have passed). So anything that happens after the yield , but within the condition, isn't happening.

    The rest seems fine, though I'm not sure if it's all necessary(I don't know what you're using "isTyping" for, for instance).

    One thing that might just not have been copied over, but where do you declare the typingdelay, and what is it set at?

    Also, maybe this is fine, but it seems weird to me to have a void accept arguments, only to have them entered as.. 0? That... I'm not sure what that does, in the public void ReceiveDialog(TextAsset ta, int startLine=0, int endLine = 0). That's not really accepting arguments I would think. I've never seen it before though, so maybe it's just something I'm not familiar with.

  • Options
    RendRend Registered User regular
    Khavall wrote: »
    Also, maybe this is fine, but it seems weird to me to have a void accept arguments, only to have them entered as.. 0? That... I'm not sure what that does, in the public void ReceiveDialog(TextAsset ta, int startLine=0, int endLine = 0). That's not really accepting arguments I would think. I've never seen it before though, so maybe it's just something I'm not familiar with.

    Those are default arguments. So, you don't have to supply them, and if you don't, that's what you get.

  • Options
    KhavallKhavall British ColumbiaRegistered User regular
    Rend wrote: »
    Khavall wrote: »
    Also, maybe this is fine, but it seems weird to me to have a void accept arguments, only to have them entered as.. 0? That... I'm not sure what that does, in the public void ReceiveDialog(TextAsset ta, int startLine=0, int endLine = 0). That's not really accepting arguments I would think. I've never seen it before though, so maybe it's just something I'm not familiar with.

    Those are default arguments. So, you don't have to supply them, and if you don't, that's what you get.

    Huh.

    The more you know! I thought it might be something like that, just I've never seen it or done it before, so I wasn't sure.

  • Options
    RendRend Registered User regular
    @templewulf
    Does your code work if you comment out the line:

    Destroy(gameObject);

    It seems that if you destroy the object which called the coroutine, the coroutine stops getting updated.

  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    Rend wrote: »
    @templewulf
    Does your code work if you comment out the line:

    Destroy(gameObject);

    It seems that if you destroy the object which called the coroutine, the coroutine stops getting updated.

    Actually, yes, but only because I fixed that mistake just yesterday!. You'll notice that my IEnumerator method is private, so it can only be called from the same object. I provide the public method right under "Called from an ordinary method on the same object, so that other objects can call this if they want to be deleted right after:" That way, any other object that may or may not get deleted has to call the public method, thus attaching the coroutine to the dialog box manager.

    I also just double checked, and yeah that Destroy method makes no difference. However, if I change `yield return new WaitForSeconds(typeDelay);` to `yield return null;`, it doesn't freeze up.

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    edited May 2016
    Khavall wrote: »
    I'm not sure I understand what you're trying to do there,
    It's essentially a JRPG-style dialog box that types out one character at a time instead of displaying the whole line at once.
    but one problem is that I believe yield basically kicks out of the coroutine until the next frame(or until f waitforseconds have passed). So anything that happens after the yield , but within the condition, isn't happening.
    Sure, the delay is what I want, but the problem is that it never resumes.
    The rest seems fine, though I'm not sure if it's all necessary(I don't know what you're using "isTyping" for, for instance).
    Since StartCoroutine puts whatever you call in a different thread (sort of*), it's common to have flags to mark the state of the object. That way, if I get a request to stop the text typing (what skipTypingRequested does), I can check those flags in this coroutine. Like a primitive, degenerate form of semaphores.
    One thing that might just not have been copied over, but where do you declare the typingdelay, and what is it set at?
    That's a public variable on the class, so I can change it in the editor.
    // object handles
        public GameObject textBox;
        public Text textObj;
        // editor properties
        public float typingDelay = 0.1f;
    
        // private!
        private TextAsset textFile;
        private string[] textLines;
        private int currentLine;
        private int endAtLine;
        private float frozenTimeScale = 1f; // temp var; can we factor this out?
        private bool isTyping = false;
        private bool skipTypingRequested = false;
    
    Also, maybe this is fine, but it seems weird to me to have a void accept arguments, only to have them entered as.. 0? That... I'm not sure what that does, in the public void ReceiveDialog(TextAsset ta, int startLine=0, int endLine = 0). That's not really accepting arguments I would think. I've never seen it before though, so maybe it's just something I'm not familiar with.

    Since those determine what line to start and end on in a given text file, calling it without specifying will just display the first line. I may not end up using that at all, but it seemed like a thing I might want at some point. C# Optional Arguments

    Edit:
    I am given to believe that the coroutines don't actually start new threads, but the flow control is easier to visualize that way.

    templewulf on
    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    templewulf wrote: »
    Not that I understand Unity, myself. Does anyone have any idea why my coroutine is freezing the whole goddamn game?

    Ahaha, apparently coroutines are updated on frame updates, and adjusting Timescale applies to coroutines as well. Meaning that setting `Time.timeScale = 0` to stop enemy behaviors means that my coroutine won't do anything either!

    What's the best way to pause action without freezing up my coroutines? I looked at Time.realtimeSinceStartup, but that sounds like just implementing my own game loop inside Unity's!

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    UselesswarriorUselesswarrior Registered User regular
    edited May 2016
    If you want to dive deeper on co-routines:

    http://stackoverflow.com/a/32469037/20774
    http://twistedoakstudios.com/blog/Post83_coroutines-more-than-you-want-to-know

    It's a good thing to get a grasp on.
    templewulf wrote: »
    What's the best way to pause action without freezing up my coroutines? I looked at Time.realtimeSinceStartup, but that sounds like just implementing my own game loop inside Unity's!

    So Time.timeScale can get really dangerous and complex. A lot of unexpected corner cases and weirdness can pop up unless you are really careful with it. For a serious project I'd highly recommend coming up with your own pause logic.

    That being said, do Invoke and InvokeRepeating work with time scale set to 0?

    Uselesswarrior on
    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    UselesswarriorUselesswarrior Registered User regular
    Khavall wrote: »
    https://www.youtube.com/watch?v=irDvP2evGio&amp;feature=youtu.be

    It's installed! I need to do some final touch-up on the cabinet tomorrow, but it's installed!

    Also for some reason it doesn't seem to be picking a new key when it restarts but... that is the least of my worries. And since the gallery opens tomorrow, I'm not really going to worry about little things like that.

    This is neat as hell man. Congrats on getting this done.

    Are those two trackballs there?

    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    UselesswarriorUselesswarrior Registered User regular
    LaCabra wrote: »
    rope arrows
    tumblr_o6l1iyS7im1v0qcloo1_250.gif

    Nice, reminds me a lot of Thief. The way you move you started to move camera up reminded me of the climb animation from the game as well.

    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    RoyceSraphimRoyceSraphim Registered User regular
    templewulf wrote: »
    Okay, researched and got little hitboxes appearing behind my character to kill enemies. Can make those invisible* and repeat with the boss. Now to just figure out how to make the boss move around the way I want.

    *I have used invisible blocks as the mechanism for my ground collision, I was curious if there was a better way.

    Usually, you just attach an additional collider to an existing object. I mean, that's what I did in XNA, and that seems to be the idiomatic way in Unity. What engine are you using?

    Personal project for gamemaker.

    I also hit another block as I completely forgot what happened when enemies damaged you in the original kung fu, had to find a streaming site and actually play it.

  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    If you want to dive deeper on co-routines:

    http://stackoverflow.com/a/32469037/20774
    http://twistedoakstudios.com/blog/Post83_coroutines-more-than-you-want-to-know

    It's a good thing to get a grasp on.
    templewulf wrote: »
    What's the best way to pause action without freezing up my coroutines? I looked at Time.realtimeSinceStartup, but that sounds like just implementing my own game loop inside Unity's!

    So Time.timeScale can get really dangerous and complex. A lot of unexpected corner cases and weirdness can pop up unless you are really careful with it. For a serious project I'd highly recommend coming up with your own pause logic.

    That being said, do Invoke and InvokeRepeating work with time scale set to 0?

    I've got a good grasp on C#, IEnumerator, and the way yield works. Ruby probably did more of that for me than C# itself did.

    But I'm using Unity like a dog rolling around a pile of leaves. It's messy, I don't really know what's happening, and hopefully I'll turn up something good if I just smother my face in it enough.

    I didn't check InvokeRepeating; I think your advice about rolling my own pause logic is where I'll put my efforts next. I guess a finite state machine was inevitable!

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    ThendashThendash Registered User regular
    @templewulf I was going to recommend a state machine but you've already come to that conclusion it seems. My 2 cents anyways, I'd have a state machine with at least two states, an active and an in-active state. The active state would hold all of enemy's behavior logic, and the enemy would enter into that state on their turn. The in-active state might hold some animation logic for when they take damage or something like that, along with logic to decide when it's their turn. Game Programming Patterns has a chapter on state machines that I found was a decent primer on the subject and is also not engine dependent.

  • Options
    KhavallKhavall British ColumbiaRegistered User regular
    Khavall wrote: »
    https://www.youtube.com/watch?v=irDvP2evGio&amp;feature=youtu.be

    It's installed! I need to do some final touch-up on the cabinet tomorrow, but it's installed!

    Also for some reason it doesn't seem to be picking a new key when it restarts but... that is the least of my worries. And since the gallery opens tomorrow, I'm not really going to worry about little things like that.

    This is neat as hell man. Congrats on getting this done.

    Are those two trackballs there?

    Thanks!

    It's one trackball, and then a button with an LED in it(that even changes colours!)

    Tonight was the gallery opening and reception and.. looks like I need to patch it tomorrow. The towers aren't stopping when they're dying, which is normally fine if unclear, but the laser/melody towers also start playing the next time the scene is loaded and one laser tower is working, even though they're not firing at all and have no target. And then if you load again more play, and they get louder and louder with overlapping events until it's completely unbearable as soon as you build one tower on like the 3rd playthrough. And since it's supposed to be running for hours at a time, well.....

  • Options
    templewulftemplewulf The Team Chump USARegistered User regular
    Thendash wrote: »
    @templewulf I was going to recommend a state machine but you've already come to that conclusion it seems. My 2 cents anyways, I'd have a state machine with at least two states, an active and an in-active state. The active state would hold all of enemy's behavior logic, and the enemy would enter into that state on their turn. The in-active state might hold some animation logic for when they take damage or something like that, along with logic to decide when it's their turn. Game Programming Patterns has a chapter on state machines that I found was a decent primer on the subject and is also not engine dependent.

    That's a pretty good idea. I think that in combination with a WaitForRealSeconds as suggested on the Unity blog would help.

    Twitch.tv/FiercePunchStudios | PSN | Steam | Discord | SFV CFN: templewulf
  • Options
    MachwingMachwing It looks like a harmless old computer, doesn't it? Left in this cave to rot ... or to flower!Registered User regular
    so I spent an hour today trying to debug why a local server process, when locked by Process A and asked for a lock by Process B, kept reporting that it "Could not be locked by Process B because it is locked by Process B"

    it turns out my god damn string formatting was "Could not be locked by Process {0} because it is locked by Process {0}"

    l3icwZV.png
  • Options
    UselesswarriorUselesswarrior Registered User regular
    templewulf wrote: »
    Thendash wrote: »
    @templewulf I was going to recommend a state machine but you've already come to that conclusion it seems. My 2 cents anyways, I'd have a state machine with at least two states, an active and an in-active state. The active state would hold all of enemy's behavior logic, and the enemy would enter into that state on their turn. The in-active state might hold some animation logic for when they take damage or something like that, along with logic to decide when it's their turn. Game Programming Patterns has a chapter on state machines that I found was a decent primer on the subject and is also not engine dependent.

    That's a pretty good idea. I think that in combination with a WaitForRealSeconds as suggested on the Unity blog would help.

    You could also go nuts and use an Entity Component System.

    https://www.youtube.com/watch?v=1wvMXur19M4&amp;utm_content=buffer601fb&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer

    I wrote my game in it and it's a nice design pattern, though there is some pain points due to learning best practices for a new style of architecture.

    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    ElvenshaeElvenshae Registered User regular
    Khavall wrote: »
    Khavall wrote: »
    https://www.youtube.com/watch?v=irDvP2evGio&amp;feature=youtu.be

    It's installed! I need to do some final touch-up on the cabinet tomorrow, but it's installed!

    Also for some reason it doesn't seem to be picking a new key when it restarts but... that is the least of my worries. And since the gallery opens tomorrow, I'm not really going to worry about little things like that.

    This is neat as hell man. Congrats on getting this done.

    Are those two trackballs there?

    Thanks!

    It's one trackball, and then a button with an LED in it(that even changes colours!)

    Tonight was the gallery opening and reception and.. looks like I need to patch it tomorrow. The towers aren't stopping when they're dying, which is normally fine if unclear, but the laser/melody towers also start playing the next time the scene is loaded and one laser tower is working, even though they're not firing at all and have no target. And then if you load again more play, and they get louder and louder with overlapping events until it's completely unbearable as soon as you build one tower on like the 3rd playthrough. And since it's supposed to be running for hours at a time, well.....

    ART!!!

  • Options
    UselesswarriorUselesswarrior Registered User regular
    edited May 2016
    New beta out!

    Now with hats:

    qf6PMdHl.pngaV04bndl.png

    What can I say, it's not that interesting of a visual release.

    I spent a lot of time tuning the input and performance for this release. I came up with a system to auto calibrate the accelerometer and I need to figure out how invisible I can make it to the players. If anyone takes a look I would appreciate feedback. I have survey set up here.

    Click here for the public Android beta.

    Uselesswarrior on
    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    KhavallKhavall British ColumbiaRegistered User regular
    edited May 2016
    Ok, everything seems to be patched and working!

    If you guys want to play what I'm still calling the "alpha", you can grab it here!(Currently the only hosting I have is my school server, but I'm probably going to put it elsewhere too)

    EDIT: Ok also alt-links here(win), and here(mac)

    One important note: In the intermediate menu-type screen that loads at the beginning, and also loads if you don't touch it for a minute after the end of the game, it says "Push button to start". "Button" in this case is the space bar, since that's what the button in the machine was bound to.

    Khavall on
  • Options
    ThendashThendash Registered User regular
    @Khavall I get this error with the windows version: "There should be 'DJ Tower_Data'
    folder next to the executable"
    I was in Vancouver last week, it would have been super cool to come check out the cabinet in person, too bad.

  • Options
    KhavallKhavall British ColumbiaRegistered User regular
    edited May 2016
    Aha! That's right, Unity does that weird thing. I'll fix it and re-upload.

    EDIT: It should be fixed and at the same address now.

    Khavall on
  • Options
    KupiKupi Registered User regular
    Kupi's Weekly Status Update

    I implemented the logic change I alluded to last time: instead of representing a curve by a dozen or so individual GameObjects with EdgeCollider2Ds, a curve is represented by just one EdgeCollider2D with its own points, and the Hamsterball will travel along it. The logic is a bit more complicated, but the savings on GameObjects is worth it!

    After that, I moved on to learning how to do editor extensions. The SurfaceNode component I wrote now has an interface to automatically generate its Edge in the shape of a curve or a straight line that extends from your choice of the corners of any attached SpriteRenderer. Furthermore, SurfaceNode also has some grid-snapping behavior that keeps all the tiles nicely arranged. I haven't gotten to this bit yet, but I have plans to also detect whether the surface's endpoints are near any other surface's endpoints whose surface normals are close enough to treat as being contiguous with it. Once that's done, the end result will be the ability to define platform tiles and just fly them into place, Super Mario Maker-style. And that feels pretty damn good for only having an hour a day for a week thrown at this.

    Obligatory screenshot! The tiles still have a debug component attached that renders their edge colliders and a representation of the surface normal at the center of each line segment in the edge.

    bXMjfEG.png

    My favorite musical instrument is the air-raid siren.
  • Options
    UselesswarriorUselesswarrior Registered User regular
    Khavall wrote: »
    Ok, everything seems to be patched and working!

    If you guys want to play what I'm still calling the "alpha", you can grab it here!(Currently the only hosting I have is my school server, but I'm probably going to put it elsewhere too)

    EDIT: Ok also alt-links here(win), and here(mac)

    One important note: In the intermediate menu-type screen that loads at the beginning, and also loads if you don't touch it for a minute after the end of the game, it says "Push button to start". "Button" in this case is the space bar, since that's what the button in the machine was bound to.

    Got a chance to try it out. Thoughts:
    • I get prompted for a firewall exception every time I start the app. What's the reason for this? Analytics?
    • For some reason I didn't see the tutorial on first load up. When I restarted the game it appeared, not sure why I missed it the first time.
    • Tutorial has a lot of text and moved to the next page before I could read everything.
    • The groove text is cutoff on my Mac. (It's a retina Macbook Pro)
    • The game might be too zoomed in. It takes awhile before you even see the first enemy, which feels kind of weird because you don't see if the objective / what the towers are doing immediately.
    • It's really hard to recover from a lost tower. It seems like once you lose two or more, your days are numbered. It would be nice if you could recover in some way.
    • Not quite sure how to play the game well, there isn't quite enough feedback as to what was a good play session vs when I am playing poorly.

    Really like the concept. Will be curious to see how it develops.

    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    RoyceSraphimRoyceSraphim Registered User regular
    edited May 2016
    99 bugs of code on the wall
    99 bugs of code
    take one down, patch it around
    HOLYFUCKHOWDOIUNDOWHATIDID on the wall

    Back to square one. Transferring all the gamemaker step events to scripts went well for my player object and the generic enemies, but for some reason, the boss slowly descended the screen without impacting my objects as the EXACT same script should have had her do.

    edit: I'm an idiot who forgot how to properly write a multi line "if statement"

    So my code did compile
    and it did switch states properly to the attack script
    and the attack script did trigger the timeline
    and the timeline did do everything properly in the first moment

    and that's when the boss stopped working and just drifted to the left in her default animation and a hitbox still there.....I should color the boss' hitbox differently, maybe checkboards.

    RoyceSraphim on
  • Options
    GlalGlal AiredaleRegistered User regular
    The worst thing is when you undo, but it's still broken.

    That's the one thing that I'm uncomfortable with re: graphical logic editors like Blueprints. If I'm editing an object's BP and undo 10 steps, will it undo just that editor's 10 steps or is it undoing stuff I did globally? Can the undo/redo be reliably used even with complex operations like deleting a huge chunk of nodes?
    Considering that logic inside, say, a function, is tied to the outside parameters feeding into it, what will happen if I change the outside parameters? Will it auto-adjust the function? And if I then undo that, will it fix what it adjusted?

  • Options
    UselesswarriorUselesswarrior Registered User regular
    I don't trust anything that I can't reliably version control.

    Hey I made a game, check it out @ http://ifallingrobot.com/. (Or don't, your call)
  • Options
    KashaarKashaar Low OrbitRegistered User regular
    Not sure what you guys mean. Blueprints can be very reliably version controlled, even have a visual diff tool that let you compare your current revision to any previous revision, and even a merge tool.

    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.
  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    Kashaar wrote: »
    Not sure what you guys mean. Blueprints can be very reliably version controlled, even have a visual diff tool that let you compare your current revision to any previous revision, and even a merge tool.

    Do they? Last I checked it was just a binary blob so the usual tools don't understand it

  • Options
    SavgeSavge Indecisive Registered User regular
    So I think I want to learn Unreal Engine, are there any good tutorials or books for learning it?

    I've tried Unity in the past but I think I'd like working in C++ again, feels raw.

  • Options
    PhyphorPhyphor Building Planet Busters Tasting FruitRegistered User regular
    Savge wrote: »
    So I think I want to learn Unreal Engine, are there any good tutorials or books for learning it?

    I've tried Unity in the past but I think I'd like working in C++ again, feels raw.

    I found just playing around with their samples worked for me. Start with creating a few different type of template projects, then go download their free mini games and tech demos and look at how they do stuff

  • Options
    SavgeSavge Indecisive Registered User regular
    Is Unreal Engine friendly for the one man indie game developer or is it the kind of engine best suited for multiple people with specialized skills?

  • Options
    KashaarKashaar Low OrbitRegistered User regular
    Phyphor wrote: »
    Kashaar wrote: »
    Not sure what you guys mean. Blueprints can be very reliably version controlled, even have a visual diff tool that let you compare your current revision to any previous revision, and even a merge tool.

    Do they? Last I checked it was just a binary blob so the usual tools don't understand it

    Yes they do - it's built right into the engine. So if you use Perforce, Git, or SVN with the engine integration (and there's really no reason why you shouldn't), you can diff them right there while working on stuff. It's pretty handy! :)

    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.
Sign In or Register to comment.