Search Unity

Games Retro 3D RPG, anime style character, real-time combat

Discussion in 'Works In Progress - Archive' started by Master-Frog, Apr 2, 2017.

  1. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Cool.gif

    It's more than what it looks like.

    The whole bottom menu is dynamically generated based on the unit's abilities. Right now, he has one ability, "Move". The code for handling the cursor is contained in the Command Interface, which finally issues the Move order to the unit.

    I did some soul searching and it did occur to me that abilities are going to be pretty unit specific, because I want all the units in this game to be as unique and fun as possible. So, for now I'm doing away with the central data idea for abilities, and I'm defining the abilities on the units themselves. This is how impressive that looks right now:

    upload_2017-4-15_22-35-48.png

    So, I am using Unity's ability to automatically expose serializable objects when contained in an array. At least, for now. This is how Meteor Crush worked, in its entirety, at the end, in terms of defining the composition and intensity of each stage. Each level was defined just like this. Of course, I like to make my own editor scripts now, but this quick and dirty method works.

    The thing about the way I develop games is that it doesn't look anything like game development. It's just, this hot mess, organized chaos. I like the way it feels to be in the middle of it, for example, only I know what is in my "Junk Repo" folder, and why I have it there. The whole process is organic. As piece by piece assembles, it begins to look like something. As I test, over and over, I check for bugs repeatedly throughout the process, killing them without mercy as I find them. I will spend hours chasing down the slightest bug so it won't bite me later on, not that I usually have to, the average bug fix time is about 15 minutes for a really nasty one.

    For example, this happened:

    Code (CSharp):
    1.                 if (HitUnit != null) {
    2.                     SelectUnit(HitUnit);
    3.                 }
    I accidentally changed to:

    Code (CSharp):
    1.                 if (HitUnit != null) {
    2.                     SelectedUnit = (HitUnit);
    3.                 }
    The unit was getting selected, I could confirm from the editor properties that were changing in real-time, but the abiltiy command bar wasn't showing up. Because I wasn't running the proper method that makes all that magic happen,and it resulted in no code errors.

    Fun times.

    Still, I wouldn't be tackling a turn-based RPG if I wasn't looking for a challenge.
     
  2. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    I don't know what to say, I have a not very good computer, but I never have any issues even when doing things like this:

    upload_2017-4-16_7-39-1.png

    It's so bad... I mean, why on earth would you populate a list with each unit each update? I don't know, but it took 2 seconds to write and this is what I get out of it:

    upload_2017-4-16_7-40-1.png

    So if I ever run into a bottleneck, I can just change the Update() method call to an UpdateBattleManager() method call and only call it when Units are created or destroyed. This is probably the sloppiest thing I've written into the alpha so far, so in a way it's actually winning (the competition of being the worst thing).

    I guess my philosophy is "optimize as needed" rather than "premature optimization". By doing crap like the above I will get to know the boundaries of my application well, and I will always be able to find more ways to reduce FPS later on, rather than trying to make everything so concise and streamlined (at the expense of time and refactoring) that if I ever do discover a bottleneck, there's nothing I can really do it will just be a hard limit.

    The way I look at these things is that people's computers can run First Person Shooters, games with thousands of units on screen at a time, particle effects that I can't even fathom, etc. The "idea" that you need to super-optimize every line of code you write is antiquated. You don't. You should since it is a "best practice" but then again, my CS teacher once told me games were "useless" and his favorite program was Microsoft Access.
     
  3. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302


    The problem in my perspective with coding a game like this, is that I have never made anything of this scale before, so it's really hard to make informed decisions about my object structures, since I have no experience to fall back on. I'm sort of trying to imagine the roles of these various objects and predict how they will interact, as best I can.

    upload_2017-4-16_9-14-40.png

    Loose roles as of this point:

    Command Interface - This is the highest layer, which has a view of everything else and brings it all together.

    Battle Manager - This keeps track of whose turn it is, and I suspect will also be able to queue up mid-combat dialogue if needed, and also will track victory/defeat conditions and anything that pertains to the whole battle, such as "cannot run away" (boolean).

    GUI - This is a view layer, and rests on the main camera it only knows how to display itself, receive mouse clicks and then dispatch messages to the people who need them. In a way, it's also a control layer, but only because the two make sense in this regard "Graphical interface" is both view and control.

    Ability Command Bar - Organizes the commands on the command bar. I will make one for the items as well as anything else that needs a menu.

    There is an infinite way of doing these things, but what I'm aiming for is the shortest distance between two points, and in my spare time I'm making great progress--considering plenty of devs out there take much longer to make rather elementary 2D games, I'm only about 2 weeks into this and it's not been even close to part time development, I've been playing SC2 and hanging out with the family and working full-time.

    More to come.
     
    Last edited: Apr 16, 2017
    RavenOfCode likes this.
  4. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302


    Break Time
     
  5. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Design Change

    Last night I instigated an aggressive flame war inside SC2 general chat, and finally quit, it was never a game for me. I'm creative and casual, and it's destructive and hardcore. So I went and installed League of Legends (like everybody else) and played the tutorial map.

    After playing as that hot archer chick, with the spread bow attack, and those cute little minions that spawn and give their lives for the noble cause of "whatever" it is they're fighting over, I have to say it was cool.

    There's a feeling of excitement to it, especially when you see the other champions come into the picture, and then its not just straight up you vs. Them, hitting each other over the head with a hammer, because the minions can do a lot of damage to the towers or to your character, and depending on if you're melee or ranged, you may not be able to get a shot at that enemy champion at all.

    At this point in my game, I was going to go turn-based for the combat system, but I've been nervous for some reason about how it would play out . . . And now I see why. And I have changed my mind. It's easier just to give the player full real time control of their unit, much easier in fact, and I think the combat will be much fresher and invite more eyes onto the project in the end.

    and be more fun to play, of course, which is all that matters anyway
     
    RavenOfCode likes this.
  6. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Switched into art mode for this week, managed to sort out the feel of Zeke's character in his animations. He's a young, energetic swordsman with somewhat ninja-like style to his movements, which is a cliche in anime so I'm at least in the vicinity of where I wish to be.

    Here's a video where you can see the (3) whopping total of animations I've created so far for him:


    I plan on making another back-swing attack for variety, so that when engaged in combat, he alternates between them.

    Then there is the matter of creating a jumping downward slash, a hurricane spin type move and I don't know what else but those two should be sufficient to get the ball rolling on combat.

    Once he has a "complete" (lol) set of animations, I can create a generic enemy and begin on AI for combat, win/loss conditions and all of that good stuff.

    It's taking shape gradually, I wish it were a quicker process but I just don't have the time anywhere, and I really mean that.
     
  7. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    wp_ss_20170420_0001.png
    Armor Bot
    Grunt level bot, face to face fights with enemies, occupying them, soaking up hits and doing steady low damage.


    wp_ss_20170420_0002.png
    Gunner Bot
    Ranged attacker, fires shells at the enemy from far away, has no close range attack so just runs away when he gets into trouble. His range and single-target power are what gets upgraded, he has the potential to be an extremely long-ranged attacker. He can attack Flying units, but suffers from a 50% accuracy reduction vs Flying

    So, while playing the game, you will need some allies, so I want to go in an interesting direction and make it so you have to purchase and upgrade your allies, which are built for different purposes. These allies are called Bots and you cannot control them, but they assist you in combat.

    New bots will be costly and you will only be able to command a certain # at the most, maybe a dozen or so.

    Multiple heroes is just not feasible for me, not at this time, so its gonna just be zeke and the boys.
     
    Last edited: Apr 21, 2017
  8. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    wp_ss_20170420_0003.png
    Launcher Bot
    Shoots out 8 missiles that lock-on to random enemies within its range, dealing low damage to multiple targets. If there are fewer targets, more damage will be done to each target. The launcher bot has a smaller range than the Gunner Bot and a lower DPS as well. However, Launcher can hit Flying targets and has no minimum range, and excels vs. a large number of enemies with low HP, and Launcher can attack while moving--however his movement speed is low. HP is moderate.

    As the game goes on, you can get access to bots that take more and more out of the "job" of playing the game, and you can build a more balanced and powerful team of bots, but the basic bots will still be useful and cost effective.

    I drew these up on my phone while at work and uploaded them, but had no idea how big they would end up being!
     
    Last edited: Apr 21, 2017
    GarBenjamin and RavenOfCode like this.
  9. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    This thread in a nutshell:
    upload_2017-4-22_0-3-25.png

    I added one more animation. It makes me super happy, but also sad because I didn't add even more animations. Also the sword is now shiny, because a weird scaling bug turned the old placeholder sword into a giant, screen-wide cube that blocked out the sun.

     
    GarBenjamin and RavenOfCode like this.
  10. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302


    I have reached the limit of how much hackery I am willing to do, I'm glad I was able to get some stuff moving around, and it occurred to me a couple days ago that I should *probably* use Unity's animation controller and not my own script because the animations aren't transitioning very well, and my code is getting convoluted and inflexible as I keep adding stuff.

    Here's a good example of how you *don't* want to program your games, kids:

    Code (CSharp):
    1. // Update is called once per frame
    2.     void Update () {
    3.         if (AIControlled) {
    4.             if (Action == "Moving" && !ArrivedAtDestination()) {
    5.                 NavMeshAgent.SetDestination(TargetUnit.transform.position);
    6.                 if (Action == "Standing") Action = "Moving";
    7.  
    8.                 Debug.Log("?");
    9.             } else {
    10.                 if (Action == "Moving") {
    11.                     TimeSinceLastAttack = AttackDelay * 0.66f;
    12.                     Action = "Standing";
    13.                 }
    14.                 Attacking = true;
    15.  
    16.                 if (Action == "Standing") {
    17.                     if (Vector3.Distance(transform.position, TargetUnit.transform.position) > NavMeshAgent.stoppingDistance) {
    18.                         NavMeshAgent.SetDestination(TargetUnit.transform.position);
    19.                         Action = "Moving";
    20.                     }
    21.                 }
    22.             }
    23.         } else {
    24.             if (Input.GetKeyDown(KeyCode.A)) {
    25.                 Attacking = true;
    26.             }
    27.             if (ArrivedAtDestination()) {
    28.                 if (Action == "Moving") {
    29.                     Action = "Standing";
    30.                 }
    31.             }
    32.         }
    33.  
    34.         if (Action == "Damage") {
    35.             NavMeshAgent.ResetPath();
    36.         }
    37.  
    38.         TimeSinceLastAttack += Time.deltaTime;
    39.         if (Attacking && Action == "Standing" && TimeSinceLastAttack > AttackDelay) {
    40.             Action = MeleeChain[MeleeIndex];
    41.             MeleeIndex++;
    42.             if (MeleeIndex >= MeleeChain.Length) MeleeIndex = 0;
    43.             NavMeshAgent.ResetPath();
    44.             TimeSinceLastAttack = 0;
    45.         }
    46.     }
    It's probably a good idea to stop here and fix it, since I know that Unity's animation state controller works really well and it can do transitions, etc. I wasn't sure that I was going to need it, but it definitely feels like I'm going to need it. But, its not a big deal to change things at this point, since its sooooo early in the process.

     
    Last edited: Apr 22, 2017
    GarBenjamin and RavenOfCode like this.
  11. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    1 step backward, two steps forward:



    I re-did everything today to use the Animation Controller, so my code no longer touches animations, it only affects variables and triggers inside of the animation controller component. In addition, I made a big change in the structure of the code.

    What I had before was F***ery, plain and simple, just hacking to get it working. I didn't know what structure I was going to need so I kept it structure-less. Now I know what I'm going for, so I had to re-think the whole thing.

    I had it so that there was an Actor component that was separate from the Unit component, and then the Actor was to be responsible for all of the animations, however, the Actor ended up needed way too much information about the Unit in order to do its job, or else the Unit was doing the Actor's job for it... and so I realized that there is no need for two separate components, but in this case what is needed is for a base Unit class and inherited classes off of Unit for each of the different units to be found in the game. This worked really well.

    I also learned that when controlling states, you can not have too many well-named, explicit variables and you cannot afford to get cute, it just doesn't work out. In a smaller game, like a platformer, you can get away with that, I know you can because I did it before. But, in a game like this, with the ability to move, use abilities, and lock-on and attack a target, there's just too much going on and it needs to be very clear what actions the user can take and when, and so I find that a very verbose, explicit style is what is needed in this case:

    Code (CSharp):
    1.     protected override void MeleeAttack () {
    2.         if (CanAttack) {
    3.             CanAttack = false;
    4.             IsAttacking = true;
    5.             IsMoving = false;
    6.             CanMove = false;
    7.             Animator.SetBool("IsRunning", false);
    8.             NavMeshAgent.ResetPath();
    9.             Animator.SetTrigger(MeleeAttacks[Mathf.RoundToInt(Random.Range(0, MeleeAttacks.Length))]);
    10.         }
    11.     }
    In addition, I did one more thing that I have a tendency to do, which I quite like:

    Since I need to have an Update() method running inside of the Unit for various functions, I need to have another update inside of my "Zeke" class, so what I do is create this inside of "Zeke.cs":

    Code (CSharp):
    1.     protected override void Step() {
    2.         if (CanMove) {
    3.             Animator.SetBool("IsRunning", IsMoving);
    4.         }
    5.  
    6.         // Doesn't work because of transition times
    7.         //CanAttack = (Animator.GetCurrentAnimatorStateInfo(0).IsName("Idle") ||
    8.         //    Animator.GetCurrentAnimatorStateInfo(0).IsName("Run"));
    9.  
    10.         if (!AIControlled) {
    11.             if (Input.GetKeyDown(KeyCode.A)) {
    12.                 MeleeAttack();
    13.             }
    14.         }
    15.     }
    And inside of Unit.cs I create this:

    Code (CSharp):
    1.     protected virtual void Step() {
    2.  
    3.     }
    And then in Update() for the Unit I just call "Step()" at the beginning of each update, and it works exactly as intended.

    Honestly I'm in love with this process all over again, I feel like I have got a grip on this game's code structure and what I want to do with it and I'm just very confident overall that I can make it go in the direction I want it to go.

    See? I'm not against using classes... just only when I think the structure suits the scenario. In this case, it works better than the other way.

    But there will be plenty of places where I still use SendMessage() and other things, wherever I think it will save me time and energy without breaking the program, and especially when I'm just sort-of feeling it out. It only took me a few hours today to go through and re-structure the code and I still managed to add new functionality, which is now your hero can "lock-on" to a target enemy and move to their position, and begin auto-attacking.

    Game development is hard, kids, no matter what that dude in a fedora in the Udemy commercial tells you.
     
    RavenOfCode and GarBenjamin like this.
  12. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Next update, I'm going to wait off until I have added 3-5 things, and make longer videos, but fewer in number. I love showing off every little thing, but I am becoming self-conscious about spamming the WIP forum.

     
    RavenOfCode likes this.
  13. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    It's your thread. Better to spam it and keep attention than to delay and lose it.
     
  14. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Oh, in that case . . . I'll just activate my weaponized autism skill.
     
    GarBenjamin likes this.
  15. RavenOfCode

    RavenOfCode

    Joined:
    Apr 5, 2015
    Posts:
    869
    Those sound effects... I died :D:D
     
    Master-Frog likes this.
  16. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302


    Acapella man
     
    PhilippG and RavenOfCode like this.
  17. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    Had a stressful moment after watching Why Him to correct a very simple error in the behavior of the hero.

    So, what I wanted to happen was when you activate the "Spin" attack, you are able to move freely, and moving will cancel your auto-attack lock on. But what was happening was that he was unable to move even when I was right-clicking to move him mid-spin. Turns out, there was a fundamental communication error between me and the computer.

    A little background, I quickly discovered that it was impractical to override whatever action the character was taking in order to begin the next one, because the animations determine when each action is done, and animations aren't so easy to determine "when they end" because of all the blending that goes on. So, I was forced to implant these into the animations:

    upload_2017-4-23_18-28-13.png

    And these have the purpose of notifying a script that a melee attack has ended. Because movement is based on the NavMeshAgent I was able to use that to determine when to show which animation, etc. But attacks are different, they are really an unhealthy alliance between animation and code.

    I quickly determined again that if I simply try to begin a "Spin Attack" while the character is doing a basic melee auto-attack, it will not be able to run, but if it doesn't run... then it will be forgotten and the user will not want to play. So, I realized that I have to "Queue" actions in a game like this. Things get interesting now.

    So if the character is in mid-swing, and I hit "E" it should begin the "Spin Attack", but in the code if it finds that it cannot currently attack, it queues the spin attack.

    Here's how I do that:

    Code (CSharp):
    1.     protected override void MeleeAttack () {
    2.         Debug.Log("Melee method");
    3.         if (CanAttack) {    
    4.             if (AbilityQueued) {
    5.                 AbilityQueued = false;
    6.                 QueuedAbility(); // will reset to true if needed
    7.                 Debug.Log("Queued Ability Dispatched");
    8.             } else {
    9.                 CanAttack = false;
    10.                 IsAttacking = true;
    11.                 IsMoving = false;
    12.                 CanMove = false;
    13.                 Animator.SetBool("IsRunning", false);
    14.                 NavMeshAgent.ResetPath();
    15.                 Animator.SetTrigger(MeleeAttacks[Mathf.RoundToInt(Random.Range(0, MeleeAttacks.Length))]);
    16.             }
    17.  
    18.         }
    19.     }
    MeleeAttack() is repeatedly called from the base Unit.cs in the Update() method, while auto-attacking is ongoing. I realized that the best place to insert the queued Ability was here. This is because the only other thing that can happen is that the character may Right-click to move, which cancels all abilities and queues up movement as soon as it is possible to move again, which rightly takes precedence over everything else. It's rather simple when you think about it, but programming is often simple once you fully understand the problem, which I think in games is hard sometimes.

    Also, I think I could probably re-code it a third time even better, but I find it to be a more rewarding exercise to try and modify and maintain the code rather than only practice starting from scratch, in case I ever end up working with other people or inherit some code one day, or have to get into something I haven't been into for a while.

    The coolest thing I think was that I used a delegate for the queued attack, because I remember learning those a while back and thinking... I'm never going to use these.

    Code (CSharp):
    1.     delegate void QueuedAbilityMethod();
    2.     QueuedAbilityMethod QueuedAbility;
    And this is how I implemented it. It was giving me some trouble, really bad trouble, in fact, because of a simple piece of confusion, albeit not even in this method.

    Code (CSharp):
    1.     void SpinAttack () {
    2.         Debug.Log("entered");
    3.         if (CanAttack) {
    4.             Debug.Log("attempted");
    5.             CanAttack = false;
    6.             CanMove = true;
    7.             IsAttacking = true;
    8.             Animator.SetBool("IsRunning", false);
    9.             Animator.SetTrigger("SpinAttack");
    10.             NavMeshAgent.angularSpeed = 10;
    11.             NavMeshAgent.speed = 4;
    12.         } else {
    13.             Debug.Log("requeued");
    14.             //QueuedAbilityTrigger = "SpinAttack";
    15.             QueuedAbility = SpinAttack;
    16.             AbilityQueued = true;
    17.         }
    18.     }
    My MeleeAttack() method was actually canceling the unit's ability to attack, regardless of whether or not it dispatched the delegate, hence all of my debug calls you see above. I had to go through it line-by-line to realize where the error was, which I never much enjoy doing but on occasion find it to be necessary.
     
    RavenOfCode and GarBenjamin like this.
  18. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    This is looking very cool. :)
     
    Master-Frog likes this.
  19. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    I couldn't think of what I wanted to do at all, at any time, this week. I am tinkering inside of the StarCraft 2 editor, trying to see if I can come up with my own version of a DotA style game, mostly just experimenting with whatever I feel like. I have come to listen to the little inner voices, and when I feel like distancing myself from something, I listen. I felt it necessary to get away from this little project for a moment, each passing day just seemed like nothing was changing. I had some realizations, and it turns out there was a reason I wasn't feeling inspired.

    But it's important to note at this point, exactly what this "project" actually is... it was a whim that started out in the General Discussion forum, originally I had no idea what game I was making at all. I have absolutely no plan for what I am doing. There is no "road map".

    It started out as a "game like the old final fantasies" and then I realized that gameplay is dated and just plain bad, even Square enix said, "Turn based is dead" and they made nothing but turn-based games for decades. I played a few matches of League of Legends, and it was to my surprise, refreshing and fun, and I decided that I want to go in that direction, real-time combat.

    Now I find myself saying, "What next?" And unless something jumps out at me, I'm not doing a damned thing, because I'm not forcing this to become something "just for a purpose". This is not a business, this is a passion for me.

    Now, I had a few realizations, like I said.

    One is that the enemies don't need to be all that interesting, and that humanoid enemies seem more boring than more cartoony, humorous style ones. Like the robot doodles I did before, those would make perfect enemies.

    Two, there needs to be more unique characters on the player's side. Not "just one hero".

    Three, what's the F***ing story at this point? I have something about lawyers and this and that... that's all kind of dumb. There's no real bad guy, it's just social commentary. You don't need to make a whole game to do social commentary, that's what Twitter is for. There's supposed to be love, romance, flirting with disaster, twists of fate... I mean, this is supposed to be an RPG, I expect that the people who play this game will not skip all of the cutscenes, it's a niche type game for people who actually liked old RPG's the way that they were. Just with combat that is still fun and relevant, and casual enough not to push anybody away due to "skill gap".

    Four... I don't know if the Retro 3D thing is going to actually work. Cel-shaded actually makes more sense, and as much fun as I've had with the modeling process, the game is now zoomed out quite a bit and I don't think you can actually appreciate the intentionally bad graphics any more. Plus, I wonder how many people can actually appreciate intentionally bad graphics, in the first place? Sometimes retro is cool, but that doesn't mean you build an entire game around what is essentially kitsch.

    There is no road map, there is no time limit, this is a journey to Ithaca (but hopefully a lot faster).

    Sketches will likely come, next, more fleshed out main characters, etc. I know for a fact that this combat style will work for a full game, I'm not even doubtful about it, to me this ^^^ is a proof of concept. What I do next will be a few phases that will not make much sense to people, but you will see how they all work together.

    Here are some things I need to figure out:

    - How the hell am I going to build the stages?
    - Linear or open progression?
    - What are my "real" characters going to look like?
    - Bad guy? Love story? Conflict?
    - Theme?

    Some people would probably not do this stuff, but this stuff actually is the majority of what I know best, the technological aspects I have only learned because I don't see anybody volunteering to make games for me.

    This is not an "infinite runner" or a "clicker heroes" clone, this is not even a "first-person shooter", okay... this is a friggin' RPG that I'm making, here. RPG's live and die on their stories, and all stories live and die on their characters.

    I think I'm going to dust off the old paint program and see if I can't draw some characters that aren't complete suck.

    I realize that if I keep programming that I'm just going to end up with a bigger proof of concept that isn't useful for anything other than a point-of-reference for things I need to change.
     
    PhilippG, GarBenjamin and RavenOfCode like this.
  20. GarBenjamin

    GarBenjamin

    Joined:
    Dec 26, 2013
    Posts:
    7,441
    The "game" looks great to me. Interesting and solid potential for fun. Personally, I don't think the graphics are a problem but I've bought and played many Steam games that are about the same level of visuals (or lower).

    I honestly think "graphics" is somewhat of a scapegoat people use (not saying you are doing that) because I've seen many games with great graphics do far worse than games with much simpler graphics.

    I definitely understand the need to have the passion to be able to work though. I haven't done a thing on my Barbarian platformer hack n slash game in months. And not done anything on the Community RPG in weeks. Just have no desire to. Having too much fun doing other things off the computer.

    Well good luck with the project and hopefully you'll find inspiration by the end of the month! :)
     
    Master-Frog and PhilippG like this.
  21. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    You need a game design document, or at the very least a treatment to guide the design.
    From experience and easy to find references - scrimping on planning often results in this exact point in development.

    Great thing is - design docs can be created at any time, it doesn't have to be at inception or a idea or directly after proof of concept. Although - probably should not be used as a savior for mid-project or end of project corrective measures to rescue a troubled development.
     
    Master-Frog and PhilippG like this.
  22. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    I find myself not knowing what stage of development this even is, technically it's pre-planning, technically it's alpha, "technically" ends up being a big problem for me. Ultimately it's not even a concern for me, I'm open to the process and if I need to make a plan then that's what I need to do... but since it is an RPG and I want to tell a story that is not just a 1-dimensional rehash of the boy's village is burned by the villain, etc. or some meaningless go-around that is done without any heart or soul to it, I need to find "something" to bind it all together, a single thread that I can weave through and make it all have a sense of one-ness.

    I don't care that I haven't written one line of code or even opened Unity in 2 weeks, because ultimately 200 weeks in Unity without an idea or dream or a plan will not result in anything that satisfies me.

    I've been retreating deep inside of myself, contemplating the nature of stuff and things. I talk about a lot of consiparacy-theory sounding stuff, and I often seem paranoid that "it's all an artificial world" and I'm cynical because everything anyone does seems to be financially motivated and ultimately I don't think people even understand their own motives for doing things.

    How many times, for example, has the exact same personality type come onto these forums and said, "Hi I'm ______ and I'm very serious about making games. I am starting my own company. We are going to be making this type of game and I don't care what it takes, I'm going to to do it" only to disappear and never be heard from again? Isn't it a bid odd or coincidental that hundreds, if not thousands, of people have had the exact same sentence form on the tips of their tongues when everybody is so vastly different? To me it's very interesting that so many young people have arrived at the same conclusion, that they want to enter the "lucrative career of game development" and interesting, as well, that the majority of CS graduates end up not working in that field at all.

    To me it's become more than clear, especially in the last couple of days, that I have been half-right and half-blind to what is really going on in our world, at least the developed world. I was born into it, you were born into it, it motivates everything we do for our entire lives and even though through errors in my upbrining, thanks to my irresponsible, delinquent parents, I wasn't fully, properly trained I still feel the pull of it--this consumerism that defines our very existence as a society.

    I have always had a high resistance to being convinced to purchase things through advertisements, because from a young age I was taught to be leery of smiling faces and anyone who seems to be up to something. Sales techniques don't work on me. I see through everything. But, I still feel the need to fit in... I've considered buying trendy clothes, I've felt the pull to do trendy things and act in a way consistent with the current massively popular thing, but I always resist the urge because I have an intense fear of literally losing my personality, forgetting who I am and what makes me unique, that is more powerful than the urge to "fit in"... again, probably an error in my upbringing, something to do with the inconsistencies in the cycle of verbal praise/verbal abuse from the adults in my life, I was raised around broken people so the magic spell never took full effect over me. All I see is this system of mindless mass consumption, self indulgence, and buying the next thing before the last thing is even showing signs of wear. I'm the type who uses a computer or phone or pair of shoes until they literally are useless, can't even perform their essential functions anymore.

    I find myself pondering more and more the concept of civilizational abandonment, the death of consumerism (it's gotta happen sooner or later, folks, ain't no way around that one) and what brought us here, how aware are people what's really going on? Especially kids growing up now... there was a significant anti-consumerism push in the 90's from Generation X and it seemed to define the punk rock era, but what do we have now? We have products teaching us to be consumers, literally the most popular game in the world is one in which you literally buy items from a shop and purchase new avatars and skins ...which is basically a shopping mall.

    It's all a big rat race, it's all me vs. you vs. the other guy, and we get a scrap of food for our trouble, while those holding the games become billionaires, and nobody seems to be aware that participation is voluntary.

    So, anyway, that's the mindset I'm in right now. I need to find a story, or maybe it needs to find me. But when that happens and characters start to exist I'll keep this up-to-date.

    Rome wasn't built in a day, but in this mass consumer culture, I think people don't realize the concept of time anymore. It's as alien to them as any theoretical physics.
     
    RavenOfCode likes this.
  23. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    I tend to think this is a more common situation than not for a lot of people who consider it either a hurdle to high to jump over, or a difficult test to overcome that they have to achieve. Sink or swim, all people are different and have to overcome different obstacles and complications. I can empathize with this situation very easily because it's like you were hiding out in a corner during my upbringing.
    If anyone has children that are within 5-17 years of age - this statement holds so much truth - it's eerie.

    Frog - regardless of the struggles you face - you have a knack for writing (IMO) and can weave thoughts very well in written form.
    This is surely not the premise you were attempting to relay - surely - but I couldn't help but think about off the grid living and 'real' preppers who scrimp and claw to save, to have enough left over every month to purchase stuff to survive a situation that will not be survivable by the majority of urbanites and flat-landers. No offense intended by the last term, it's just a polite way of classifying people who rely on food-marts and live in areas where there pet have to be directed towards the limited 'natural' areas to poop because the overall land is hard, unnatural, man-made surfaces.
     
  24. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Have you seen the "ego review" series by Yahtzee Crowshaw on youtube? He's going over all the games he ever made and I found it entertaining, educational and inspiring. That guy is so productive it's insane. He already has made more games than I will make in a lifetime and we're almost the same age, that part is kinda depressing.


    One advice he gave to aspiring writers that I remember is, "write about what you know". I suggest you re-read your post through the lense of "how can I turn this into a compelling RPG story?". You clearly have a message that you want to get accross, a story to tell. You just need to figure out whom you want to tell it to and how you captivate that audience so that they actually listen. Personally I'm going for a game focused on gamefeel and mechanics, basically making what I'm missing among the available games on the market, without too much regard for other people's preferences. But I could see how it's hard to do that with an RPG, because you can't really "tell a story to yourself". Find your audience, think about what you want to tell them. The most important parts of your game likely won't be done in a code editor. Pen and paper are what I feel I've made the most progress on.
     
    theANMATOR2b and PhilippG like this.
  25. HolBol

    HolBol

    Joined:
    Feb 9, 2010
    Posts:
    2,887
    I'm not sure about game design docs personally- despite usually drafting them myself.
    The problems is with them is that you waste a lot of energy writing documents instead of actually creating what you want. On the other hand, it gets you a nice plan of what features exactly will be in the game and what won't. However, there's not much wiggle room to add stuff later. I'll usually be the first to say "make a document", but sometimes you need to just MAKE. Even if what you end up with is ugly or nonsensical, finish it, and make a new one.
     
  26. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    I can agree, however in this situation (that can be seen in a lot of other game development examples) where the vision isn't clear and development has slowed/stopped as a result of that - design documents are a helpful guiding tool.
     
  27. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302






    We were told to eat foods because they were delicious and would make us happier, then told to smoke cigarettes because they would increase our enjoyment of life, combat stress and even (yes) FIGHT lung cancer . . . then when we got fat, they started selling us products to help us "reduce our weight" by making us feel terrible about being heavy, casting heavy women as loser characters in television programs and advertisements, while thin women were always happy and sexy and beautiful, men they told were not real men unless they smoked/drank the right cigarettes/alcohol and wore the right suits and ties and shoes.

    ...and now you're not cool or hip unless you own the latest electronic device, unless you sleep around and get a couple of STD's you're not really "experiencing" your own sexuality, monogamy is universally ridiculed as a boring and useless, outmoded tradition in all movies and film and, in fact, tradition itself is mocked in every Disney movie ever made!

    In the 21st century it is impossible to know what you really believe and what is just the result of inception by an advertisement you saw someplace, sometime ago. Who are you? What do you really want?

    What are your opinions and where did they come from?

    What do you feel connected to?

    Do you feel compelled to do things but are not aware of the reason for the compulsion?

    Do you routinely feel insecurity, fear, stress, anxiety, loneliness?

    Do you feel like you're FOREVER ALONE?

    Why do I feel like smoking is "cool"?



    Is it paranoid to think that rich and powerful people get together and talk about how to make themselves even more money?

    And now, a paradox:

    How do you disconnect from our modern consumerist society when we aren't connected to anything in the first place?
     
    Last edited: May 10, 2017
    RavenOfCode likes this.
  28. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    I think you might enjoy this movie:
    http://www.imdb.com/title/tt0875113/?ref_=nv_sr_1
    and the series "Adam ruins everything". He gives great examples of how hard advertisement has crept into culture.
    And "Fight Club" of course, but I assume everyone knows that one already.

    P.S.: We briefly had radioactive toothpaste in Germany...
     
    Last edited: May 10, 2017
    theANMATOR2b likes this.
  29. RavenOfCode

    RavenOfCode

    Joined:
    Apr 5, 2015
    Posts:
    869
    As someone taking a class in philosophy and another on world issues I have this urge to make a game that is based around ideas like these. Things that matter and are pressing in our world. If you have the opportunity to do something like this I would urge you too. Being able to think over things through making a game about that could be a great way to deepen your knowledge and come to grips with how you view the world.
    Personally I hate this series, I find misusing facts and the pressing progressive worldview being so evident to be infuriating. As comedy I can see the appeal, but not for much else. 99 francs is something I would like to watch though, it looks quite promising, thanks for sharing.
     
    theANMATOR2b and Martin_H like this.