• 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.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

Lautaro

Member
Finally jumping into Unity after messing with cocos2d for a while, but I'm having a hard time wrapping my head around how scripts and components should be laid out and connected.

I've dug through the AngryBots project and I can make sense of most of it. Is that a good example to follow to start? Looks like uses SendMessage quite a bit to message events.

A script is basically a component, you have to understand that everything orbits around a Gameobject and this object can have many components that can be an audiosource, a collider, a script created by you, etc.

Like JNT mentiones you can get any component of the current gameobject by using the instruction GetComponent<type> in a script. Usually you'll put that component in a variable in the Start method so you can call it later.

Regarding SendMessage, this is a way of calling a method directly through the gameobject without having to reference directly it's script.

This is useful if you have a method with the same name in different scripts, for example: in a fps you can have a script for the enemies and one different for explosive barrels but both have a method called ReceiveDamage that can be triggered by the player.
 

pixelpai

Neo Member
Like it, a lot. Don't know what's going on, but it looks wicked :D

wow, that looks quite neat. what's atctually happening in that? are you mining the pixels?

Thanks a lot.

The game is a simple picross-esque puzzle game. Instead of resolving each pixel individually, you may mark a number of pixels and resolve them at once. This way a chain-combo can be accomplished, which is shown in the gif. Instead of marking a pixel to be resolved (indicated by the yellow marks) you can also mark a pixel to be dissolved (red):

psy_cap2.gif


And another gif: I have show the game-over effect here once before, but hey..

psy_cap_3.gif


The change in color in the background indicates, that the time is running out..
 

fin

Member
Regarding SendMessage, this is a way of calling a method directly through the gameobject without having to reference directly it's script.

This is useful if you have a method with the same name in different scripts, for example: in a fps you can have a script for the enemies and one different for explosive barrels but both have a method called ReceiveDamage that can be triggered by the player.

gameObject.SendMessage("RecieveDamage", 10)

That will call any script on the game object that has that method.
 

F-Pina

Member
Ok, some updates for all my fellow developers :)
We managed to get the game up for pre-order on Desura besides our website with a 20% discount so that should help in promoting it more than exactly selling it since people can't try it yet or read any reviews.

We have reached Alpha!
Things have come a long way since we started. Lot's of things improved, others changed but most importantly the game is a whole lot of fun to play.
We have all the assets in the game, some still need to be tuned up and others might need to be redone but it is all there.
I still want to ad so many things so my only hope is that we work fast enough to improve it all the way until launch. To celebrate our milestone here are some art assets:

The Press Play Arcade entrance. All the way from the eighties this Arcade includes some treasures and surprises inside:

arcadestreet.png


The GAF Bar manager, Mr. Manel. Yes, it is called GAF (Good Alchool Forever) Bar.
In his talk position in the game and some animations from the interview mode.
manel_talk.gif
manel_normal_idle.gif
manel_flash_wrong2.png
manel_flash_right2.png
manel_crazy_talk.gif
manel_cracked_talk.gif
manel_angry.gif
 

Lautaro

Member
gameObject.SendMessage("RecieveDamage", 10)

That will call any script on the game object that has that method.

Sure but if the object doesn't have the method it will send an error unless you include a modifier:

gameObject.SendMessage("ReceiveDamage", 10, SendMessageOptions.DontRequireReceiver
);
 

PhiLonius

Member
Ok, some updates for all my fellow developers :)
We managed to get the game up for pre-order on Desura besides our website with a 20% discount so that should help in promoting it more than exactly selling it since people can't try it yet or read any reviews.

We have reached Alpha!
Things have come a long way since we started. Lot's of things improved, others changed but most importantly the game is a whole lot of fun to play.
We have all the assets in the game, some still need to be tuned up and others might need to be redone but it is all there.
I still want to ad so many things so my only hope is that we work fast enough to improve it all the way until launch. To celebrate our milestone here are some art assets:

The Press Play Arcade entrance. All the way from the eighties this Arcade includes some treasures and surprises inside:

The GAF Bar manager, Mr. Manel. Yes, it is called GAF (Good Alchool Forever) Bar.
In his talk position in the game and some animations from the interview mode.

Had no idea this was GM. That's pretty cool.

Bar manager reminds me of Grunkle Stan from Gravity Falls. Nice design.
 

fin

Member
Sure but if the object doesn't have the method it will send an error unless you include a modifier:

gameObject.SendMessage("ReceiveDamage", 10, SendMessageOptions.DontRequireReceiver
);

Oops I thought u were asking how to use send message when u were actually explaining how it works.
 

Dusk Golem

A 21st Century Rockefeller
Working and practicing to make a game entry in the Hallow's Eve Halloween Game Month contest, simply to compete and freshen up a bit before working on something.

I'm not the best spriter in the world, but been trying to whip up a lot of stuff for the project. And I must give a silent word to my chicken monster, who I am now scrapping after working on it for an hour yesterday and making animation for after determining it just wasn't scary.

yqo.png


Pleasant dreams, sweet prince.
 

razu

Member
So that's going to be your next game, nice. Sounds good at least, and I think
using boats is also way cool since there aren't many indie games using them,
likewise with airplanes. ;) Presentation in terms of advertisement, PR etc, or
do you mean how the game should represent your idea this time?

Presentation as in UI, graphics and sound in general. Chopper Mike was the let's-get-something-published project, which I suppose was a total success as I got something published! People bought it today.. that's pretty weird.

But for my second project I want to deliver something of a quality that will make me look at it and not quite believe that I made it myself. I kinda got that with Chopper, but I know I'll be able to improve and deliver higher quality. I know I can't do it right now, but I know I'll level-up along the way. And that's the cool thing about making something as complicated and ridiculous as a videogame by yourself, you cannot fail to improve your skills!
 

bkw

Member
Thanks for the help on Unity guys! When calling otherGameObject.GetComponent<SomeScript>(), how do you get the otherGameObject to begin with? I see FindByTag used quite a bit, but not everything's going to have a unique tag right?

Another thing I'm struggling with is if I have something like parentGameObject -> childGameObject -> boxCollider. When something hits that collider, the gameObject of that collider is childGameObject correct? But what if say the Health component is on the parentGameObject? How do I get access to that?

I could probably (?) do something like transform.parent.gameObject.GetComponent<Health>(), but that's making the assumption that everything that I collide with will have that hierarchy. Or is that how it's usually done... ?
 

Dascu

Member
Thanks for the help on Unity guys! When calling otherGameObject.GetComponent<SomeScript>(), how do you get the otherGameObject to begin with? I see FindByTag used quite a bit, but not everything's going to have a unique tag right?

Another thing I'm struggling with is if I have something like parentGameObject -> childGameObject -> boxCollider. When something hits that collider, the gameObject of that collider is childGameObject correct? But what if say the Health component is on the parentGameObject? How do I get access to that?

I could probably (?) do something like transform.parent.gameObject.GetComponent<Health>(), but that's making the assumption that everything that I collide with will have that hierarchy. Or is that how it's usually done... ?

Tag search is a good one, another one is simply by name (GameObject.Find("NameGoesHere")), but that obviously only works if there's no other objects with the same name.

For the situation you describe, another good option is instead to already define the object in your script and Prefab/Scene view. Just like you would define variables in the beginning of the script, make one for a GameObject type. Like, in JavaScript, "var parentObject : GameObject". Then drag in whatever you object you want, in the editor, and then in your script you can just do "parentObject.GetComponent" etc.
 

JulianImp

Member
Thanks for the help on Unity guys! When calling otherGameObject.GetComponent<SomeScript>(), how do you get the otherGameObject to begin with? I see FindByTag used quite a bit, but not everything's going to have a unique tag right?

Actually, GetComponent and the Find methods are extremely bad, performance-wise. If you want a script to use another script contained in the same object (or another object that's on scene), you should use private variables declared with the [SerializeField] property (ie: [SerializeField] private AudioSource myAudioSource). The only case you wouldn't be able to use this is when you're setting script properties for a prefab, if the target property doesn't belong to the prefab or one of its children.

For example, a collision event could do this:
Code:
[SerializeField] private string enemyTag = "Enemy";
private void OnCollisionEnter(Collision collision) {
    if (collision.CompareTag(enemyTag)) {
        Enemy enemyScript = collision.gameObject.GetComponent<Enemy>();
        if (enemyScript == null) return; //Early exit in case the object doesn't have the enemy script attached
        //Here you do some stuff with the script
    }
}

Another thing I'm struggling with is if I have something like parentGameObject -> childGameObject -> boxCollider. When something hits that collider, the gameObject of that collider is childGameObject correct? But what if say the Health component is on the parentGameObject? How do I get access to that?

I could probably (?) do something like transform.parent.gameObject.GetComponent<Health>(), but that's making the assumption that everything that I collide with will have that hierarchy. Or is that how it's usually done... ?
I believe a script's collision events will only be called if the object it is attached to experiences collision events so, for example, your parent game object wouldn't receive any collision events whenever its child's box collider is hit. You should take that into account whenever you code collision-related stuff in Unity.

The problem here is the collider is attached to the main object's children, which makes using GetComponentInChildren impossible (as you'd have to go up to the parent, which isn't guaranteed to exist). Can't you just mix both game objects together into a single object, making things easier?

A failproof way which would, however, have bad performance, could be the following (I'm pretending you're using the OnCollision event rather than the Trigger ones for this example):
Code:
GameObject targetGameObject;
if (collision.transform.parent != null) targetGameObject = collision.transform.parent.gameObject;
else targetGameObject = collision.gameObject;
Health heathScript = targetGameObject.GetComponentInChildren<Health>();
if (healthScript == null) return; //object doesn't have a health property, so I stop the code here to avoid errors when you try to access that property
//Now, do whatever you wantf with healthScript

The biggest problem is Object-oriented programming means each object should take care of its own actions, and never affect another object's properties. If you sent a message to the object you hit and it did something based on the event (take damage, for example), then it'd be a lot better as you'd keep each object encapsulated (as in, they each take care of their own behaviors only).
 

Lautaro

Member
Another thing I'm struggling with is if I have something like parentGameObject -> childGameObject -> boxCollider. When something hits that collider, the gameObject of that collider is childGameObject correct? But what if say the Health component is on the parentGameObject? How do I get access to that?

There's a transform.parent (IIRC) object (transform.parent.gameobject returns the parent object). Also in the collision you can use the SendMessageUpwards method in the child object so it triggers a method in the parent object.

And like Julian metioned, all those Gameobject.find methods are really expensive so try to use them very little, better add parameters or just call them once to put them in a variable.
 

razu

Member
Oh yeeeeeaah. This is an object that fades to the water colour with its depth in the water. Super cheap, and no alpha blending required...! :D



Only applied to the box here. Boat next...
 

charsace

Member
So I'm working on 2d on Unity and for collisions I've been using a box collider and raycasting with a custom controller. My question is do I need a rigid body attached? The unity character controller doesn't have a rigid body so I was wondering if I would even need one.
 

dude

dude
Ugh, fuck it. I'll post a screenshot from my game!

It's very WIP, and I still need to clean up a lot (many details are still a little sketchy) but anyway:

I'm guessing the Another World influence is pretty obvious :p

It's a P&C Adventure I'm working on in AGS.
 

Lautaro

Member
So I'm working on 2d on Unity and for collisions I've been using a box collider and raycasting with a custom controller. My question is do I need a rigid body attached? The unity character controller doesn't have a rigid body so I was wondering if I would even need one.

If you want to detect a collision between two objects, both need colliders and at least one of them needs a rigidbody.
 

charsace

Member
If you want to detect a collision between two objects, both need colliders and at least one of them needs a rigidbody.

Its been working for me without rigid bodies. Gonna read up on it and google to see what the negative is.

Graphicsgale released an update today.
 
Its been working for me without rigid bodies. Gonna read up on it and google to see what the negative is.

You only need a rigidbody if you want the physics engine to act on the object. You can still detect collisions without them, but you'll have to handle the results of the collisions yourself.
 

Raonak

Banned
YAY! Got save/load/delete system fully working.


So im wondering something- I'm a solo developer, probably will be for quite some time. (since I have no money) But I work better alone, and i can do both graphics and programming quite well, so that's not a problem. But for the splash sreen for my game im developing, I created a logo. -Raonak Games- looks quite nice imo, especially with the animation, But It's not an actual studio. no company, it's just me working from my bedroom. Is there any legal stuff one would have to take note of?

or in general, what are some legal stuff indie devs (solo or otherwise) that newbie indies should be watchful of?



Ok, some updates for all my fellow developers :)
We managed to get the game up for pre-order on Desura besides our website with a 20% discount so that should help in promoting it more than exactly selling it since people can't try it yet or read any reviews.

We have reached Alpha!
Things have come a long way since we started. Lot's of things improved, others changed but most importantly the game is a whole lot of fun to play.
We have all the assets in the game, some still need to be tuned up and others might need to be redone but it is all there.
I still want to ad so many things so my only hope is that we work fast enough to improve it all the way until launch. To celebrate our milestone here are some art assets:

The Press Play Arcade entrance. All the way from the eighties this Arcade includes some treasures and surprises inside:

arcadestreet.png

nice pixel art. ever since I've started getting into pixel art, i've started appreciating it much more than before. gaf bartender looks good. From the art, im assuming it's an adventure game?
 

Feep

Banned
what are some legal stuff indie devs (solo or otherwise) that newbie indies should be watchful of?
Make sure the name of your company and the name of your game are fully vetted to the best of your ability; you can search the USPTO online for Trademarks on either. You don't want to mess with this. If it looks even remotely taken, change it.

Forming an LLC is a good idea for taxes (elect tax treatment as S-Corp), but you have to file it two and a half months before the year you want to it to take effect. "Year" doesn't necessarily mean calendar year, it means fiscal year; you can specify. Also, at least in California, it costs $800 flat fee every year to maintain an LLC, so mathematically, you need to be making at least $20k or so for it to be worth it. The formation of the LLC can run you between $300 and $800, depending on attorney fees.

Protection of your IPs isn't really worth it, as it's highly, HIGHLY unlikely anyone is copying your shit, and even if they did, the U.S. is a first-to-use country, not first-to-file.
 

Tash

Member
Ugh, fuck it. I'll post a screenshot from my game!

It's very WIP, and I still need to clean up a lot (many details are still a little sketchy) but anyway:


I'm guessing the Another World influence is pretty obvious :p

It's a P&C Adventure I'm working on in AGS.

I like :)
 

Dascu

Member
Ugh, fuck it. I'll post a screenshot from my game!

It's very WIP, and I still need to clean up a lot (many details are still a little sketchy) but anyway:


I'm guessing the Another World influence is pretty obvious :p

It's a P&C Adventure I'm working on in AGS.

Looks really cool.
 

2+2=5

The Amiga Brotherhood
Hey guys maybe a stupid question, but i read that win8 won't support xna, if true is it convenient to use xna to make a pc game? Should i use opengl or what? Thanks!
 

F-Pina

Member
nice pixel art. ever since I've started getting into pixel art, i've started appreciating it much more than before. gaf bartender looks good. From the art, im assuming it's an adventure game?

Thanks :)
It really is more complicated than it looks, but after you set your bases and created something it is much faster to implement and make it work. For example, the animation of the bartender is all made by pieces and bits that are animated on Photoshop and exported as PNGs. Something we think of in the morning is created and implemented by the end of the day which is awesome.

The game is a point and click adventure -> http://www.caseandbot.com/
But I have introduced a number of diferences and created a slightly different take on the genre which I will leave for the players to find out what it is and have fun with (hopefully).

We are up for voting on Greenlight as well, so all votes are appreciated :)
 

missile

Member
... But for my second project I want to deliver something of a quality that will make me look at it and not quite believe that I made it myself. ...
That's one of a cool attitude. At times I get this feeling while smashing in
a lot of formulas and out comes something beautiful. I really hope my new
aerodynamic force formulas will make me stunning as well, me, the one who
actually build them from scratch. Strange.
 

Turfster

Member
... and then I lost 3 hours of work when Unity decided to crash on its own fucking interface.
Note to self: hit ctrl+s every time you do something in the editor.
 

Turfster

Member
Welp, apparently it also took the prefab I made earlier and saved with it when it died. Yay.
Because I totally want to try and rebuild a fucking car with wheelcolliders again.
Hurray for Visual Studio's SVN integration that stored a slightly older version of the prefab.
Still, you'd think Unity would save the .unity file somewhere - not in a temp dir that gets deleted on restart - every time you hit play and everything compiled successfully.
 

Raonak

Banned
since it's saturday here in NZ might as well kick off screenshot saturday

Still progressing at a good pace on my DMC inspired ActionRPG - Nax of the Universe
Implemented the third weapon, Tesla. Insprired by the God of War baldes of chaos.

QBhe4m7.png


Electric elemental, It has high range, and good speed, but low damage. In addition to that, I now have weapon swapping working! so you can swap between subweapons instantly at the press of the L2 button.
It feels like the game is really starting to come together. Might reach alpha stage sooner than I expected. Just need to
 
since it's saturday here in NZ might as well kick off screenshot saturday

Still progressing at a good pace on my DMC inspired ActionRPG - Nax of the Universe
Implemented the third weapon, Tesla. Insprired by the God of War baldes of chaos.

QBhe4m7.png


Electric elemental, It has high range, and good speed, but low damage. In addition to that, I now have weapon swapping working! so you can swap between subweapons instantly at the press of the L2 button.
It feels like the game is really starting to come together. Might reach alpha stage sooner than I expected. Just need to
Do you have a site or Twitter I could follow? Your game looks so good
 

Noogy

Member
Ugh, this thread always depresses me so much.

Everyone making such cool stuff, sharing the thrill of design and production. My days are now spent filling out paperwork and signing documents :p All good stuff to be sure, but I want to get my hands dirty.
 

sn00zer

Member
If I am anywhere near serious about game design should I just purchase the full version of Construct 2 instead of dicking around with the trial version?
 

Makai

Member
Hey guys maybe a stupid question, but i read that win8 won't support xna, if true is it convenient to use xna to make a pc game? Should i use opengl or what? Thanks!

XNA is supported by Windows 8 using a simple workaround involving installing GFWL.

http://blogs.msdn.com/b/astebner/archive/2012/02/29/10274694.aspx

I would suggest giving Unity a shot, though. A lot of your skills will transfer from XNA and you'll end up with a better looking game in less time.
 

Krammy

Member
None of this stuff is really new (months/years old), but I figured it's worth posting anyway. I have a huge thing for the Game Boy Colour, and a friend helped me tinker with homebrew (I was the art side, he was the programming).

Dungeon Crawler
Dungeon Crawler (direct from emulator)
Platformer
Salsa from Mother 3
Salsa (proof of concept video)
Scaline Effect

There's more but I don't have screenshots of it on-hand. If anyone wants to chat it up about Game Boy development, or is curious to see the roms first hand (with the exception of the Salsa demo) feel free to PM me and I'd be happy to oblige.
 

Makai

Member
None of this stuff is really new (months/years old), but I figured it's worth posting anyway. I have a huge thing for the Game Boy Colour, and a friend helped me tinker with homebrew (I was the art side, he was the programming).

Dungeon Crawler
Dungeon Crawler (direct from emulator)
Platformer
Salsa from Mother 3
Salsa (proof of concept video)
Scaline Effect

There's more but I don't have screenshots of it on-hand. If anyone wants to chat it up about Game Boy development, or is curious to see the roms first hand (with the exception of the Salsa demo) feel free to PM me and I'd be happy to oblige.

Wow! Homebrew on old consoles IS exciting. I thought NES was the only platform paid any attention.
 

Krammy

Member
NES development is really the big one. There's almost no tools for Game Boy homebrew (and the stuff out there is apparently crap to begin with), and the programmer I ended up working with decided it was worthwhile to spend a year writing his own compiler than to use what was already out there.
 

Blizzard

Banned
XNA is supported by Windows 8 using a simple workaround involving installing GFWL.

http://blogs.msdn.com/b/astebner/archive/2012/02/29/10274694.aspx

I would suggest giving Unity a shot, though. A lot of your skills will transfer from XNA and you'll end up with a better looking game in less time.
GFWL is completely shutting down though, I thought. I guess you may still be able to install the client or something, but servers are going down and support is being completely scrapped. I really think XNA is a bad idea for most anyone since Microsoft scrapped it, though I'm no expert.
 

Makai

Member
GFWL is completely shutting down though, I thought. I guess you may still be able to install the client or something, but servers are going down and support is being completely scrapped. I really think XNA is a bad idea for most anyone since Microsoft scrapped it, though I'm no expert.

Yeah, the problem is XNA Game Studio won't install on Windows 8 without GFWL installed first. I don't think it actually has to connect to GFWL servers. The GFWL client will still be available for download and installation after the service shuts down.

There might be other issues I'm not aware of.
 

2+2=5

The Amiga Brotherhood
XNA is supported by Windows 8 using a simple workaround involving installing GFWL.

http://blogs.msdn.com/b/astebner/archive/2012/02/29/10274694.aspx

I would suggest giving Unity a shot, though. A lot of your skills will transfer from XNA and you'll end up with a better looking game in less time.
Thanks, i returned to xna because if i understood correctly monogame needs opengl 4 while my stupid old and weak integrated graphics card only supports opengl 2 lol(if i use monogame i get an error that says that a certain gl function is missing)

I want to make my own engine, so for the moment i won't use unity, maybe in the future :)
 
Status
Not open for further replies.
Top Bottom