• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.
Status
Not open for further replies.

Midramble

Force of Habit
The Fallen
Oct 25, 2017
10,463
San Francisco
Anyone here ever use vector art for sprites in Game Maker Studio? Seems GMS2 can only use SWF files for vector art, and there aren't a whole lot of options to make them other than buying Adobe Illustrator and Animator, which are very expensive.

I got the free Inkscape and found a utility someone made to allow it to save SVG files as SWF's, but GMS2 doesn't seem to like it much.

From what I understand vector graphics are extremely inefficient for realtime animation so even studios that have done it (e.g. guacamelee) I believe they rasterize the vector graphics as traditional sprites.

That said if you really wanna use SWFs GIMP natively exports SVG and there are plugins for SWF.
 

AmericanKirby

Member
Aug 31, 2018
774
Inside your house
From what I understand vector graphics are extremely inefficient for realtime animation so even studios that have done it (e.g. guacamelee) I believe they rasterize the vector graphics as traditional sprites.

Yup. Most games with a vector art aesthetic either just convert/export the assets as raster images or use 2d polygons insead. Most engines that support vector graphics, gamemaker included, do so by converting the vector graphics file to a series of 2d mesh-models on import.
 
May 23, 2019
509
cyberspace
Hello, I have a legit question and the question is this :P
Does Unity allows to sell games made with a free version? I mean I can release a free complete game for feedback, but I wonder If I need to pay License (Pro) to sell future games with Unity free version.
 

Weltall Zero

Game Developer
Banned
Oct 26, 2017
19,343
Madrid
Hello, I have a legit question and the question is this :P
Does Unity allows to sell games made with a free version? I mean I can release a free complete game for feedback, but I wonder If I need to pay License (Pro) to sell future games with Unity free version.

Yes, you can. You only need to pay for a Pro version if you make more than 100k a year making games, which makes it a non-issue to the vast majority of us. :D


The Financial Threshold for Unity Personal is US $100,000 for the most recent twelve (12) month period. To be Tier Eligible to use Unity Personal, your Total Finances may not exceed US $100,000. If your Total Finances exceed US $100,000 you may not use Unity Personal at all, even for internal projects or prototyping.
 
May 23, 2019
509
cyberspace
Yes, you can. You only need to pay for a Pro version if you make more than 100k a year making games, which makes it a non-issue to the vast majority of us. :D


The Financial Threshold for Unity Personal is US $100,000 for the most recent twelve (12) month period. To be Tier Eligible to use Unity Personal, your Total Finances may not exceed US $100,000. If your Total Finances exceed US $100,000 you may not use Unity Personal at all, even for internal projects or prototyping.
That's cool, thanks for the clarification.
 

Hampig

Member
Oct 25, 2017
1,704
This is from someone who has had experience with one game that completely failed to find an audience and one game that found a decent audience when it got partnered with a publisher. So grain of salt and all that:

The first step to finding an audience is finding the people who will help you find your audience. When you are bootstrapping support, it's better to have a handful of devoted fans rather than a larger amount of, relatively, more superficial fans. You need champions. People who will actively signal boost your game. These can be other developers, journalists, influencers™, or just people who will retweet your stuff and maybe mention it to a buddy. One amazing gif isn't going to sell your game. It's about grinding your way into a position where if something does catch on, you can capitalize on it.

In my experience, people are on Twitter for light entertainment and to stay informed about news. Gifs of games in development don't really stick to well in that sort of environment. Twitter is about people so if you want to get a reaction, it's better to act like a person than like a game company. Ask questions, answer questions, make jokes. Think about the type of users you like on Twitter and do what they do. Unless your game is beyond amazing, glimpses of an in-development game aren't going to get you very far in building the sort of foundational relationships you need to build a fanbase for your game.

Once you get traction, don't be afraid to use twitter to get an email list going. Email is great because people are far more likely to click links of follow calls to action in an email than they are in a tweet or pretty much any other social media post. It's a place where you can completely control your message and talk directly to people who have gone the extra mile and joined your list. I have also heard enough good stories about Discord to suggest that being worth your time as well.

Building a following for a game isn't like filling a glass, you can't look at how much you'e done to know how much more there is to go. It's more like opening a pickle jar. You don't know how much more you have to do before it finally shows progress.

PS. You didn't link your twitter account so I can follow you :)

PPS. We've been woking on a new bit of juice for Beacon Pines. The idea is to frame the whole game as taking place in a book, which could help clarify some of out mechanics. This is a super-early proof-of-concept test.



But mostly, I think it looks cool. It's pretty great working with an amazing artist and programmer, I can just suggest dumb ideas and they get executed better than I could ever hope to do myself in a million years.
That's some really awesome advice, thank you! I think a part of our problem is that we've been using Twitter more to try and sell the game and less to express being humans making a game that we want you to know about as well, and I think that is the right way to go.

Our Twitter handle is @TeamSmoothBear, and I'd be happy to follow back if that gif is indicative of your teams work, what a beautiful looking game!
 
Oct 25, 2017
8,282
That's some really awesome advice, thank you! I think a part of our problem is that we've been using Twitter more to try and sell the game and less to express being humans making a game that we want you to know about as well, and I think that is the right way to go.

Our Twitter handle is @TeamSmoothBear, and I'd be happy to follow back if that gif is indicative of your teams work, what a beautiful looking game!

Thanks for the kind words. At the moment, it's less of a beautiful game right now and more of a beautiful pile of ideas. We are moving out of the fun brainstorming stage and into the soul crushing kill-your-babies stage. Our Twitter handle is @BeaconPines.

On the subject of marketing, I found these GDC videos useful:



 

Hampig

Member
Oct 25, 2017
1,704
Thanks for the kind words. At the moment, it's less of a beautiful game right now and more of a beautiful pile of ideas. We are moving out of the fun brainstorming stage and into the soul crushing kill-your-babies stage. Our Twitter handle is @BeaconPines.

On the subject of marketing, I found these GDC videos useful:




Sometimes a beautiful pile of things can be even better! The brainstorming stage is definitely the most fun, but the baby killing stage has those little shots of extreme satisfaction that make it all worth it. Good luck to you! I'll watch these videos and try to remember you when I'm a world renowned gamedev superstar.
 
Oct 25, 2017
8,282
Sometimes a beautiful pile of things can be even better! The brainstorming stage is definitely the most fun, but the baby killing stage has those little shots of extreme satisfaction that make it all worth it. Good luck to you! I'll watch these videos and try to remember you when I'm a world renowned gamedev superstar.

giphy.gif
 

Weltall Zero

Game Developer
Banned
Oct 26, 2017
19,343
Madrid
Thanks for the kind words. At the moment, it's less of a beautiful game right now and more of a beautiful pile of ideas. We are moving out of the fun brainstorming stage and into the soul crushing kill-your-babies stage. Our Twitter handle is @BeaconPines.

On the subject of marketing, I found these GDC videos useful:





Thank you so much for these. I just finished watching the first one, it was really informative and interesting! I'll give the second a go when I have the time.
 
Mar 19, 2019
482
Hello! I'm the head of a loose, up-and-coming video game development circle tentatively called By Jove! Games. We're currently at the heart of two projects, one of which is short-term and worked on in collaboration with a school-based organization and is still in planning. The other, longer-term project is entirely our own. Spoilers with information on the project included below.

We're looking for volunteer artists who can do concept art for and model game environments. We're a loose, informal team; work will be done entirely on an as-needed or as-you-see-fit basis, but you will regularly be consulted and talked with in the development server on the Discord so that even when you're not working the environmental structure can be such that you can work with.

We'd like someone happy to work in an informal environment who doesn't mind workflow at an uneven pace, working under loose, tentative schedules. Also, as we're a small team, ideas and feedback for every station flow between members, even those outside of that station, so if you're happy to have a say in where the game goes, we're also looking for you!


The longer-term project and my personal passion project is a witch-themed 3D platformer. Featuring Agatha, half-sitcom-and-snackfood-lover, half-HEIRESS TO THE VERYDARK THRONE AND FUTURE SUBJUGATER OF ALL HUMANITY, players will join her as she attempts to collect her lost spell-book pages in order to earn entry back into her father's home in the deep, dank world of the Verydark. She's assisted by a cat-like spirit that is able to platform on top of the shadows on walls in cross-2D/3D puzzle-solving challenges.

Agatha.jpg

17FeN1Qu9nv8kxzZrlHiA89LC0OiRj0yJ.png


Child of the Dark Lord that once led siege against humanity before falling in love with a human woman, Agatha is now only able to visit her father in the hellscape of the Verydark on long weekends and holiday vacations. Thanks to her dark heritage she is able to call upon and manipulate spiritual forces in the forms of spells and hexes, an ability her father tries to bring her up on in order for her to succeed him as Lordess of the Verydark. She, however, just wants to watch demon television and snack on Lizard's Tails.

When a mysterious force evicts her from her room at the top of the tallest spire in her father's home at the center of the Verydark, Agatha attempts to cast a spell to save herself, but to no avail..! Her being out of practice, the spell fizzles out, causing her spell-book to explode, sending the pages scattering to various corners of the world. Now locked out of her father's house by a talking door that doesn't recognize her without it, Agatha is forced to rely on a Catesque, a cat-like spirit that haunts the shadows of black cats, giving them a bad name by getting up to mischief while tailing them on moon-lit nights.

EDIT: Concept art and model outside of spoiler! c:
Agatha.jpg

17FeN1Qu9nv8kxzZrlHiA89LC0OiRj0yJ.png
 
Last edited:

Kazooie

Member
Jul 17, 2019
5,041
Hello! I'm the head of a loose, up-and-coming video game development circle tentatively called By Jove! Games. We're currently at the heart of two projects, one of which is short-term and worked on in collaboration with a school-based organization and is still in planning. The other, longer-term project is entirely our own. Spoilers with information on the project included below.

We're looking for volunteer artists who can do concept art for and model game environments. We're a loose, informal team; work will be done entirely on an as-needed or as-you-see-fit basis, but you will regularly be consulted and talked with in the development server on the Discord so that even when you're not working the environmental structure can be such that you can work with.

We'd like someone happy to work in an informal environment who doesn't mind workflow at an uneven pace, working under loose, tentative schedules. Also, as we're a small team, ideas and feedback for every station flow between members, even those outside of that station, so if you're happy to have a say in where the game goes, we're also looking for you!


The longer-term project and my personal passion project is a witch-themed 3D platformer. Featuring Agatha, half-sitcom-and-snackfood-lover, half-HEIRESS TO THE VERYDARK THRONE AND FUTURE SUBJUGATER OF ALL HUMANITY, players will join her as she attempts to collect her lost spell-book pages in order to earn entry back into her father's home in the deep, dank world of the Verydark. She's assisted by a cat-like spirit that is able to platform on top of the shadows on walls in cross-2D/3D puzzle-solving challenges.

1Rl5CXMkAwBEyHUAqzHx0Q38r0eLab0be

17FeN1Qu9nv8kxzZrlHiA89LC0OiRj0yJ



Child of the Dark Lord that once led siege against humanity before falling in love with a human woman, Agatha is now only able to visit her father in the hellscape of the Verydark on long weekends and holiday vacations. Thanks to her dark heritage she is able to call upon and manipulate spiritual forces in the forms of spells and hexes, an ability her father tries to bring her up on in order for her to succeed him as Lordess of the Verydark. She, however, just wants to watch demon television and snack on Lizard's Tails.

When a mysterious force evicts her from her room at the top of the tallest spire in her father's home at the center of the Verydark, Agatha attempts to cast a spell to save herself, but to no avail..! Her being out of practice, the spell fizzles out, causing her spell-book to explode, sending the pages scattering to various corners of the world. Now locked out of her father's house by a talking door that doesn't recognize her without it, Agatha is forced to rely on a Catesque, a cat-like spirit that haunts the shadows of black cats, giving them a bad name by getting up to mischief while tailing them on moon-lit nights.

EDIT: Concept art and model outside of spoiler! c:

1Rl5CXMkAwBEyHUAqzHx0Q38r0eLab0be

17FeN1Qu9nv8kxzZrlHiA89LC0OiRj0yJ
None of your images show for me.
 

RazorbackDB

Member
Oct 25, 2017
176
Hello! I'm the head of a loose, up-and-coming video game development circle tentatively called By Jove! Games. We're currently at the heart of two projects, one of which is short-term and worked on in collaboration with a school-based organization and is still in planning. The other, longer-term project is entirely our own. Spoilers with information on the project included below.

We're looking for volunteer artists who can do concept art for and model game environments. We're a loose, informal team; work will be done entirely on an as-needed or as-you-see-fit basis, but you will regularly be consulted and talked with in the development server on the Discord so that even when you're not working the environmental structure can be such that you can work with.

We'd like someone happy to work in an informal environment who doesn't mind workflow at an uneven pace, working under loose, tentative schedules. Also, as we're a small team, ideas and feedback for every station flow between members, even those outside of that station, so if you're happy to have a say in where the game goes, we're also looking for you!

17FeN1Qu9nv8kxzZrlHiA89LC0OiRj0yJ.png

Maybe is just me but the arms are really hard to see in the model, you could work in the silhouette some more. Other than that looks great!
 

Jeremiah

Member
Oct 25, 2017
774
Hey all,

Been lurking this thread like mad, finally have a reason to post! You guys are all amazing.

Would love an opinion on character angles in-game. This is what we are translating:

Yuri.PNG

CRL_DAL_Yuri_Paintover_v001_03.jpg


And these are the options in-game:

HighresScreenshot00022.png


(left to right)

1: no character tilt when face south
2: head tilt 5 when facing south
3: head 5 tilt, body 2.5 tilt
4: head and body 5 tilt

Internal debate going on that's for sure lol. Personally, i am drawn towards 3. You get to see enough of the face and body, while still remaining pretty cohesive with the world. And of course since i prefer number #3 bonus pic for that lol

HighresScreenshot00024.png


Any thoughts or comments appreciated.
 

Jeremiah

Member
Oct 25, 2017
774
definitely not 1

I think i like 3 the best?

Cheers mate -- asking around some other game dev discord and someone brought up a real good valid point. There is going to be conversation/interaction with objects below the player, and with too much tilt, player looks like they are looking at the sky lol.

InkedHighresScreenshot00029_LI.jpg


The middle, which is just a 5 degree head tilt, seems like the best compromise...same person also mentioned idle animations as a means to show the characters face which is obviously the biggest 'duh' moment i've had lol -- but hey im jet lagged at the moment :P
 
Oct 25, 2017
8,282
Hey all,

Been lurking this thread like mad, finally have a reason to post! You guys are all amazing.

Would love an opinion on character angles in-game. This is what we are translating:

First off, I really like the design of that model. There is a nice bit of story and characterization baked in to it. I find it compelling for that reason.

I have found in the past that when my team is having trouble agreeing on how to solve a problem, it's because we were trying to solve the wrong problem. So to flip the issue, have you considered different camera angles entirely? Is the camera dynamic or fixed?

It really depends on the type of game you are making but if you are having trouble getting your characters visualized correctly, it might be worth taking a step back and thinking about how you want to have your camera operate. Are you trying to give a cosy feel? A sense of exploration and adventure? Is it a game about the main character or the world or is it really about gameplay? What is the most important job the camera can do for the game? How do you want people to feel about the player character? How do you want them to feel about the environment?

Out of your options, I agree that 3 or 4 are the way to go. I'm an old theatre kid so I think about this stuff as blocking. It's pretty amazing the amount of "cheating out" that an audience will subconsciously forgive.
 

Jeremiah

Member
Oct 25, 2017
774
First off, I really like the design of that model. There is a nice bit of story and characterization baked in to it. I find it compelling for that reason.

I have found in the past that when my team is having trouble agreeing on how to solve a problem, it's because we were trying to solve the wrong problem. So to flip the issue, have you considered different camera angles entirely? Is the camera dynamic or fixed?

It really depends on the type of game you are making but if you are having trouble getting your characters visualized correctly, it might be worth taking a step back and thinking about how you want to have your camera operate. Are you trying to give a cosy feel? A sense of exploration and adventure? Is it a game about the main character or the world or is it really about gameplay? What is the most important job the camera can do for the game? How do you want people to feel about the player character? How do you want them to feel about the environment?

Out of your options, I agree that 3 or 4 are the way to go. I'm an old theatre kid so I think about this stuff as blocking. It's pretty amazing the amount of "cheating out" that an audience will subconsciously forgive.

Thank you for the words, we've indeed spent a tremendous time developing each character. Her name is Yuri. I will pass along your comments :)

The gameplay will take priority over other aspects, so the camera angle was one of the things we finalized early on. It's really amazing how much the camera can impact the tempo and game feel. I do appreciate the perspective you've provided, that way of thinking, of stepping back -- its easy to get lost in the thick of things, that's for sure.

Yup, we'll most likely settle on cheating out to some degree lol... will post an update once we have some animations for more feedback.

Thanks again!


Great job, and love it!
 
May 23, 2019
509
cyberspace
I'm having an hard time with Blender and Unity, I'm trying to import my "rigged" character on Unity once I select my character, i go to Rig>AnimationType"Humanoid" then Avatar Definition I leave it as it is "Create from this Model" then i Apply and always gives me an error with this message in the Import Message box

"Invalid Avatar Rig configuration, Missing or invalid transform:
Required human bone 'LeftUpperArm' "sometimes gives me another message" not found".

I don't know what to do.
 

FullMetalTech

The Fallen
Oct 25, 2017
2,428
Brooklyn, New York
I'm having an hard time with Blender and Unity, I'm trying to import my "rigged" character on Unity once I select my character, i go to Rig>AnimationType"Humanoid" then Avatar Definition I leave it as it is "Create from this Model" then i Apply and always gives me an error with this message in the Import Message box

"Invalid Avatar Rig configuration, Missing or invalid transform:
Required human bone 'LeftUpperArm' "sometimes gives me another message" not found".

I don't know what to do.


My guess it has to do with the upper arms of the rig. Go back to the rig in blender and see if the upper arms are connected to the rest of the rig.. IDefinately something that's going wrong with Unity trying to import it.
 

Jintor

Saw the truth behind the copied door
Member
Oct 25, 2017
32,457
Well, I finished 31 days of #devtober.

Start:


Nearly the end:


Gonna post a more considered post mortem later today I think. But for now, where do you guys go to hang out that's even more active than this thread or our discord? Are there other good communities to hang out in that are faster-paced?
 

Sean Noonan

Lead Level Designer at Splash Damage
Verified
Oct 26, 2017
384
UK
Nice GTA 1969 London music ;D
It's originally from the 1969 film, "Venere in pelliccia". Solid soundtrack :D

This level looks so comfy. It feels really dense and I love that. The verticality is pretty cool too.

Really giving me some TimeSplitters vibes. Awesome stuff.
Thanks! I was going for something between Goldeneye and Counter-Strike :)

Here's a big ol' write up of the level - a wee bit of insight into my process:

 

Sean Noonan

Lead Level Designer at Splash Damage
Verified
Oct 26, 2017
384
UK
Updated the map... and this weekend we got the game running on Switch. So excited for the next playtest!

 

JRBechard

Member
Oct 26, 2017
103
Montreal
I inquire your help for what I understand to be a common problem that i haven't found a suitable solution for.

I'm using a character controller, and it uses a capsule shaped collider. The rounded bottom part of the capsule sticks to the edges like this.

BzJuQzQ.png


or here in video form:


I'm trying to find a way to check if the player is stuck to an edge and push him off.

I thought I could change the capsule collider for a cube or a cylinder, but the character controller is stuck with a capsule as far as I know. All the solutions I've found suggests changing the character controller for a rigidbody, but I do not have the skill to program a controller from scratch and I want to use features form the character controller.

Here's my player code for now:

C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    //OBJECTS
    [Header("Object Links")]
    public Transform cam;
    CharacterController mover;
    private Animator anim;

    //CAMERA
    Vector3 camF;
    Vector3 camR;

    //INPUT
    Vector2 input;

    //PHYSICS
    Vector3 intent;
    Vector3 velocityXZ;
    Vector3 velocity;
    [Header("Physics")]
    public float speed = 6;
    public float accel = 10;
    private bool playerMoving;
    private Vector2 lastMove;

    //GRAVITY
    public float grav = 15;
    public float jumpSpeed = 15;
    public float fallClamp = -20;
    public float jumpClamp = 100;
    public float fallMultiplier = 2.5f;
    public float lowFallMultiplier = 4f;
    public bool grounded = false;
    public bool jumpKeyHeld = false;

    private void Start()
    {
        mover = GetComponent<CharacterController>();
        anim = GetComponent<Animator>();
    }

    void Update()
    {
        DoInput();
        CalculateCamera();
        CalculateGround();
        DoIntent();
        DoGravity();
        DoJump();
        DoMove();
        DoAnimation();
    }

    void DoInput()
    {
        input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
        input = Vector2.ClampMagnitude(input, 1);
    }

    void CalculateCamera()
    {
        camF = cam.forward;
        camR = cam.right;

        camF.y = 0;
        camR.y = 0;
        camF = camF.normalized;
        camR = camR.normalized;
    }

    void CalculateGround()
    {
        RaycastHit hit;
        if (Physics.Raycast(transform.position+Vector3.up*0.1f, -Vector3.up, out hit, 0.2f))
        {
            grounded = true;
        }
        else
            grounded = false;
    }

    void DoIntent()
    {
        intent = camF * input.y + camR * input.x;

        velocityXZ = velocity;
        velocityXZ.y = 0;
        velocityXZ = Vector3.Lerp(velocityXZ, intent * speed, accel * Time.deltaTime);
        velocity = new Vector3(velocityXZ.x, velocity.y, velocityXZ.z);
    }

    void DoGravity()
    {
        if (grounded)
            velocity.y = -0.5f;
        else
        {
            if (jumpKeyHeld)
            {
                velocity.y -= grav * fallMultiplier * Time.deltaTime;
                velocity.y = Mathf.Clamp(velocity.y, fallClamp, jumpClamp);
            }
            else
            {
                velocity.y -= grav * lowFallMultiplier * Time.deltaTime;
                velocity.y = Mathf.Clamp(velocity.y, fallClamp, jumpClamp);
            }
        }
    }

    void DoJump()
    {
        if (grounded)
        {
            if (Input.GetButtonDown("Jump"))
            {
                velocity.y = jumpSpeed;
                jumpKeyHeld = true;
            }

        }
        else if (Input.GetButtonUp("Jump"))
        {
            jumpKeyHeld = false;
        }
    }

    void DoMove()
    {
        mover.Move(velocity * Time.deltaTime);
    }

    void DoAnimation()
    {
        playerMoving = false;

        if (Input.GetAxisRaw("Horizontal") > 0.5f || Input.GetAxisRaw("Horizontal") < -0.5f )
        {
            playerMoving = true;
        }

        if (Input.GetAxisRaw("Vertical") > 0.5f || Input.GetAxisRaw("Vertical") < -0.5f)
        {
            playerMoving = true;
        }

        if (playerMoving)
        {
            lastMove = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
        }

        anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
        anim.SetFloat("MoveY", Input.GetAxisRaw("Vertical"));
        anim.SetFloat("Magnitude", input.magnitude);
        anim.SetBool("PlayerMoving", playerMoving);
        anim.SetBool("isGrounded", grounded);
        anim.SetFloat("LastMoveX", lastMove.x);
        anim.SetFloat("LastMoveY", lastMove.y);
    }

}

Thanks for you help!
 

Mike Armbrust

Member
Oct 25, 2017
528
I inquire your help for what I understand to be a common problem that i haven't found a suitable solution for.

I'm using a character controller, and it uses a capsule shaped collider. The rounded bottom part of the capsule sticks to the edges like this.

BzJuQzQ.png


or here in video form:


I'm trying to find a way to check if the player is stuck to an edge and push him off.

I thought I could change the capsule collider for a cube or a cylinder, but the character controller is stuck with a capsule as far as I know. All the solutions I've found suggests changing the character controller for a rigidbody, but I do not have the skill to program a controller from scratch and I want to use features form the character controller.

Here's my player code for now:

C#:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    //OBJECTS
    [Header("Object Links")]
    public Transform cam;
    CharacterController mover;
    private Animator anim;

    //CAMERA
    Vector3 camF;
    Vector3 camR;

    //INPUT
    Vector2 input;

    //PHYSICS
    Vector3 intent;
    Vector3 velocityXZ;
    Vector3 velocity;
    [Header("Physics")]
    public float speed = 6;
    public float accel = 10;
    private bool playerMoving;
    private Vector2 lastMove;

    //GRAVITY
    public float grav = 15;
    public float jumpSpeed = 15;
    public float fallClamp = -20;
    public float jumpClamp = 100;
    public float fallMultiplier = 2.5f;
    public float lowFallMultiplier = 4f;
    public bool grounded = false;
    public bool jumpKeyHeld = false;

    private void Start()
    {
        mover = GetComponent<CharacterController>();
        anim = GetComponent<Animator>();
    }

    void Update()
    {
        DoInput();
        CalculateCamera();
        CalculateGround();
        DoIntent();
        DoGravity();
        DoJump();
        DoMove();
        DoAnimation();
    }

    void DoInput()
    {
        input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
        input = Vector2.ClampMagnitude(input, 1);
    }

    void CalculateCamera()
    {
        camF = cam.forward;
        camR = cam.right;

        camF.y = 0;
        camR.y = 0;
        camF = camF.normalized;
        camR = camR.normalized;
    }

    void CalculateGround()
    {
        RaycastHit hit;
        if (Physics.Raycast(transform.position+Vector3.up*0.1f, -Vector3.up, out hit, 0.2f))
        {
            grounded = true;
        }
        else
            grounded = false;
    }

    void DoIntent()
    {
        intent = camF * input.y + camR * input.x;

        velocityXZ = velocity;
        velocityXZ.y = 0;
        velocityXZ = Vector3.Lerp(velocityXZ, intent * speed, accel * Time.deltaTime);
        velocity = new Vector3(velocityXZ.x, velocity.y, velocityXZ.z);
    }

    void DoGravity()
    {
        if (grounded)
            velocity.y = -0.5f;
        else
        {
            if (jumpKeyHeld)
            {
                velocity.y -= grav * fallMultiplier * Time.deltaTime;
                velocity.y = Mathf.Clamp(velocity.y, fallClamp, jumpClamp);
            }
            else
            {
                velocity.y -= grav * lowFallMultiplier * Time.deltaTime;
                velocity.y = Mathf.Clamp(velocity.y, fallClamp, jumpClamp);
            }
        }
    }

    void DoJump()
    {
        if (grounded)
        {
            if (Input.GetButtonDown("Jump"))
            {
                velocity.y = jumpSpeed;
                jumpKeyHeld = true;
            }

        }
        else if (Input.GetButtonUp("Jump"))
        {
            jumpKeyHeld = false;
        }
    }

    void DoMove()
    {
        mover.Move(velocity * Time.deltaTime);
    }

    void DoAnimation()
    {
        playerMoving = false;

        if (Input.GetAxisRaw("Horizontal") > 0.5f || Input.GetAxisRaw("Horizontal") < -0.5f )
        {
            playerMoving = true;
        }

        if (Input.GetAxisRaw("Vertical") > 0.5f || Input.GetAxisRaw("Vertical") < -0.5f)
        {
            playerMoving = true;
        }

        if (playerMoving)
        {
            lastMove = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical"));
        }

        anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
        anim.SetFloat("MoveY", Input.GetAxisRaw("Vertical"));
        anim.SetFloat("Magnitude", input.magnitude);
        anim.SetBool("PlayerMoving", playerMoving);
        anim.SetBool("isGrounded", grounded);
        anim.SetFloat("LastMoveX", lastMove.x);
        anim.SetFloat("LastMoveY", lastMove.y);
    }

}

Thanks for you help!


You can do a spherecast directly downwards every frame and check if it hits the ground immediately. If not, then you are on a ledge. Just make the sphere have a small enough radious to get the desired results.

There might be other ways to solve your problem directly with the capsule collider but this would work assuming all other variables are already properly set.
 

JRBechard

Member
Oct 26, 2017
103
Montreal
You can do a spherecast directly downwards every frame and check if it hits the ground immediately. If not, then you are on a ledge. Just make the sphere have a small enough radious to get the desired results.

There might be other ways to solve your problem directly with the capsule collider but this would work assuming all other variables are already properly set.
If check the player has collided with something while isGrounded is false, then I apply a force opposite of the hit point, that seems to work, but hitting a wall now gives a push back too which isn't desired.



This seems to be a working solution but I have no idea how to implement it.
 

Mike Armbrust

Member
Oct 25, 2017
528
If check the player has collided with something while isGrounded is false, then I apply a force opposite of the hit point, that seems to work, but hitting a wall now gives a push back too which isn't desired.



This seems to be a working solution but I have no idea how to implement it.


Here's some quick untested code to better explain what I was meaning.

C#:
CharacterController charachterController;
    float noSlipDistance=.1f;
    void LateUpdate()
    {
        RaycastHit hitInfo;
        if(Physics.SphereCast(transform.position+charachterController.center, charachterController.radius-charachterController.skinWidth, Vector3.down, out hitInfo, charachterController.height)){
            Vector3 relativeHitPoint=hitInfo.point-(transform.position+charachterController.center);
            float hitHeight=relativeHitPoint.y;
            relativeHitPoint.y=0;
            //check if the ground point is far enough away to cause us to slip
            if(relativeHitPoint.magnitude>noSlipDistance){
                // apply force to push the charachter back, using the relative hit point as the force

                //AddForce(-relativeHitPoint);
            }
        }

    }

A sphere cast can do what that twitter video is showing without forcing you to do a bunch of raycasts around the player. I do not know how you're moving your character so the AddForce method is just a stand in. Other things could also be tweaked if this code doesn't perfectly work with your setup.
 

Weltall Zero

Game Developer
Banned
Oct 26, 2017
19,343
Madrid
If check the player has collided with something while isGrounded is false, then I apply a force opposite of the hit point, that seems to work, but hitting a wall now gives a push back too which isn't desired.



This seems to be a working solution but I have no idea how to implement it.


To expand on what Mike Armbrust is saying: your original problem is that the "feet" of your character, in terms of colliders, have the width of the collider capsule, but your check for "being grounded" uses a raycast, which has width zero. This means your character behaves as midair every time the very center of its feet isn't in contact with the ground, e.g. when sliding off an edge, therefore not allowing the player to jump. If you use a sphere cast with the same width as your character's collider, it will more properly detect when it's touching the ground even with a small part of the collider, and better determine grounded state. This is a better solution, and less likely to give you issues down the road, than a hackier one like artificially pushing the character off surfaces.

In addition to that, if your character is getting stuck on edges rather than falling off them, you probably have too much friction on the character's collider, the terrain, or both.
 

JRBechard

Member
Oct 26, 2017
103
Montreal
A sphere cast can do what that twitter video is showing without forcing you to do a bunch of raycasts around the player. I do not know how you're moving your character so the AddForce method is just a stand in. Other things could also be tweaked if this code doesn't perfectly work with your setup.

Thank you so much! This worked out perfectly for my needs.



Here's the code I ended up using, based on your own:
C#:
    private void LateUpdate()
    {
        RaycastHit hitInfo;
        if (Physics.SphereCast(transform.position + mover.center, mover.radius - mover.skinWidth, Vector3.down, out hitInfo, mover.height*0.7f))
        {
            Vector3 relativeHitPoint = hitInfo.point - (transform.position + mover.center);
            float hitHeight = relativeHitPoint.y;
            relativeHitPoint.y = 0;
            if (relativeHitPoint.magnitude > noSlipDistance)
            {
                Vector3 edgeFallMovement = transform.position - hitInfo.point;
                edgeFallMovement.y = 0;
                velocity += (edgeFallMovement * Time.deltaTime * edgeFallFactor);
            }
        }
    }
 

zoodoo

Member
Oct 26, 2017
12,759
Montreal
Yes, you can. You only need to pay for a Pro version if you make more than 100k a year making games, which makes it a non-issue to the vast majority of us. :D


The Financial Threshold for Unity Personal is US $100,000 for the most recent twelve (12) month period. To be Tier Eligible to use Unity Personal, your Total Finances may not exceed US $100,000. If your Total Finances exceed US $100,000 you may not use Unity Personal at all, even for internal projects or prototyping.
Is it the same for Unreal? I would prefer to work on Unreal
 
May 23, 2019
509
cyberspace
Hello everybody, I'm here to announce that I've completed 2 levels for my game and I would like to share the game for Feedback purpose, I would love to know what works and what not. As a beginner in programming and still learning the feedbacks are really important for my growth.
Now, If somebody can help me with sharing the project, it would be amazing :)
Should I share the folder build or should I share the entire UnityProject folder which include build folder?
EDIT: Or should I share only the application?
 
Last edited:
Oct 26, 2017
3,932
Hello everybody, I'm here to announce that I've completed 2 levels for my game and I would like to share the game for Feedback purpose, I would love to know what works and what not. As a beginner in programming and still learning the feedbacks are really important for my growth.
Now, If somebody can help me with sharing the project, it would be amazing :)
Should I share the folder build or should I share the entire UnityProject folder which include build folder?
EDIT: Or should I share only the application?

Zipping up the build folder is the way to go, unless you're wanting specific feedback on your code. You might also need to include the assets folder, I can't actually remember what the process for sharing is with Unity!
 
May 23, 2019
509
cyberspace
Zipping up the build folder is the way to go, unless you're wanting specific feedback on your code. You might also need to include the assets folder, I can't actually remember what the process for sharing is with Unity!
I would appreciate even if you guys/girls can give me some feedback about the code itself alongside the game, it will really help me to become a better programmer :)

p.s The reply has been edited :)
 
Last edited:

RazorbackDB

Member
Oct 25, 2017
176
Thanks!
Why do most indie dev stick to Unity then? it seems more limited then Unreal. Is it because of programming skills or some other financial reasons?

Well you could find more detailed explanations out there but if you ask me, Unity got a headstart as a more indie friendly engine, there is more of a community around it, learning resources and support. Features wise I would say they have different priorities, unreal support for 2d games is kinda lacking out of the box for example, but you could make almost anything with either one, except unity only offers source code access on their paid tiers.

In terms of choosing one it really depends on your specific needs and what are you already familiar with, you could even look at something like godot or cryengine, the real problem there is the smaller communities around them.
 

zoodoo

Member
Oct 26, 2017
12,759
Montreal
Well you could find more detailed explanations out there but if you ask me, Unity got a headstart as a more indie friendly engine, there is more of a community around it, learning resources and support. Features wise I would say they have different priorities, unreal support for 2d games is kinda lacking out of the box for example, but you could make almost anything with either one, except unity only offers source code access on their paid tiers.

In terms of choosing one it really depends on your specific needs and what are you already familiar with, you could even look at something like godot or cryengine, the real problem there is the smaller communities around them.
Ok I just wanted to make sure I was not aware of some issue I did not know of, that would come down the line
 

Hampig

Member
Oct 25, 2017
1,704
Showed my game off at my first convention this last weekend! It was a ton of fun and we got some really great responses to the game.

My advice to those planning to do conventions is to:
  1. Not hover too closely to the people playing your game or the controllers when people aren't playing.
  2. Be available when people have questions. They want to play on their own, but if they run into issues, they'll usually want quick answers.
  3. Have some sort of attract mode that shows people walking by what your game is. A title screen generally doesn't do it.
  4. Have a fast, good tutorial that lets your players know how much time they'll be spending in the tutorial up front (maybe with a page # type dead, page 3/6).
  5. Talk with other devs! These connections are how you'll find other cons and join in the community. Everyone we met has been super kind and helpful. Also there's some fun indie games out there.
Our game ended up being confusing to first time players, and our tutorial was too wordy to help, even though it felt like it was literally at the minimum length/words I thought it could be while making sense. We've decided to do an interactive tutorial, because some people just have a tough time if games don't adhere to well known conventions.
 

Weltall Zero

Game Developer
Banned
Oct 26, 2017
19,343
Madrid
Our game ended up being confusing to first time players, and our tutorial was too wordy to help, even though it felt like it was literally at the minimum length/words I thought it could be while making sense. We've decided to do an interactive tutorial, because some people just have a tough time if games don't adhere to well known conventions.

This is the convention experience in a nutshell, hahah. I've gone to two, and in both cases people were skipping the tutorials, even after shortening them to what seemed the bare essentials between them. I've shortened them further, and more importantly, paced them out (it seems obvious, but it pays to continuously rethink tutorials to see if they can be further split into smaller bits that are brought up immediately before they are relevant), but I've also since realized that a convention full of noise and distractions, where people don't know anything about your game, and it's competing with another 50 games for their attention, is not at all the same environment as the quiet home of someone who has paid money for your game and set aside some time to play it.

It obviously always pays off to make your game as accessible as possible, and a convention can be a really good incentive to streamline your "new player experience", but you will probably never be able to make tutorials for a game more complex than Pong that will simultaneously adequately explain its mechanics, and hold people's attention at a convention.
 

Kazooie

Member
Jul 17, 2019
5,041
This is the convention experience in a nutshell, hahah. I've gone to two, and in both cases people were skipping the tutorials, even after shortening them to what seemed the bare essentials between them. I've shortened them further, and more importantly, paced them out (it seems obvious, but it pays to continuously rethink tutorials to see if they can be further split into smaller bits that are brought up immediately before they are relevant), but I've also since realized that a convention full of noise and distractions, where people don't know anything about your game, and it's competing with another 50 games for their attention, is not at all the same environment as the quiet home of someone who has paid money for your game and set aside some time to play it.

It obviously always pays off to make your game as accessible as possible, and a convention can be a really good incentive to streamline your "new player experience", but you will probably never be able to make tutorials for a game more complex than Pong that will simultaneously adequately explain its mechanics, and hold people's attention at a convention.
As a regular Gamescom visitor, I do not think tutorials have a place in that setting. The best solution from my experience is also a difficult one, the "Nintendo solution": Teach the player the mechanics on the go without tutorials, but by level design and button prompts showing what you can do to interact in the intended way. Also, having people around (as an Indie: yourself) to explain things if people get into trouble is a good safety measure. Nobody has time or nerve for tutorials at a convention, as good as a tutorial would be, in principle.
 
Status
Not open for further replies.