• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

GAF Indie Game Development Thread 2: High Res Work for Low Res Pay

Status
Not open for further replies.

Water

Member
Look into swarming / flocking algorithms..
Yup.

I doubt navmesh agents hold up if the agent count goes up to "hundreds", but they are a really fast way to get some kind of prototype going because they have optimized avoidance behavior built in. You could have the activated agents pick a random destination within a radius of the player, and re-randomize every time the agent reaches it. Five minutes worth of coding basically.

And if the agents are slow & the radius is large relative to the player's maximum movement speed, maybe have the agents also check the distance to player's location / player's projected location so they can cut their current path short and re-randomize to more closely follow a player moving away from them.
 

mStudios

Member
ModernCity.jpg

A few progress:
-More Backgrounds
-Transition when switching characters.
-Shake effect on GUI, Backgrounds (simulating an act of surprise, earthquake-like for backgrounds).

I'm gonna work on more poses when I have more progress, right now they're not that important.
 

anteevy

Member
More marketing questions: Is there a "best" weekday to start a Greenlight campaign or a weekday to avoid? Also, writing press mails: should you avoid weekends?


You could also look into potential fields (or vector/flow fields). It's a bit more work to get running, but scales way better than the standard steering/group behaviours. Would only make sense if you have way more than a few dozen units though.
http://aigamedev.com/open/tutorials/potential-fields/
http://gamedevelopment.tutsplus.com...-based-vector-field-pathfinding--gamedev-9007
 
So the programmer went to a videogame event on Barcelona, and Suda51 was there.

So he played our mobile game, Helmets on Fire (its free on the google store if you want to try it). So cool! The prgrammer told me he did more than 1000 meters on the first try.
suda51playinghelmetsoj8szw.jpg


title_screen.png


Been a while since I've posted anything, I kind of got VR sidetracked for a bit.

But here's my first pass at a title screen I don't totally hate. I need to take a course in typography or something one of these days. Textual elements always trip me up.

That title screen looks lovely.
 
More marketing questions: Is there a "best" weekday to start a Greenlight campaign or a weekday to avoid? Also, writing press mails: should you avoid weekends?



You could also look into potential fields (or vector/flow fields). It's a bit more work to get running, but scales way better than the standard steering/group behaviours. Would only make sense if you have way more than a few dozen units though.
http://aigamedev.com/open/tutorials/potential-fields/
http://gamedevelopment.tutsplus.com...-based-vector-field-pathfinding--gamedev-9007
Oh boy, that goal based path demonstration video is incredible! I think it will be perfect. Thank you all for your replies.
 

bkw

Member
I need suggestion from the indieArtists in this thread before I proceed:
I'm not really an artist, but what kind of suggestions were you looking for? One thing I noticed is that for the first image, she looks a little off balance. Too much weight over her left side. Her planted leg doesn't look like it would support her in that stance. For the third image, it doesn't look like they're standing on the same ground plane. Watch the arm proportions of the girl on the right. Especially the arm.

And as always, push the pose. =)
 

Hopeford

Member
Oh lord, thank god I commented my code. Once upon a time I thought that I had no reason for commenting stuff I did if I was the only one who was ever going to look at it, but holy hell am I thankful I commented that now.

Spent a week in Brazil, didn't touch anything related to games for that entire back. Came back and the code looked like greek to me, spent like two hours just looking over the code to remember what the hell I was doing.

If I don't watch out next game I work on I might actually act responsible and like, design a flowchart ahead of time or something.
 
ModernCity.jpg

A few progress:
-More Backgrounds
-Transition when switching characters.
-Shake effect on GUI, Backgrounds (simulating an act of surprise, earthquake-like for backgrounds).

I'm gonna work on more poses when I have more progress, right now they're not that important.

You may have ready caught it, but you have a typo in the dialog box. I am guessing "Where are here" should be "We are here," maybe?
 

Das-J

Law of the West
Just released this image of one of the assets from our new game. Art style is a return to form for us.

phoenix.jpg

DOPE - I dig it! :)

More marketing questions: Is there a "best" weekday to start a Greenlight campaign or a weekday to avoid? Also, writing press mails: should you avoid weekends?
First thing Monday AM worked well for us - I would certainly avoid doing anything with press close to or during the weekend.
 

mooooose

Member
Hey, I'm new to Unity and I've been doing the tutorials. Right now I've challenged myself to do a Roll-A-Ball++.

The player is a sphere, as in Roll-A-Ball, but I was adding Cube guards.

I'd like the "guards" to block entrance ways, by moving side to side OR by moving up and down. (This may need two different scripts)

I want the guards to follow the player's movement, but remain on a "track" in front of entrance ways.

How exactly would I go about this?
 

MagicD

Member
Hey guys, got a question from a friend. He is curious about how some of you industry pros approach hiring people with experience, but the differentiating factor is school vs no school.

He wants to get into development and is toying around with learning on his own and going to school. I'd appreciate the feedback. He wants to keep his options open as much as possible.

Mine was basically: larger companies might like school but smaller startups generally don't require degrees if your work is up to snuff - which seems to be kinda on point. I think :\

I've been making games professionally for over a decade, and during that time I've interviewed countless candidates. As a lead programmer for top tier companies and now as a startup founder, here are my thoughts on the matter of degrees and what matters most in getting noticed as a newbie.

1) Your portfolio will speak the loudest. Show off only your best work. For a programmer, your work can still be polished even without having high quality art...although high quality art will certainly help give your screenshots and trailers some pop! One or two FINISHED projects is much more impressive than 10 half-assed ideas that you lost interest in but put on your resume anyway.

2) If you have one, loose your ego. I've passed on very smart candidates simply because they wouldn't mesh well with the rest of the team. I've most often seen this from programmers who think they are better than those of all other disciplines. In my experience, having the wrong attitude will lose you the most jobs either from simply not passing the interview or being the first to get cut when times get tight at the studio.

3) A CS Degree shows a couple of things about yourself. You can finish something that is hard, and you have a solid foundation of programming concepts, math and physics. Programming can be learned and mastered by many people outside of school, but writing games is as much about linear algebra as it is about writing elegant algorithms. You're almost certainly going to gain a wider breath of knowledge at college than you would teaching yourself.

4) ...but, if you're exceptional, not having a degree won't matter. One of the smartest, easiest to work with programmers I've ever head the pleasure of working with was self taught. He's an exceptional person though, and very much the exception to the rule.

5) Be excited about the prospect of making games for a living! Most game developer hopefuls have no trouble in this area...but you'd be surprised. You've got plenty of time ahead of you to get old and jaded. ;)
 
I'm currently building a 2.5D engine with OpenGL for Windows/OS X/Linux and Android.
Crosscompiling so far works pretty great
Here's a first test of my skybox, Billboards and particle features.
Artwork isn't mine btw, so sorry for the incoherent mess.

NJAM4LM.gif
 

Water

Member
3) A CS Degree shows a couple of things about yourself. You can finish something that is hard, and you have a solid foundation of programming concepts, math and physics. Programming can be learned and mastered by many people outside of school, but writing games is as much about linear algebra as it is about writing elegant algorithms. You're almost certainly going to gain a wider breath of knowledge at college than you would teaching yourself.
While I already voiced my support for your conclusion, I want to nitpick a little here. Going to school helps you write elegant algorithms. On the other hand, whether writing games is "about linear algebra" depends very much on what you do in games specifically. A graphics or physics programmer lives and breathes it, while some engine core programmer or tools programmer or game logic scripter might not end up using it much at all. Most of the theory is situational.
 
Hey, I'm new to Unity and I've been doing the tutorials. Right now I've challenged myself to do a Roll-A-Ball++.

The player is a sphere, as in Roll-A-Ball, but I was adding Cube guards.

I'd like the "guards" to block entrance ways, by moving side to side OR by moving up and down. (This may need two different scripts)

I want the guards to follow the player's movement, but remain on a "track" in front of entrance ways.

How exactly would I go about this?

There's a bunch of ways you could do this - as you're learning, its probably easiest if you do something like make a public gameobject variable to store the player in on an enemy script, then in its Update function compare the difference between the players transform.position, and the enemies transform.position on one axis, clamping the values to the end coordinates of your 'track', then use vector3.movetowards in setting their transform position after you've checked and clamped.
That is if I'm reading what you want to do correctly anyway!

Artwork isn't mine btw, so sorry for the incoherent mess.

If you want some pretty space skyboxes to test with, check out SpaceScape
 

Yoshi

Headmaster of Console Warrior Jugendstrafanstalt
2) If you have one, loose your ego. I've passed on very smart candidates simply because they wouldn't mesh well with the rest of the team. I've most often seen this from programmers who think they are better than those of all other disciplines.
This seems rahter strange, because I'd argue the most important thing in a game is game design, for a really great game, you need great artists to come up with the gameplay mechanics and the level design, but a good programmer is sufficient. A great programmer with a merely good game designer will end up with a merely good game...
 
Egos can kill projects.
Working in a studio with a bunch of egos is like real life Game Of Thrones with all the politicking, one-upmanship and project sabotage power plays.
 
There's a bunch of ways you could do this - as you're learning, its probably easiest if you do something like make a public gameobject variable to store the player in on an enemy script, then in its Update function compare the difference between the players transform.position, and the enemies transform.position on one axis, clamping the values to the end coordinates of your 'track', then use vector3.movetowards in setting their transform position after you've checked and clamped.
That is if I'm reading what you want to do correctly anyway!



If you want some pretty space skyboxes to test with, check out SpaceScape

Checking which side of an axis is probably the easiest and best method to determine position relative to.

I would suggest that while referencing an object of the player on every enemy is great - a more advanced and easier way to manage this would be go simply have a session handler, session manager, etc - a script which stores information that can be readily accessed by using some public variables.

In my game, I update the Vector3 in my session manager of the player's position after EVERY step he makes. So this can be after you move in FixedUpdate() if using a Rigidbody or Update() if using translate to move. This way you simply need to look at the session manager's information for any Vector of the player to compare.

This removes needing to cache a reference to the player's game object on every enemy and allows you to swap player objects at any time and still keep accurate positions on any object from any enemy without new references needed.

That might be a little early for him to work with static variables but I don't see an issue with using them for holding information on a current play session.

I personally keep a handy reference to my player in a session manager to be easily pointed to if needed instead of using a Find, even though quick, I rarely see the point in referencing an object that exists 100% of play time on a ton of objects in scene. Just reference it publicly and point to it when needed by other scripts to get access to information or components. Less micromanagement.
 

Water

Member
There's a bunch of ways you could do this - as you're learning, its probably easiest if you do something like make a public gameobject variable to store the player in on an enemy script, then in its Update function compare the difference between the players transform.position, and the enemies transform.position on one axis, clamping the values to the end coordinates of your 'track', then use vector3.movetowards in setting their transform position after you've checked and clamped.
That is if I'm reading what you want to do correctly anyway!
I feel that explanation is a bit hard to follow, and you didn't mention that solution is limited to situations where the enemies' tracks are exactly along one coordinate axis (if I understood correctly?). The fully general solution to mooooose's question is not much harder.

Restating the question: what point on an arbitrary line segment (the guard's "track") is closest to the player's current position in space? Once we find that point, we just have to move the guard to it.

mooooose, what you need for finding the point is the code behind this link giving a C#/XNA implementation. Just use Vector3 instead of Vector2, and because Unity and XNA math libraries have slightly different naming, you have to change LengthSquared to its Unity equivalent sqrMagnitude.
http://stackoverflow.com/questions/3120357/get-closest-point-to-a-line
 
I would suggest that while referencing an object of the player on every enemy is great - a more advanced and easier way to manage this would be go simply have a session handler, session manager, etc - a script which stores information that can be readily accessed by using some public variables.

Most of the unity tutorials assume you are explicitly assigning gameobjects to variables by dragging and dropping them in the editor inspector - I don't think singletons even get mentioned as a design pattern until the intermediate/advanced roguelike tutorial.
I'm sort of assuming he is following the tutorials in order, so didn't want to throw anything at him that isn't sort of covered already in roll-a-ball.

you didn't mention that solution is limited to situations where the enemies' tracks are exactly along one coordinate axis (if I understood correctly?).

Unless I misunderstood, that is literally what he was asking for...?
 

Water

Member
Most of the unity tutorials assume you are explicitly assigning gameobjects to variables by dragging and dropping them in the editor inspector - I don't think singletons even get mentioned as a design pattern until the intermediate/advanced roguelike tutorial.
I'm sort of assuming he is following the tutorials in order, so didn't want to throw anything at him that isn't sort of covered already in roll-a-ball.



Unless I misunderstood, that is literally what he was asking for...?

On second reading, indeed it sounds likely (but not 100% certain) that the paths he's thinking about are along the axis. But you might as well use the general solution when it's readily available and doesn't essentially complicate anything. With game prototypes, who's to say where the design is going. It's nice to be able to rotate the paths later and have them just keep working with no code changes.
 

embalm

Member
embalm: It looks great! Tell me more! :)
Cairn his going to be a Hero Tower Defense. You will control a Hero on each map, build up your towers during the game, and place additional units before the level starts.

Incoming enemies are a little more advanced than normal. We have a pretty sweet AI system for them which determines what their goal should be. Some of them will try to destroy your towers, some will only target units, and others will try to pick the easiest path available.

It's been in development hell forever. We're trying to cut content and focus on completing the levels. We have 20+ units, a combat engine, unit AI, a leveling system, and loads more complete, but it's just a bunch of separate pieces, we are trying to bring it together now.
 
Most of the unity tutorials assume you are explicitly assigning gameobjects to variables by dragging and dropping them in the editor inspector - I don't think singletons even get mentioned as a design pattern until the intermediate/advanced roguelike tutorial.
I'm sort of assuming he is following the tutorials in order, so didn't want to throw anything at him that isn't sort of covered already in roll-a-ball
Aye. I just tossed it out there :D
 

mooooose

Member
There's a bunch of ways you could do this - as you're learning, its probably easiest if you do something like make a public gameobject variable to store the player in on an enemy script, then in its Update function compare the difference between the players transform.position, and the enemies transform.position on one axis, clamping the values to the end coordinates of your 'track', then use vector3.movetowards in setting their transform position after you've checked and clamped.
That is if I'm reading what you want to do correctly anyway!



If you want some pretty space skyboxes to test with, check out SpaceScape
This worked perfectly! Mathf.Clamp is a life saver! Thank you!
 
I finally finished my first indie game and got it up on Greenlight: http://steamcommunity.com/sharedfiles/filedetails/?id=469574769

It's a microphone based game. You're playing a headline slot at a festival when all your bands equipment fails and you have to keep an extremely angry crowd happy with your mouth! Desktop and VR as well if you really want to have bottles of urine thrown at your head in virtual reality.

It's been loads of fun to make but I'm definitely looking forward to having a rest before working on the Steamworks integration. So tired.

It's also up on Itch if you want to buy the latest version of it http://seagreengames.itch.io/stage-presence




 
There's a bunch of ways you could do this - as you're learning, its probably easiest if you do something like make a public gameobject variable to store the player in on an enemy script, then in its Update function compare the difference between the players transform.position, and the enemies transform.position on one axis, clamping the values to the end coordinates of your 'track', then use vector3.movetowards in setting their transform position after you've checked and clamped.
That is if I'm reading what you want to do correctly anyway!



If you want some pretty space skyboxes to test with, check out SpaceScape

Oh, that's pretty nice, thanks!
 
We added something long-overdue to our game today: Water!

Water's a bit nefarious in video games because getting it to look good and play well are both daunting challenges. And I can't think of a sidescrolling game where I've enjoyed the swimming mechanics at least as much as the regular movement mechanics, so we're going instead with a combination of walking underwater and a short air meter.

Luckily, it seems like you can solve the graphical side just by throwing enough effects at the problem. So a swaying surface layer, a couple layers of specular highlights on the background, three or four different kind of splashes, dynamic ripple sprites that race along the surface, swirls in the refraction shader, and slowing down any gibs and debris that make their way into the water. I think we might add some dripping effects for a few seconds after you leave the water, plus air bubbles when you're near drowning. Who knows? Lots to play around with and explore!

http://www.gfycat.com/TartNeglectedBobcat
http://fat.gfycat.com/TartNeglectedBobcat.webm
 

Jobbs

Banned
We added something long-overdue to our game today: Water!

Water's a bit nefarious in video games because getting it to look good and play well are both daunting challenges. And I can't think of a sidescrolling game where I've enjoyed the swimming mechanics at least as much as the regular movement mechanics, so we're going instead with a combination of walking underwater and a short air meter.

Luckily, it seems like you can solve the graphical side just by throwing enough effects at the problem. So a swaying surface layer, a couple layers of specular highlights on the background, three or four different kind of splashes, dynamic ripple sprites that race along the surface, swirls in the refraction shader, and slowing down any gibs and debris that make their way into the water. I think we might add some dripping effects for a few seconds after you leave the water, plus air bubbles when you're near drowning. Who knows? Lots to play around with and explore!

http://www.gfycat.com/TartNeglectedBobcat
http://fat.gfycat.com/TartNeglectedBobcat.webm

You know, this is something I've put a lot of thought into, not so much for my current project, but for my next one, which will have a major underwater component. And that is the question -- How do you make it not annoying?

Your solution for your game looks good (I like the little warbly shader thingy) and is similar to what I did in my current game. I also added some damping to slow movement down while underwater, but I can do that because water is rare and used for effect in a few specific areas, if it was common in the game I'd need a better solution.

For my next game, which I do want to have a significant underwater portion (it's about trying to get to the bottom of a lake), I'll probably have to work on and refine how underwater gameplay works right on the ground floor, first thing, so it's baked into the entire design.
 
You know, this is something I've put a lot of thought into, not so much for my current project, but for my next one, which will have a major underwater component. And that is the question -- How do you make it not annoying?

Your solution for your game looks good (I like the little warbly shader thingy) and is similar to what I did in my current game. I also added some damping to slow movement down while underwater, but I can do that because water is rare and used for effect in a few specific areas, if it was common in the game I'd need a better solution.

For my next game, which I do want to have a significant underwater portion (it's about trying to get to the bottom of a lake), I'll probably have to work on and refine how underwater gameplay works right on the ground floor, first thing, so it's baked into the entire design.

Yeah. I might add some movement dampening to the player, but for now we're calling it an acceptable break from reality. I like moving at full speed, you know?

At this point, we're doing this mostly for aesthetic diversity. I mean, we can have the water level be dynamic, add floating platforms and electric eels and more, but that's just an extension of the "jump over pits" gameplay we already have a surplus of.

But I think that's okay. I think as long as the player has to think about what to do each time and every encounter isn't solved in exactly the same way then it's okay.


-----
Your getting to the bottom of the lake idea is interesting. I think lakes and deep waters make excellent haunting material. Something you have to be careful about though is ensuring that the player can't just fall to win. There are some elements of that in Spelunky and especially Abyss Odyssey, for example.
 
I've been making games professionally for over a decade, and during that time I've interviewed countless candidates. As a lead programmer for top tier companies and now as a startup founder, here are my thoughts on the matter of degrees and what matters most in getting noticed as a newbie.

1) Your portfolio will speak the loudest. Show off only your best work. For a programmer, your work can still be polished even without having high quality art...although high quality art will certainly help give your screenshots and trailers some pop! One or two FINISHED projects is much more impressive than 10 half-assed ideas that you lost interest in but put on your resume anyway.

2) If you have one, loose your ego. I've passed on very smart candidates simply because they wouldn't mesh well with the rest of the team. I've most often seen this from programmers who think they are better than those of all other disciplines. In my experience, having the wrong attitude will lose you the most jobs either from simply not passing the interview or being the first to get cut when times get tight at the studio.

3) A CS Degree shows a couple of things about yourself. You can finish something that is hard, and you have a solid foundation of programming concepts, math and physics. Programming can be learned and mastered by many people outside of school, but writing games is as much about linear algebra as it is about writing elegant algorithms. You're almost certainly going to gain a wider breath of knowledge at college than you would teaching yourself.

4) ...but, if you're exceptional, not having a degree won't matter. One of the smartest, easiest to work with programmers I've ever head the pleasure of working with was self taught. He's an exceptional person though, and very much the exception to the rule.

5) Be excited about the prospect of making games for a living! Most game developer hopefuls have no trouble in this area...but you'd be surprised. You've got plenty of time ahead of you to get old and jaded. ;)
Dammit I thought I replied earlier :(

Thanks for this. I'll pass on the info and hopefully his account will get approved so he can engage directly.
 

Jobbs

Banned
Your getting to the bottom of the lake idea is interesting. I think lakes and deep waters make excellent haunting material. Something you have to be careful about though is ensuring that the player can't just fall to win. There are some elements of that in Spelunky and especially Abyss Odyssey, for example.

Surface areas are about preparation for the next expedition into the lake (to find the source of the EVIL!). So.. Surface is mostly gathering, npcs, crafting, whatever, and lake is danger time. You get deeper by going as deep as your equipment will allow and laying a beacon which gives you a shortcut for next time. Or something along those lines. So there's no way to accidently or on purpose skip to the bottom before you've earned it.

There will be dry areas under the lake, too, of course.
 
Status
Not open for further replies.
Top Bottom