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
ephphatha
Dec 18, 2009




roomforthetuna posted:

I want to be able to come along and go "what's the value at 6?" and have my function go "well there's no entry for 6 but the entry before 6 is 5 with height 1, the entry after 6 is 12 with height 2, so the height value at 6 would be (6-5)/(12-5)*1 + (12-6)/(12-5)*2" without scanning through the entire rest of the list.

http://msdn.microsoft.com/en-us/library/w4e7fxsh(v=vs.110).aspx
For lists you can use the binary search function, if it can't find the exact value you'll get the negated index of where it should be inserted.

So your code would look something like:
code:
index = list.BinarySearch(value);
if (index < 0) {
  previousEntry = (~index - 1);
  nextEntry = ~index;
}
You can use a SortedList or SortedDictionary and do a search on the keys (by calling sortedT.Keys.ToList()).

Adbot
ADBOT LOVES YOU

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!

Ephphatha posted:

You can use a SortedList or SortedDictionary and do a search on the keys (by calling sortedT.Keys.ToList()).
That sounds like just the thing (after checking that calling Keys isn't copying anything around), except SortedList.Keys is returned as an ICollection which doesn't have a ToList function and won't cast to a List<float> (my keys are floats), and no other sort of list (eg. IList) seems to have a BinarySearch function.

I suppose I could just make a private IComparable class, put my data in a List<thatclass>, and BinarySearch a position for my inserts so it's always sorted (I'm generally wanting to search after every insert, so there's no point in sorting separately). It seems super dumb that none of the other storage classes have access to a function that returns that kind of in-between position (especially given that a List isn't even inherently sorted, so it seems like the worst place to put a BinarySearch function!)

This workaround isn't ideal compared to the redblack since the inserts are still going to be slow, and it's going to be operating every frame on update. Might be I should implement my own redblack with a find-between function. Gross. But I guess I can just use the list for now and switch if it turns out to be too slow.

One Eye Open
Sep 19, 2006
Am I awake?

Above Our Own posted:

For unity, do I have to use the default configuration window?

No, you can turn it off in Edit->Project Settings->Player then set "Resolution and Presentation->Display Resolution Dialog" in "Standalone Player Options" to "Disabled".

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy
I'm trying to add simple message boxes to my card game in Unity and I'm unsure about which way to go. My first thought was a GUIText object on top of a GUITexture object, but there doesn't seem to be any way to specify draw order. I googled to see what the recommended way of doing stuff is and I find out about the OnGUI method.

Is there a better way of doing a simple box with text in than OnGUI? The entire way it works seems totally at odds with the rest of unity. I've already got buttons in my game, they use a GUITexture object, which was simple to set up, can be previewed without running the game and (in placement at least) is resolution independent. But now I learn I'm apparently supposed to do the interface by typing out reams of If statements and using pixels instead of relative coordinates, which seems iffy, to say the least. Also the y-axis is reversed for OnGUI stuff. :iiam:

Zizi
Jan 7, 2010

roomforthetuna posted:

Perhaps more of a general C# question, but it's for a game thing.

I want a sorted list of values into which I can insert new values, which I can iterate through, and which I can get quick random access to the values nearest to a given value. Preferably with a key-value pair. Effectively I want a line graph.

So for example if the list is
[0,1], [5,1], [12,2], [17,1]

I want to be able to come along and go "what's the value at 6?" and have my function go "well there's no entry for 6 but the entry before 6 is 5 with height 1, the entry after 6 is 12 with height 2, so the height value at 6 would be (6-5)/(12-5)*1 + (12-6)/(12-5)*2" without scanning through the entire rest of the list.

It seems like a SortedDictionary would be the thing, but if so I'm missing the function for "give me an iterator pointing at key X or, if X does not exist, the item whose key is before/after X". Surely this must be something you can do?

Edit: or not an iterator but an index, that would work too, in a SortedList, but I still don't see a "find the index of key near X" function. And a SortedList would presumably be slow to insert if it gets large anyway. It's frustrating because this is a thing you can fairly quickly do with a redblack tree, which the implementation apparently is, but we don't get access to the implementation. They don't even let you enumerate 'prev' in a SortedDictionary even if you already have an enumerator, which should surely be functionally equivalent to 'next' when implemented as a redblack tree.

You might look to see if Unity has a replacement for XNA's Curve class, which would certainly do what you want. Otherwise I'd consider using a SortedDictionary and write an extension method that does the interpolated lookup.


Pilchenstein posted:

I'm trying to add simple message boxes to my card game in Unity and I'm unsure about which way to go. My first thought was a GUIText object on top of a GUITexture object, but there doesn't seem to be any way to specify draw order. I googled to see what the recommended way of doing stuff is and I find out about the OnGUI method.

Is there a better way of doing a simple box with text in than OnGUI? The entire way it works seems totally at odds with the rest of unity. I've already got buttons in my game, they use a GUITexture object, which was simple to set up, can be previewed without running the game and (in placement at least) is resolution independent. But now I learn I'm apparently supposed to do the interface by typing out reams of If statements and using pixels instead of relative coordinates, which seems iffy, to say the least. Also the y-axis is reversed for OnGUI stuff. :iiam:

Unity's GUI stuff is messy. Honestly the best choice is to go with a 3rd Party solution or wait for the new Unity GUI to ship, but that's going to be forever. I'd suggest having a look at the free version of NGUI. I've done a full UI with UnityGUI and it's not pretty.

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!

Zizi posted:

You might look to see if Unity has a replacement for XNA's Curve class, which would certainly do what you want. Otherwise I'd consider using a SortedDictionary and write an extension method that does the interpolated lookup.
Curve would've been good, but I don't think there is one.

Because I'm daft I've now just spent the time to write my own redblack tree implementation that does the 'FindNear' I wanted. It's also extra specialized to being efficient at the specific task - it lives in an array (and the entire node structure is of value type) so there's no allocations required at all (unless the capacity gets exceeded in which case there's a big reallocate and copy). Downside of living in an array is that deleting a node leaves a wasted gap (I'm not rearranging poo poo), but since I don't delete any nodes anyway in the use-case (other than a full clear), and the trees themselves are short-lived, that doesn't matter.

Premature optimization yay! But it was fun and interesting to do so that's okay.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Pilchenstein posted:

I'm trying to add simple message boxes to my card game in Unity and I'm unsure about which way to go. My first thought was a GUIText object on top of a GUITexture object, but there doesn't seem to be any way to specify draw order. I googled to see what the recommended way of doing stuff is and I find out about the OnGUI method.

Is there a better way of doing a simple box with text in than OnGUI? The entire way it works seems totally at odds with the rest of unity. I've already got buttons in my game, they use a GUITexture object, which was simple to set up, can be previewed without running the game and (in placement at least) is resolution independent. But now I learn I'm apparently supposed to do the interface by typing out reams of If statements and using pixels instead of relative coordinates, which seems iffy, to say the least. Also the y-axis is reversed for OnGUI stuff. :iiam:

Create one game object with z position 0.1 and put the GUITexture on it.
Create another game object with z position 0.2 and put the GUIText on it.
Make the GUIText game object a child to the GUITexture game object.

Mug
Apr 26, 2005
I need some help with SDL1.2.

Backstory:As a bunch of you probably know, I'm writing a game in QBASIC. Typically, QBASIC has this file called qbx.lib which interprets the QBASIC into DOS interrupts and makes your programs work. I use a custom compiler called QB64, which is basically a rewrite of qbx.lib in C with SDL, so QBASIC stuff runs on everything this way. I didn't write it, but I have to go in to the code for it sometimes and fix bugs or change the way things work for speed.

Anyway, at the moment all the rendering is handled by these "SDL Surfaces", which I guess are non-hardware-accelerated thingies. I don't know much about SDL. Basically, I was talking to Simon Roth (about how he got Steam Overlay working in VVVVVV, since it uses SDL1.2. His solution, in his words was "i just drew the SDL surface onto a screen sized quad".

So I've been trying to understand how to make it so this program of mine will initialize as an OpenGL type window thing, but I don't know anything about OpenGL at all and I can't even get anything to initialize without the whole thing just crashing, let alone getting anywhere near the point of having my surface show up in an OpenGL window.

Is anyone a bit familiar with SDL1.2 and OpenGL together that might be willing to help me out with this?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
Use SDL2. SDL_CreateWindow can create an OpenGL window which should work fine.

This way you won't need to render your non-accelerated surface as a texture.

Mug
Apr 26, 2005
I don't think it's that easy :( This is like 1,200 lines of stuff all dealing with SDL1.2 in a language I barely understand, isn't moving to SDL2.0 a total rewrite?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
Not entirely. Depends on which parts of SDL 1.2 you were using. I'm not sure if you'd be willing to post the source to the SDL layer -- I assume that's written in C? I'd be willing to port that to SDL 2.0 for you.

Mug
Apr 26, 2005

Suspicious Dish posted:

Not entirely. Depends on which parts of SDL 1.2 you were using. I'm not sure if you'd be willing to post the source to the SDL layer -- I assume that's written in C? I'd be willing to port that to SDL 2.0 for you.

Yeah, it's C. All the SDL is contained in this file. It's huge, but you can have a scroll through if you want to give me some kind of idea of the scope.
https://gist.github.com/anonymous/4acbae6604f9ea4bfd29

edit: I've had a go at this myself, I've made it so the program window is an OpenGL thing, and to test it, I fill it with a colour and draw some shape on it I copy/pasted from an OpenGL tutorial. But I can't get the old SDL surface to blit onto the OpenGL scene each frame. Here's the gist of what I've changed.

The SDL Window used to spawn like this:
code:
display_surface = SDL_SetVideoMode(x,y,32,z); // z is just a flag that sometimes returns FULLSCREEN
so I changed it to this:
code:
	SDL_Surface *screen = SDL_SetVideoMode(x,y,32,z | SDL_HWSURFACE | SDL_GL_DOUBLEBUFFER | SDL_OPENGL);
	display_surface = SDL_CreateRGBSurface(SDL_SWSURFACE,x,y,32,0,0,0,0);
So I think that way, I should still have the old display_surface working behind the scenes the way it used to, but the actual program window is an OpenGL surface named "screen", right? I tested it by immediately following with these lines, and they display on the screen some nice colours:
code:
glClearColor((128.0f / 255.0f), 1.0f, 1.0f, 1.0f);
	glClearDepth(1.0f);
 
	glViewport(0, 0, 640, 480);
 
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
 
	glOrtho(0, 640, 480, 0, 1, -1);
 
	glMatrixMode(GL_MODELVIEW);
 
	glEnable(GL_TEXTURE_2D);
 
	glLoadIdentity();

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
 
    glBegin(GL_QUADS);
        glColor3f(1, 0, 0); glVertex3f(0, 0, 0);
        glColor3f(1, 1, 0); glVertex3f(100, 0, 0);
        glColor3f(1, 0, 1); glVertex3f(100, 100, 0);
        glColor3f(1, 1, 1); glVertex3f(0, 100, 0);
    glEnd();
 
    SDL_GL_SwapBuffers();
So I scrolled down through the code looking for the word "Blit" to work out where it's actually doing SDL surface work, to try to add a new layer on top to copy display_surface to the new openGL screen. I found a line like this, which I think is what I'm after:
code:
SDL_BlitSurface(ime_back, &srect, display_surface, &drect);
Which I guess is just blitting some back buffer surface called "ime_back" to the old display_surface, which no longer appears on the screen. So, to try to get display_surface on to the new screen, I added these lines below that blitsurface (copy pasted from a google search).
code:
SDL_Surface *tex = display_surface;
    GLuint texture;

        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);

        glTexImage2D(GL_TEXTURE_2D, 0, 3, display_surface->w, display_surface->h,
        0, GL_BGR, GL_UNSIGNED_BYTE, display_surface->pixels);

        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
Unfortunately, that doesn't do the job. I just get nothing other than my original pretty colours that I used to test the OpenGL back at the start.

Am I making some obvious, rookie mistake here?

edit 2: Ok, I was *WAY* off. A radical dude in the gamedev IRC named "eatplayhate" held my hand and we made it work!

Mug fucked around with this message at 11:50 on Dec 3, 2013

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

poemdexter posted:

Create one game object with z position 0.1 and put the GUITexture on it.
Create another game object with z position 0.2 and put the GUIText on it.
Make the GUIText game object a child to the GUITexture game object.

Only just got the chance to try this now and I wanted to say thanks, it worked a treat. Does this mean Unity uses the z coordinate of gui stuff for sorting?

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

Mug posted:

edit 2: Ok, I was *WAY* off. A radical dude in the gamedev IRC named "eatplayhate" held my hand and we made it work!

Just making sure, you're all good now, right?

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Pilchenstein posted:

Only just got the chance to try this now and I wanted to say thanks, it worked a treat. Does this mean Unity uses the z coordinate of gui stuff for sorting?

I'm not sure if there's a better way honestly. GUIText and GUITexture have been around for a while as far as I know, but it would be nice if they were given layer levels so I don't have to manually set depth in the inspector. On the other hand, you can do some really cool tricks with UI by setting elements at varying z levels and then moving the camera a bit so the elements pop off the background.

Pseudo-God
Mar 13, 2006

I just love oranges!
I am developing a concept for a puzzle game for mobile devices. Because there are multiple screen formats and aspect rations, I don't know the best way to handle multiple screen sizes. What should happen to the game? Should I letterbox it, fill the new screen real estate with more information, or anything else? The entire playing area should be viewable without scrolling, so if you guys have any suggestions of how this could be approached, I'd be very grateful.

Pilchenstein
May 17, 2012

So your plan is for half of us to die?

Hot Rope Guy

Pseudo-God posted:

I am developing a concept for a puzzle game for mobile devices. Because there are multiple screen formats and aspect rations, I don't know the best way to handle multiple screen sizes. What should happen to the game? Should I letterbox it, fill the new screen real estate with more information, or anything else? The entire playing area should be viewable without scrolling, so if you guys have any suggestions of how this could be approached, I'd be very grateful.

Hearthstone would be an example of this sort of thing done well:

The play area is presented as an actual physical game, and the extra space in widescreen is the table the game is sitting on. It's technically wasted space but you tend not to notice. :v:

Alternatively, if you have a lot of ui stuff on top of the game in 4:3, you could put that down the sides in widescreen with a fancy border or something.

N0data
Dec 6, 2006

"Vi Veri Veniversum Vivus Vici."- Faust (By the power of truth, I, while living, have conquered the universe.)
So Joseph Gordon-Levitt posted this:
youtu.be/F6qgeq2vw5U

Looks like he's looking for a few Game Devs for a TV Show.

Yodzilla
Apr 29, 2005

Now who looks even dumber?

Beef Witch
Well not devs necessarily, just animators who like video games.

Chunderstorm
May 9, 2010


legs crossed like a buddhist
smokin' buddha
angry tuna
I need to write a basic AI. I'm using A* Pathfinding, and I'm trying to get an object to re-evaluate its target every so often and path to there, but my current code is giving me some problems. Rather than asking you guys to look through my terrible code, does anyone have any resources in regards to doing stuff like this? I've seen the included Follow script and that would work well for my purposes if I just threw it a new object to path to every so often, but is there a simpler way to do this short of splicing that script into my current one?

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Chunderstorm posted:

I need to write a basic AI. I'm using A* Pathfinding, and I'm trying to get an object to re-evaluate its target every so often and path to there, but my current code is giving me some problems. Rather than asking you guys to look through my terrible code, does anyone have any resources in regards to doing stuff like this? I've seen the included Follow script and that would work well for my purposes if I just threw it a new object to path to every so often, but is there a simpler way to do this short of splicing that script into my current one?

Is the basic thought for every time you reevaluate, you run A* again and go? What's the "included Follow script"?

Here's the link I use for a refresher: http://www.policyalmanac.org/games/aStarTutorial.htm

Chunderstorm
May 9, 2010


legs crossed like a buddhist
smokin' buddha
angry tuna

poemdexter posted:

Is the basic thought for every time you reevaluate, you run A* again and go? What's the "included Follow script"?

Here's the link I use for a refresher: http://www.policyalmanac.org/games/aStarTutorial.htm

The included follow script is one of the example scripts, AIFollow.cs. And yes, the basic thought is move, re-evaluate distance from player, path to spot farthest from player, rinse and repeat.

poemdexter
Feb 18, 2005

Hooray Indie Games!

College Slice

Chunderstorm posted:

The included follow script is one of the example scripts, AIFollow.cs. And yes, the basic thought is move, re-evaluate distance from player, path to spot farthest from player, rinse and repeat.

:pwn: I just realized you were using an Asset Store plugin for A*. I thought you had an algorithm problem. You might have to post code.

Also, searching google for "AIFollow.cs" gives a ton of results. I wonder how many paid for plugins are sitting in public repos.

EDIT: The answer is a ton. Some people just don't know what a .gitignore file is.

poemdexter fucked around with this message at 00:36 on Dec 5, 2013

Chunderstorm
May 9, 2010


legs crossed like a buddhist
smokin' buddha
angry tuna

poemdexter posted:

:pwn: I just realized you were using an Asset Store plugin for A*. I thought you had an algorithm problem. You might have to post code.

Also, searching google for "AIFollow.cs" gives a ton of results. I wonder how many paid for plugins are sitting in public repos.

EDIT: The answer is a ton. Some people just don't know what a .gitignore file is.

Eh, I think I'm scrapping pathfinding in favor of something simpler. This is for a school project and I have a week and a half amidst other stuff to do. Thanks for the effort! :)

FuzzySlippers
Feb 6, 2009

There is a free version of the asset A* Pathfinding plugin you can find on his site. The paid version adds some features like recast graph, but I bet most of those are the free version as its pretty popular. It's a great plugin but it is quite a lot to grapple with on a short schedule. I'd just do steering behavior unless more elaborate pathfinding is needed.

xgalaxy
Jan 27, 2004
i write code
Okay. As much as I like Starbound. What the gently caress are they doing with their code?!
A 600 meg executable! And look at all those freaking dlls too!. And a runtime memory footprint over a gig in size.

That is just bonkers.

Paniolo
Oct 9, 2007

Heads will roll.
Did they embed their assets in the exe?

xgalaxy
Jan 27, 2004
i write code

Paniolo posted:

Did they embed their assets in the exe?

Nope.

Jewel
May 2, 2009

It's in the earliest beta stage and they still have hardly optimized though. The scale of the game is also immense: Infinite procedural worlds with infinite procedurally generated creatures and trees with even sprawling dungeons generated inside, plus infinite procedurally generated weapons too, with the ability to play multiplayer. There's a lot to keep track of.

They might have accidentally embedded assets or something in the exe too to be fair. Bring it up on their forum/twitter/email. This is what a beta is for.

Edit: vvv Crud. I'm sure someone should let them know, I don't think that'd be intentional ahah.

Jewel fucked around with this message at 08:41 on Dec 6, 2013

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

xgalaxy posted:

Okay. As much as I like Starbound. What the gently caress are they doing with their code?!
A 600 meg executable! And look at all those freaking dlls too!. And a runtime memory footprint over a gig in size.

That is just bonkers.
Looks like a debug build, as 90% of the EXE are exposed symbol tables.

Obsurveyor
Jan 10, 2003

Wasn't the first patch like 500MB? Maybe someone pushed the debug binary instead of release.

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!
Weird thing in Unity, just freezing, and hitting pause in MonoDevelop for debugging shows it's just stuck in some completely trivial line - most often the constructor for a Vector2, in my code. (Trying to single step the code from that point just leaves it doing nothing, and hitting pause in the debug menu again shows it's still in the same line.)

Turns out it's probably some kind of out of memory issue (one of those things of accidentally inserting after the element in a list you're pointing at, while iterating through the list, making an infinite loop of expanding list), but weird since there was still plenty of system RAM available, I didn't get any sort of error message (a thrown exception would be nice), and the Vector2 in question is certainly not the biggest allocation around. Shouldn't even be an allocation at all I'd hope, since it should be being constructed into a variable that's already allocated, but maybe debug version would still call the constructor for that.

Took a long time to find the actual problem, what with the whole having to totally kill the process every time thing. Unity could really really do with a "debug your game in a different process from the editor" option, for easier sorting of infinite loop type mistakes.

Flownerous
Apr 16, 2012

roomforthetuna posted:

Took a long time to find the actual problem, what with the whole having to totally kill the process every time thing. Unity could really really do with a "debug your game in a different process from the editor" option, for easier sorting of infinite loop type mistakes.


I think if you enable "Development Build" and "Script Debugging" you can attach to the build to debug it?

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
AAA games have to fit into main memory, shared with the operating system, on the 256MB-main-memory PS3. BF4's executable on Windows is 36MB. A 600MB executable means they either made something 15x as complicated as top-end AAA titles, or did something terribly wrong or they're using Boost.

Including debug tables is on the pretty deep end of terribly wrong, why isn't that poo poo in PDBs that don't get shipped?

OneEightHundred fucked around with this message at 01:46 on Dec 7, 2013

No Safe Word
Feb 26, 2005

OneEightHundred posted:

AAA games have to fit into main memory, shared with the operating system, on the 256MB-main-memory PS3. BF4's executable on Windows is 36MB. A 600MB executable means they either made something 15x as complicated as top-end AAA titles, or did something terribly wrong or they're using Boost.

Including debug tables is on the pretty deep end of terribly wrong, why isn't that poo poo in PDBs that don't get shipped?

It's in beta.

OneEightHundred
Feb 28, 2008

Soon, we will be unstoppable!
I know it's in beta, but even a debug build doesn't need to stuff symbols in the executable. The incremental linker and debug data can both be put in external files (and are by default), they aren't needed for error reporting because developers can just analyze dumps with the PDB, what else would they need symbols for?

Jewel
May 2, 2009

OneEightHundred posted:

I know it's in beta, but even a debug build doesn't need to stuff symbols in the executable. The incremental linker and debug data can both be put in external files (and are by default), they aren't needed for error reporting because developers can just analyze dumps with the PDB, what else would they need symbols for?

It obviously got lumped in with the public build accidentally. The only way to solve it is to try and tell them. There's literally a few thousand bug requests a day currently because it came out a day ago, so the more people trying to let them know, the better chance it's fixed. I do wonder why the debug symbols aren't in external files but it could be a misunderstanding of how it works, and someone has to tell them regardless.

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!

Flownerous posted:

I think if you enable "Development Build" and "Script Debugging" you can attach to the build to debug it?
But (if I'm understanding you right and you mean doing a build and debugging it standalone) then you lose the benefits of running in the editor; the pause button and the ability to check where everything is, and turn gizmos on and off, and all that.

If, on the other hand, you just mean those settings for being able to debug, then I already can debug, the annoying thing is that when you accidentally get an infinite loop in your script the entire editor gets killed by it, rather than just the game. Double annoying if you haven't saved a change, but plenty annoying even without that. Maybe on my next laptop I'll have Unity on an SSD so it can start up again more quickly.

Obsurveyor
Jan 10, 2003

roomforthetuna posted:

But (if I'm understanding you right and you mean doing a build and debugging it standalone) then you lose the benefits of running in the editor; the pause button and the ability to check where everything is, and turn gizmos on and off, and all that.

You'd use it for exactly the situation you originally described, where you're not getting a proper stack trace/exception and you don't need to turn gizmos on and off and all the editor stuff. You can pause execution with a debugger whenever you want and step into/over/etc. Then you're not wasting hours dealing with the editor crashing. I'm assuming the bug you ended up solving through sheer patience was an actual issue with the game and not a Unity editor leak or something.

Adbot
ADBOT LOVES YOU

Paniolo
Oct 9, 2007

Heads will roll.

OneEightHundred posted:

I know it's in beta, but even a debug build doesn't need to stuff symbols in the executable. The incremental linker and debug data can both be put in external files (and are by default), they aren't needed for error reporting because developers can just analyze dumps with the PDB, what else would they need symbols for?

Generating call stacks for error reports. It's not like most people are going to upload a minidump after every crash, but e-mailing a call stack is pretty easy. I'll give them the benefit of the doubt and guess that's what they are doing.

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