Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Unormal
Nov 16, 2004

Mod sass? This evening?! But the cakes aren't ready! THE CAKES!
Fun Shoe

Subjunctive posted:

I've been down that path in (non-game) software I've developed, and it hurts. For one thing, it means that you need to make sure the engine changes are compatible with multiple versions of the plugins, and you have to make sure they can all operate in the presence/absence of the others. The combinatorial matrix explodes pretty quickly, and then you wish you'd decided to chew glass instead. You also end up spending a ton more time on API futzing, because the different components can no longer talk directly to each other and make assumptions about how the other implementations behave.

There's a great agility benefit from being decoupled, for sure, but being able to release more frequent updates to individual pieces is small consolation if it gets a lot harder to build and maintain that set of pieces.

It's true, but the alternative is a bloated monolithic package where that's all still true, it's just all baked into a single mega-exe that has to pass QA as a single unit. Either way you're taking razorblades to your face, but at least you can release features out of band, as well as test smaller new types of functionality in an agile way, rather than rolling them up into your painful once-a-year shitstorm releases.

Unormal fucked around with this message at 04:43 on Feb 24, 2014

Adbot
ADBOT LOVES YOU

Obsurveyor
Jan 10, 2003

Subjunctive posted:

There's a great agility benefit from being decoupled, for sure, but being able to release more frequent updates to individual pieces is small consolation if it gets a lot harder to build and maintain that set of pieces.

Unity is already agile enough to do it, imho, based on all the awesome 3rd party assets that have been developed for it that I've used. If anything, them being able to ram stuff straight into the editor is becoming more of a liability than a blessing. If all of their tools had to use the same integration path that other tools have to use, things could only improve. They could at least put a moratorium on integrating even more crap into it until they figure out a path. Is anything that Unity 3D is working on putting directly in the editor really that critical to game development at this point vs. assets that are already available?

Obsurveyor fucked around with this message at 04:52 on Feb 24, 2014

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

Subjunctive posted:

You also end up spending a ton more time on API futzing, because the different components can no longer talk directly to each other and make assumptions about how the other implementations behave.

From my experience this ends up being beneficial to the platform as a whole anyways

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Obsurveyor posted:

Is anything that Unity 3D is working on putting directly in the editor really that critical to game development at this point vs. assets that are already available?
Having a not-terrible GUI integrated is probably worthwhile for them. It's something pretty much every game needs, and I imagine quite a few people walk away from Unity frustrated rather than thinking "well maybe I can separately purchase a plugin that makes it not suck at this."

And good 2D of course. And not locking up the editor entirely if there's an accidental infinite loop in a script would be good too, but I don't think they're working on integrating that. :/

Calipark
Feb 1, 2008

That's cool.
A lot of their major editor changes require a huge back-end engine effort to work well.

The Unity 2D tools are much more than a nice way to draw sprites, it's a major shift in physics and rendering to make the entire thing fairly well optimized.

Using Unity2D tools over something like 2Dtoolkit yields massive performance boosts. I don't think having separate engine and feature teams would make it easier for them to implement features on that scale.

Calipark fucked around with this message at 21:58 on Feb 24, 2014

Admiral Snuggles
Dec 12, 2008

:qq: Freedom :qq:
I was making a fun little game in Unity where I didn't save my scene, I had the code mostly written, and then I locked Unity in an infinite loop.

:cry:

As a consolation for my dumbassery, please sip fine vodka while enjoying the game I made yesterday--Viktor Yakunovich's Ukraine Protest Simulator.

Bondematt
Jan 26, 2007

Not too stupid

Admiral Snuggles posted:

I was making a fun little game in Unity where I didn't save my scene, I had the code mostly written, and then I locked Unity in an infinite loop.

:cry:

As a consolation for my dumbassery, please sip fine vodka while enjoying the game I made yesterday--Viktor Yakunovich's Ukraine Protest Simulator.

Your scripts should still be saved at least, just whatever you changed in the scene will be gonzo.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Admiral Snuggles posted:

I was making a fun little game in Unity where I didn't save my scene, I had the code mostly written, and then I locked Unity in an infinite loop.

:cry:

As a consolation for my dumbassery, please sip fine vodka while enjoying the game I made yesterday--Viktor Yakunovich's Ukraine Protest Simulator.

Commit always and often. Also, I always tap CTRL-S between hitting play for just this reason.

diamond dog
Jul 27, 2010

by merry exmarx
Do it whenever you update a prefab too, even though you'd expect them to survive since they're scene-independent. They don't.

AntiPseudonym
Apr 1, 2007
I EAT BABIES

:dukedog:
Do I have to do Save Scene and Save Project manually every single time, or should Save Scene do the job? I had an issue a while ago where prefabs were disappearing so I've been doing that ever since.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Paniolo posted:

Honestly if a placeholder texture isn't getting fixed out of apathy your studio has huuuuuge production problems!
Right, but if you have the capabilities to tell if you've still got placeholders linked, then you should be able to fix all of your dead asset links too.

And dead asset links certainly do ship, go fire up any of Valve's games and watch the console.

Suspicious Dish posted:

Hard disk corruption and IO errors happen a lot more in practice than you might think.
There are a lot of games (i.e. COD) that ship with huge amounts of assets in a single compressed blob. One errant bit will cause the entire level load to fail, and that's on optical. The only real justification I see for it is for games that stream in resources, in which case the game can usually act as if the resource is stuck.

Is anyone here asking for advice on shipping a console game on optical anyway? Hard disk errors are something so rare outside of soon-to-be-catastrophic hardware failures that I don't think they're even worth worrying about.

Shalinor posted:

I think all programmers start with the idea of beautiful fault tolerant execution unwinding stacks of exceptions/etc... and then after a decade of writing all of the intermediate error messages (and dealing with message spews 20 lines long for a single error), they finally go "gently caress IT" and dump in a broken_texture.png instead.
It's more that you can avoid needing broken_texture.png if you can find all of your busted texture references with a button-press. I find that maintaining quality is usually easier than putting in things that let quality slip until they become so unavoidably broken that they have to be fixed.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

AntiPseudonym posted:

Do I have to do Save Scene and Save Project manually every single time, or should Save Scene do the job? I had an issue a while ago where prefabs were disappearing so I've been doing that ever since.

Save scene with do project + scene.
Save project will just do project things (prefabs, settings)

Paniolo
Oct 9, 2007

Heads will roll.

OneEightHundred posted:

Is anyone here asking for advice on shipping a console game on optical anyway?

Well, that's my day job, so that's definitely my perspective.

OneEightHundred posted:

It's more that you can avoid needing broken_texture.png if you can find all of your busted texture references with a button-press. I find that maintaining quality is usually easier than putting in things that let quality slip until they become so unavoidably broken that they have to be fixed.

This breaks down when the size of your team increases past 1.

There's a parallel here to the question of how aggressively you should assert on errors in code as opposed to trying to move on as best you can. There's a world where you always want to crash immediately because that lets you know right away something's broken and forces you to fix it. Of course, when you head down that road you're saying that nobody else can get anything done until your work is totally free of bugs, and that's not realistic. Particularly not in games.

Still that's a tough balance to strike. One of the things we've been exploring lately is having all recoverable errors do something like this:

code:
if (behavior_tree_is_valid())
{
   // do ai stuff
}
else
{
   error(k_error_group_ai_engineering, "behavior tree wasn't valid!");
}
Users can then configure locally (at runtime) whether an error group causes an assert or is just logged and ignored. The idea being errors in your area of code, while everyone else gets to continue along their merry way, because they probably don't really give a gently caress if your particular widget is buggy. Testers can even start out with all errors enabled, then when they hit something, log it, disable it and continue on to the next.

Of course in the shipping game, all of those asserts are disabled, and you're operating in the mode of maximum robustness under the assumption (and hope) your test passes caught all the errors, and that any you didn't are safely recoverable. Because at the end of the day, an occasional glitch is thousands of times preferable to a crash as far as players are concerned. (That being said, of course there are still plenty of errors which are critical and will still cause an immediate halt or kick players back to the main menu in the shipping game.)

One of the problems with extending this to content - and a problem with automated dependency verification, to loop back around to placeholder textures, is the sheer amount of unfinished and unused content that pollutes the repository of any game in development. It's generally really difficult to answer in an automated way (and often times just as difficult even if you ask someone) whether or not a piece of content is actually used in anything player-visible, as opposed to just referenced in a massive hierarchy of content. You'd have to have incredibly disciplined content creators to avoid this problem, which is why virtually any game you'll ever see ships with unused content that gets datamined out - often broken and missing textures and audio.

Paniolo fucked around with this message at 09:36 on Feb 25, 2014

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

Paniolo posted:

This breaks down when the size of your team increases past 1.
There's a balance. If you're using C#/C++ for instance, then you're doing basically the same thing all the time with code: You push the Build button, and if it fails, then you made a mistake that you have to fix before you can do anything else. The disadvantage of doing checks at runtime is the same as what dynamic languages suffer, by comparison: You don't get any indication that something is wrong until you encounter something that makes it fail. It's beneficial on larger team sizes for exactly the same reason, because submitting crap data that could have been caught by an automated check but didn't show up in a quick test battery tends to waste the time of other people.

Paniolo posted:

It's generally really difficult to answer in an automated way (and often times just as difficult even if you ask someone) whether or not a piece of content is actually used in anything player-visible, as opposed to just referenced in a massive hierarchy of content.
If you have a dependency graph, then you should be able to tell where those references are coming from.

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'

AntiPseudonym posted:

Do I have to do Save Scene and Save Project manually every single time, or should Save Scene do the job? I had an issue a while ago where prefabs were disappearing so I've been doing that ever since.

Strumpy posted:

Save scene with do project + scene.
Save project will just do project things (prefabs, settings)

If you're working on prefabs, especially when using source control, you need to do "save project" to save their changes, saving just the scene is not enough. If I had a dollar for every time a commit didn't work because a prefab wasn't really saved before checking-in... I'd have money for a few lunches. Closing the app does the same thing, but is much less convenient.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?
Aw yeah, sweet Asset Store monies here we come.

Flownerous
Apr 16, 2012

dupersaurus posted:

If you're working on prefabs, especially when using source control, you need to do "save project" to save their changes, saving just the scene is not enough. If I had a dollar for every time a commit didn't work because a prefab wasn't really saved before checking-in... I'd have money for a few lunches. Closing the app does the same thing, but is much less convenient.

I thought the same thing, but after seeing Strumpy's post I tested a Ctrl-S save and it seemed to save the prefab too. Maybe it's a recent fix?

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Shalinor posted:

Aw yeah, sweet Asset Store monies here we come.



Let me know when you get on JUMP PHYSICS levels of awesomeness...

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

poemdexter posted:

Let me know when you get on JUMP PHYSICS levels of awesomeness...


I think I'm getting screwed by Unity 2D not supporting IgnoreCollision. I bet I'll get more sales once I can update the package to support Unity 2D.

illiniguy01
Feb 19, 2011

Sweat, Ubu. Sweat. Good paranoid schizophrenic.
Can anyone see what my problem is. I'm making a 2d dungeon and then trying to add doors to the dungeon but it is causing stack exception or a hang. It is supposed to check if there is a room above, below, left, right, and then add doors if there is. Then it moves on to that room and does the same thing.

code:
public void addDoors(IntVector2 roomLocation, string roomCameFrom)
	{

		Room room = fc.GetRoom (roomLocation.x, roomLocation.y);
		Room nextRoom;

		//room should not be null
		if(room == null)
		{
			throw new UnityException();
		}

		//set next room to the room above
		//if next room is null or it was the room that came from then skip
		//set door type to regular. set next room to regular
		//move to the next room
		nextRoom = fc.GetRoom(roomLocation.x, roomLocation.y - 1);
		if(nextRoom != null  && roomCameFrom != "up")  //up
		{
			room.DoorTop.ThisDoorType = Door.DoorType.Regular;
			nextRoom.DoorBottom.ThisDoorType = Door.DoorType.Regular;

			this.addDoors(new IntVector2(roomLocation.x, roomLocation.y - 1), "down");
		}
		nextRoom = fc.GetRoom(roomLocation.x, roomLocation.y + 1);
		if(nextRoom != null && roomCameFrom != "down")  //down
		{
			room.DoorBottom.ThisDoorType = Door.DoorType.Regular;
			nextRoom.DoorTop.ThisDoorType = Door.DoorType.Regular;

			this.addDoors(new IntVector2(roomLocation.x, roomLocation.y + 1), "up");
		}
		nextRoom = fc.GetRoom(roomLocation.x + 1, roomLocation.y);
		if(nextRoom != null && roomCameFrom != "right")  //right
		{
			room.DoorRight.ThisDoorType = Door.DoorType.Regular;
			nextRoom.DoorLeft.ThisDoorType = Door.DoorType.Regular;

			this.addDoors(new IntVector2(roomLocation.x + 1, roomLocation.y), "left");
		}
		nextRoom = fc.GetRoom(roomLocation.x - 1, roomLocation.y);
		if(nextRoom != null && roomCameFrom != "left")  //left
		{
			room.DoorLeft.ThisDoorType = Door.DoorType.Regular;
			nextRoom.DoorRight.ThisDoorType = Door.DoorType.Regular;

			this.addDoors(new IntVector2(roomLocation.x - 1, roomLocation.y), "right");
		}
	}

shodanjr_gr
Nov 20, 2007
Your first terminating condition is getting a null value from fc.GetRoom(). If you end up with infinite recursion, you should look into what fc.GetRoom() actually does. Do you actually set it to return null when the x,y coordinates are not within your map boundaries?

I've barely worked with Unity but maybe its scripting engine also has some sort of stack size limit that you might have to increase?

AntiPseudonym
Apr 1, 2007
I EAT BABIES

:dukedog:

Flownerous posted:

I thought the same thing, but after seeing Strumpy's post I tested a Ctrl-S save and it seemed to save the prefab too. Maybe it's a recent fix?

Yeah I think it is. I know when I was using Unity earlier last year I was having a lot of issues with Unity crashing thanks to me messing something up, and I kept losing all of my prefabs even though I was pressing Ctrl+S like my life depended on it.

FuzzySlippers
Feb 6, 2009

Anyone have comments on using XAML to build a GUI? Noesis offers a product that brings in XAML based interfaces into Unity and looks pretty impressive but I don't know anything about XAML. I am damned tired of monkeying around with gameobjects for ui in the editor and would love either something external or more purely code based.

seiken
Feb 7, 2005

hah ha ha

illiniguy01 posted:

Can anyone see what my problem is. I'm making a 2d dungeon and then trying to add doors to the dungeon but it is causing stack exception or a hang. It is supposed to check if there is a room above, below, left, right, and then add doors if there is. Then it moves on to that room and does the same thing.

You have this check that you don't go back to where you just came from, but that isn't enough if you have a loop of length greater than 2 in the rooms. It'll just go round forever. If you have a lot of rooms you might want to avoid recursion so you don't blow the stack, also

Rottbott
Jul 27, 2006
DMC

FuzzySlippers posted:

Anyone have comments on using XAML to build a GUI? Noesis offers a product that brings in XAML based interfaces into Unity and looks pretty impressive but I don't know anything about XAML. I am damned tired of monkeying around with gameobjects for ui in the editor and would love either something external or more purely code based.
I really like it in WPF. I considered doing something similar for UI in my game engine, but I would only be able to support a small subset of XAML, so I'll probably just make my own similar-looking thing. It's a nice idea though.

illiniguy01
Feb 19, 2011

Sweat, Ubu. Sweat. Good paranoid schizophrenic.

seiken posted:

You have this check that you don't go back to where you just came from, but that isn't enough if you have a loop of length greater than 2 in the rooms. It'll just go round forever. If you have a lot of rooms you might want to avoid recursion so you don't blow the stack, also

Yeah thats the problem. Im going change it so it just goes through the array one by one and adds doors as it goes.

Zizi
Jan 7, 2010

FuzzySlippers posted:

Anyone have comments on using XAML to build a GUI? Noesis offers a product that brings in XAML based interfaces into Unity and looks pretty impressive but I don't know anything about XAML. I am damned tired of monkeying around with gameobjects for ui in the editor and would love either something external or more purely code based.

XAML is great... when MS is doing it with the full range of support and code-behind bindings and stuff WPF/Silverlight/etc delivers. I've never seen an implementation other than MS's that delivers enough of the features that makes XAML a great option to be actually good, though. So I'd be really skeptical of a Unity XAML solution being better than the go-to Unity UI solutions.

SSH IT ZOMBIE
Apr 19, 2003
No more blinkies! Yay!
College Slice
https://www.youtube.com/watch?v=h6hpEpNEe78
drat unity physics casting. There's no cube cast, so trying sphere cast.
But like ray casting, the ray or sphere needs to start outside of the object it's hitting, and move into it.

I just want to find objects in a hitbox area.

I think I'm gonna be better off writing my own thing that iterates through all hittable game objects for an area and just find intersections manually, instead of using the physics engine for damage areas.

Not sure if I should even continue down the path of trying to use physics for determining hotboxes.

Edit: Maybe I could try spawning a short lived trigger collider on the map when a player does an attack, instead of trying to cast collisions. I think those are a bit more reliable and will trigger onTriggerEnter if a trigger is enabled\disabled\added to the map.

SSH IT ZOMBIE fucked around with this message at 07:16 on Feb 28, 2014

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!

SSH IT ZOMBIE posted:

But like ray casting, the ray or sphere needs to start outside of the object it's hitting, and move into it.
I think OverlapSphere exists for this case.

Box casts can be accomplished by using ray casts against enlarged boxes, or you could probably just insert a box into the world and detect the collision in the next frame to trigger the effect.

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

SSH IT ZOMBIE posted:

drat unity physics casting. There's no cube cast, so trying sphere cast.
But like ray casting, the ray or sphere needs to start outside of the object it's hitting, and move into it.

Edit: Maybe I could try spawning a short lived trigger collider on the map when a player does an attack, instead of trying to cast collisions. I think those are a bit more reliable and will trigger onTriggerEnter if a trigger is enabled\disabled\added to the map.
I'm not entirely sure which is more reliable. I know that raycasts, for instance, appear to fail if they originate inside a collider - they skip that collider - which makes shooting at point blank a real bastard of a problem to solve.

Still, RigidBody.SweepTest might help you out in this particular case. Maybe keep a RigidBody around as your hit box, and SetPos then sweep it out when you need to determine a hit?

Whenever you figure this out, please do post about it. Melee hitboxes were a bitch to get working in UDK, and I worry they're even worse in Unity. I've been avoiding it for precisely this reason, the missed-hits issue.

EDIT: While we're on the topic, does anyone know if it's possible to make animation events be 100% reliable? I've noticed Unity will randomly skip them if they're near the beginning or end of an animation. Kind of hoses thoughts of using them to time anim-synced hits.

Shalinor fucked around with this message at 17:10 on Feb 28, 2014

FuzzySlippers
Feb 6, 2009

Is this mecanim or legacy? I know mecanim can sometimes fail animation events if in the middle of a blend transition. I use curves or tags for animation events. Tags in particular are a lot less fiddly and it is easy to have events fire off automatically when current tag equals whatever. You just need to store the hash of the tag name as it hits the gc to do a string comparison.

My experience was that colliders are way less reliable than raycasts. It also seemed like a good idea to me to have collision redundancy that was faked. I looked for probable hits on my impact objects and those started an estimated impact counter. At the end if there was no hit and the target object was in the same position I just forced a hit.

Messy but seemed good enough for third person action. My plan was to make it more loose for the player and harsher on AI hits but I never got around to it. You could also have redundancy more like how I do it with my turn based combat and have it pull the closest collider from the target character and if the distance from the impact object / hitbox is ever minuscule force a hit.

roomforthetuna
Mar 22, 2005

I don't need to know anything about virii! My CUSTOM PROGRAM keeps me protected! It's not like they'll try to come in through the Internet or something!

Shalinor posted:

I'm not entirely sure which is more reliable. I know that raycasts, for instance, appear to fail if they originate inside a collider - they skip that collider - which makes shooting at point blank a real bastard of a problem to solve.
Raycast plus tiny Physics.OverlapSphere to get a list of things you're inside, perhaps?
I haven't tested that, but I did something similar where I actually wanted specifically to collect things a point overlaps with, by calling
code:
overlappedcolliders = Physics2D.OverlapCircleAll(transform.position, 0.0001f);

Shalinor
Jun 10, 2002

Can I buy you a rootbeer?

roomforthetuna posted:

Raycast plus tiny Physics.OverlapSphere to get a list of things you're inside, perhaps?
I haven't tested that, but I did something similar where I actually wanted specifically to collect things a point overlaps with, by calling
code:
overlappedcolliders = Physics2D.OverlapCircleAll(transform.position, 0.0001f);
Currently, all my raycast draggers (ie. my bullets effectively drag a raycast behind them as they move) also have box triggers, which catch anything the raycast doesn't / handle the slow-movement cases. That'd definitely be a good option if you can't do that, though, or want it all in once nice, simple function.

stramit
Dec 9, 2004
Ask me about making games instead of gains.

Shalinor posted:

Whenever you figure this out, please do post about it. Melee hitboxes were a bitch to get working in UDK, and I worry they're even worse in Unity. I've been avoiding it for precisely this reason, the missed-hits issue.

EDIT: While we're on the topic, does anyone know if it's possible to make animation events be 100% reliable? I've noticed Unity will randomly skip them if they're near the beginning or end of an animation. Kind of hoses thoughts of using them to time anim-synced hits.

The person to ping about this would be @mwegner. He's working on http://aztez.com/ which is a side scrolling beat em up. He's using all normal unity stuff with some custom animation tools on top. He would know the ins and out of the physics for melee / brawlers.

Orzo
Sep 3, 2004

IT! IT is confusing! Say your goddamn pronouns!
Not my style of gameplay, but that game looks cool as hell. Pretty polished looking!

CrusherEAGLE
Oct 28, 2007

Frosty Divine
I've got a summer free and I'm looking to do a bunch of work.

Is there a specific programming language that is best suited to learn for game development? If so, which one, and where should I start?

I would really appreciate any help. I know some basics of programming but not much.

And if not a programming language, anything else I should be doing?

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

CrusherEAGLE posted:

Is there a specific programming language that is best suited to learn for game development? If so, which one, and where should I start?

There're a bunch of languages used in game development. The one you should learn is C#, because that's what Unity3D uses. Unity3D is by far and away the best way to make your own game, and making your own game is by far and away a) the best way to impress interviewers b) the best way to find out if you actually like making games.

CrusherEAGLE
Oct 28, 2007

Frosty Divine

coffeetable posted:

There're a bunch of languages used in game development. The one you should learn is C#, because that's what Unity3D uses. Unity3D is by far and away the best way to make your own game, and making your own game is by far and away a) the best way to impress interviewers b) the best way to find out if you actually like making games.

Thank you, I was actually looking at Unity today.

Should I bother with anything else other than Unity at the moment, or just focus on this in particular?

down with slavery
Dec 23, 2013
STOP QUOTING MY POSTS SO PEOPLE THAT AREN'T IDIOTS DON'T HAVE TO READ MY FUCKING TERRIBLE OPINIONS THANKS

coffeetable posted:

There're a bunch of languages used in game development. The one you should learn is C#, because that's what Unity3D uses. Unity3D is by far and away the best way to make your own game, and making your own game is by far and away a) the best way to impress interviewers b) the best way to find out if you actually like making games.

Just for the record, there are a plethora of tools and options outside of Unity, and while it is the flavor of the month on these forums, there are plenty of other reasonable options that won't have you working in a hulking ide pouring through broken documentation trying to figure out which third party plugins you need to create ground breaking game components like a GUI.

If you're not doing some sort of three dimensional projection I really don't see any reason to use Unity over any other number of tools, such as Construct, GameMaker, etc.

Adbot
ADBOT LOVES YOU

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
Java is another solid option. Java and C# are very similar, so learning one will make picking up the other fairly painless. Java comes stock with a pretty solid and very easy to use 2D graphics API and there are third party libraries such as Slick2D, LibGDX and LWJGL which can be helpful for game development. Java makes it easy to target all three desktop platforms and can be used for Android development too. If you want something that will help you ease into Java or just for quick playing around, try out Processing, which comes with a lightweight IDE, easy-to-use 2D and 3D graphics capabilities and can compile Windows/Linux/OSX/Android/HTML5 standalone executables.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply