|
Shalinor posted:It can cause some really horrendous stutters if your framerate hovers in the neighborhood of 60fps, where your FPS will drop to 30FPS one frame, then shoot back up the next. That's what I was referencing. targetFramerate can cause the same gross update cycle skips and the same variable hitches in framerate. And yes, getting variable refresh rates will be great, especially for VR displays.
|
# ? Feb 16, 2014 19:25 |
|
|
# ? May 17, 2024 09:43 |
|
Anyone got any experience with Bullet? I tried just naively making a btBvhTriangleMeshShape from my world geometry, and was absolutely thrilled when I could launch btSphereShapes out across it and have them bounce around. But then I tried replacing the sphere shape with a box shape, and now they just shudder a bit and fall through the world. I'm scaling the world, so everything is within a 10~20 range. I'm guessing there isn't any magic bullet to make it work better, but any hints of values I might tweak would be appreciated. (To be honest I've only used Bullet for three days yet, so I'm not exactly familiar with it.) Some C# code, setting up the world: code:
code:
code:
|
# ? Feb 18, 2014 19:32 |
|
I want to try fiddling a bit with game development. Can anyone recommend me an engine for remaking Blood? I'm not very good at the creative aspects, so it would be cool if I could use sprites, or if the engine had a lot of free assets, until I could get some proper models. Also, particle effects for fire and a boatload of gore.
|
# ? Feb 19, 2014 11:43 |
|
czg posted:Anyone got any experience with Bullet? How big are the cubes? Check the Bullet specs for the units it's comfortable with. If your whole world is 10-20 units it's possible the cubes are too small.
|
# ? Feb 19, 2014 14:23 |
|
Boz0r posted:I want to try fiddling a bit with game development. Can anyone recommend me an engine for remaking Blood? Unity's apparently becoming quite decent for 2D stuff. I'm a big fan of the Cocos2d-x (C/Javascript) and Moai options (Lua) for cross platform dev, both of which are open source.
|
# ? Feb 20, 2014 07:38 |
|
Hey everyone, I'm having a weird camera... issue? in Unity. So I've got this rail shooter movement demo that works pretty well. I like how the movement feels and all. My issue is that it's currently using an orthographic camera, so as things move closer to the camera, they don't get any bigger. But if I change to perspective camera, the shots don't appear to go to the correct spot. On top of that, if the ship isn't directly in the center, then the targeting reticle doesn't appear to center in front of the ship. Is there any way to use a perspective camera and correct for the camera's view? I've already tried giving it a really small field of view, but it doesn't 100% fix the issue. As for how I'm doing the movement, the ship has a rigidbody, gets a Vector2 of the player's input, creates a velocity and applies it to the rigidbody. The reticle moves based on the ship's velocity and has a clamp on it to prevent it from going out too far. Thanks for any help.
|
# ? Feb 20, 2014 20:25 |
|
Boz0r posted:I want to try fiddling a bit with game development. Can anyone recommend me an engine for remaking Blood? I'd go with Unity if I were you, assuming that you mean the 2.5d FPS Blood and not some other game with the same name. I'd think it'd be pretty easy to just make enemies/objects by making a GameObject with a quad as its mesh, then applying the desired sprite as its texture/material. I'm fairly certain Unity supports billboarding, so you'd be able to get that 2.5d fps feel pretty easily. It'd also be pretty trivial, I think, to fake a lot of the tricks that BUILD engine games did to give the illusion of a truly 3D space. Unity's also got a pretty good particle engine, and for things like gore you could also look into using its physics engine so that you can have it bouncing all over the place. Unity now has two physics engines, though, so make sure you're using the 3D one and not the 2D one. (No idea whether you can make particles in Unity that interact with the physics engine, though, so you might have to make actual GameObjects for those.) As for free assets, there's a lot of stuff on the Unity Asset Store, although I'm not sure how much of it is free. I think the first major hurdle you'd encounter with it is dealing with enemy pathfinding, since Unity doesn't have any pathfinding stuff built-in, to my knowledge, whereas I'd think that in a traditional FPS engine you'd have some general form of pathfinding available to you. Alternatively, you could always consider working in the BUILD engine itself, since more work has been done on it to make it more "modern" since its source code was released, but I've also heard that it's kind of a pain to work in by today's standards. Edit: Chunderstorm posted:Hey everyone, I'm having a weird camera... issue? in Unity. It sounds like you're treating the reticle as an object in the game world, rather than a part of the UI on the screen. You might want to try basing its position on where it is on the screen by converting the ship's position from world coordinates to screen coordinates using Camera.WorldToScreenPoint, make whatever adjustments you want to that coordinate, then use Camera.ScreenToWorldPoint to convert it back to world coordinates and apply it to the reticle. http://docs.unity3d.com/Documentation/ScriptReference/Camera.ScreenToWorldPoint.html http://docs.unity3d.com/Documentation/ScriptReference/Camera.WorldToScreenPoint.html You could also consider doing something that's a bit more of a hack (and which I'm not 100% certain would work), by adjusting the scale of incoming objects' transform components, based on their Z coordinate/depth. (I'm assuming that in your game, Y is the vertical component and Z is the depth component.) I think it would work, but I'm not sure how that would affect collisions when the player tries to shoot them. salad tong fucked around with this message at 20:36 on Feb 20, 2014 |
# ? Feb 20, 2014 20:26 |
|
salad tong posted:It sounds like you're treating the reticle as an object in the game world, rather than a part of the UI on the screen. You might want to try basing its position on where it is on the screen by converting the ship's position from world coordinates to screen coordinates using Camera.WorldToScreenPoint, make whatever adjustments you want to that coordinate, then use Camera.ScreenToWorldPoint to convert it back to world coordinates and apply it to the reticle. Yeah, the reticle is currently a gameObject in front of the ship, then the visual aspect of it is just a floating sprite with the same X and Y as the gameObject. I'm not sure how scaling will work (for the reasons you described) but I'll go ahead and give the World/Screen-to-Screen/World stuff. Thanks!
|
# ? Feb 20, 2014 22:41 |
|
Flownerous posted:How big are the cubes? Check the Bullet specs for the units it's comfortable with. If your whole world is 10-20 units it's possible the cubes are too small. Turns out that was a really bad idea, because now I tried removing the scaling, and that pretty much solves everything. Here's a link to an 8MB gif of some wireframe balls and boxes bouncing around, yay!
|
# ? Feb 20, 2014 23:32 |
General question on game development is what should you do with loading asset errors and another similar issues? If the spritesheet for a character is missing for some reason should I just display a basic rectangle? Should I print "Character skin missing" to the screen and close the game?
|
|
# ? Feb 23, 2014 06:04 |
|
Don Mega posted:General question on game development is what should you do with loading asset errors and another similar issues? If the spritesheet for a character is missing for some reason should I just display a basic rectangle? Should I print "Character skin missing" to the screen and close the game? This way it's good when you're testing your own stuff because you can choose to test it before you make the graphics, and it's nice if you accidentally put out one corrupted file in a release or something to have the game still work and just have one patch of badly rendered stuff but also inform the user that there's a bad file so it's not supposed to look like that. Better than "gently caress you, you can't play my game until I fix it, crash!" Especially if it's some off-screen texture or unimportant texture - I had a game from Steam with a corrupted download that damaged just one image and I was pretty happy with it for just wireframing that one bullshit thing, so I didn't have to stop and patch. But I don't think it's really very important to do it any particular way, it's such a rare, niche thing that ideally shouldn't come up at all.
|
# ? Feb 23, 2014 06:13 |
|
Placeholder textures that say "missing texture" over a bright pink background work really well. When you ship you can use an all black placeholder.
|
# ? Feb 23, 2014 07:51 |
|
Paniolo posted:Placeholder textures that say "missing texture" over a bright pink background work really well. When you ship you can use an all black placeholder. The answer depends a bit on if you're talking about development or after release though. For development, I think that a good practice is to design things in a way that it's easy to tell what all of the direct dependencies of an asset are, and from that, you can easily tell what dependencies are broken and what's linking to banned (i.e. deprecated or placeholder) or broken assets. 100% of those should be cleaned up before releasing. After release, it depends what kind of asset it is. IMO, if you can fall back to a different, valid asset (i.e. for a character skin, use the default skin instead), do that. If you can't, remove the affected object from the world. If the game would be unplayable with that object removed (i.e. the world geometry/collision), then exit to the main menu.
|
# ? Feb 23, 2014 08:17 |
|
Garry's Mod uses the pink and black checker for textures or a big ERROR model for models and I find that to be pretty much perfect. Lets you know if your environment map is hosed up or similar too since pink and black checker reflections are easy to spot. Edit: ^^^ And you can totally ship it if you have the ability to import models or similar, no problem! Or if someone deletes a model. No reason not to imo. Shouldn't be any without tampering of the game but otherwise fair game.
|
# ? Feb 23, 2014 08:20 |
|
You want some kind of placeholder in a shipped game because discs get scratched and making the entire game not work because you failed to load a texture sucks. The game I'm working on now has a neat custom shader that looks like a hologram. It's obviously placeholder but at least you can see the geometry of the object. There are placeholder models for some things as well. There are of course tons of resources which are critical and cause the game to completely fail (although sometimes you can store those redundantly), but at least a broken texture or cosmetic model variation won't stop the universe. Paniolo fucked around with this message at 08:39 on Feb 23, 2014 |
# ? Feb 23, 2014 08:29 |
|
I just realized you and OneEightHundred have avatars with an odd similarity.
|
# ? Feb 23, 2014 09:09 |
|
If something goes wrong because of an IO failure, it's probably best to report the error to the user so they can repair their install. Beyond that, anything goes, because chances are users are just going to wonder why the game is glitching out on them if you just silently continue play. Garry's Mod and similar have a few things about them that are kind of different: First, they're for games that permit a lot of user modding, so they include a lot of tolerances and capabilities that are developer-oriented. Second, last I checked, Source doesn't really have any sort of dependency analysis, so there usually isn't a way to find out if resource links are screwed without starting the game. The main objection I have to it is discipline. If you have deprecated/TBI placeholders and proper dependency analysis, then asset load failures should never happen unless something is seriously wrong. Softening the blow of data/code errors is a double-edged sword because it can hide problems and allows them to accumulate out of apathy. OneEightHundred fucked around with this message at 11:01 on Feb 23, 2014 |
# ? Feb 23, 2014 10:13 |
|
I'm converting my old Torque2D project to unity. https://www.youtube.com/watch?v=qYpXquXDJI4 Made insane progress yesterday. I love using C# instead of TorqueScript. To anyone who's trying to do 2D in Unity, don't use the 2D physics engine. It's broken as hell. For the love of all that is good and holy DO NOT USE IT. http://feedback.unity3d.com/suggestions/a-physics2d-dot-ignorecollision-function-is-vital-for-proper-one-way-platformers-in-unity2d (Ok, there's another way to do it. You could put all the platforms on a new layer and totally ignore collisions between the player and that layer...there's limitations with that though) http://forum.unity3d.com/threads/213191-Physics2D-Overlap-Circle-not-working-with-Edge-Collider-2D (basically if you want to test collisions you're limited to just ray casting, whatever, not the end of the world) There's another bug, that really forced me off the 2D Physics engine. Basically if you have an animated sprite it will re-trigger collisions. If you're in a boxcollider marked as a trigger, it will repeatedly spam OnTriggerEnter2D. I...can't really work around that. At first I switched to just using 3d box colliders, as triggers, than mounted a cube behind the player that could trigger the 3d trigger...but that's retarded.
|
# ? Feb 23, 2014 17:44 |
|
SSH IT ZOMBIE posted:I'm converting my old Torque2D project to unity. (no idea how expensive it is these days, but pretty sure there was a demo version)
|
# ? Feb 23, 2014 18:21 |
|
SSH IT ZOMBIE posted:To anyone who's trying to do 2D in Unity, don't use the 2D physics engine. It's broken as hell. For the love of all that is good and holy DO NOT USE IT. I thought Unity used Box2D, something I've heard pretty much nothing but good things about. Those constraints do look fairly dire, though.
|
# ? Feb 23, 2014 18:47 |
|
OtspIII posted:I thought Unity used Box2D, something I've heard pretty much nothing but good things about. Those constraints do look fairly dire, though. Yes. Box2D owns. I've used that before with libgdx. They use Box2D behind their own abstraction layer, and their layer is what's messed up. The issues are serious enough to where the trigger one won't be fixed in 4.3.
|
# ? Feb 23, 2014 18:51 |
|
Shalinor posted:Have you tried 2D Toolkit for Unity? It's a sane 2D system that uses the 3D physics/engine of Unity. It doesn't have any of those problems. Actually, yes. That's what I'm using, it's really good. In terms of the amount of time saved, it beats using something like Tiled and writing your own loader, or worse writing your own editor too. It's got a ton of nice features. I haven't heavily explored what Unity3d can do with it's built in 2d workflows. Like, having a callback function on animations when they hit a certain frame is very useful. 2D Toolkit is pretty well documented and you get the source components. It CAN use the 2d or 3d physics subsystem of unity. If you tell it to use the 2d subsystem, the problems arise. Fortunately it is really easy to switch between the two for your map. I just had to redo my custom player controller and a few of the other objects I had created. SSH IT ZOMBIE fucked around with this message at 18:59 on Feb 23, 2014 |
# ? Feb 23, 2014 18:54 |
|
OneEightHundred posted:The main objection I have to it is discipline. If you have deprecated/TBI placeholders and proper dependency analysis, then asset load failures should never happen unless something is seriously wrong. Softening the blow of data/code errors is a double-edged sword because it can hide problems and allows them to accumulate out of apathy. Discs get scratched. Honestly if a placeholder texture isn't getting fixed out of apathy your studio has huuuuuge production problems!
|
# ? Feb 23, 2014 19:01 |
|
I've never seen a disc scratch result in a missing texture, or a broken game, not in this day and age with how good that technology has gotten with the laser reading. The only time I could see this happening in a real world scenario is if the disc was gouged the gently caress out if it, in which case the game just won't install period. Besides most everything installs to drive or is fully digitally now. There is zero reason to ship to release any placeholder art "just in case" the game fails to load a resource. If the game is that hosed up, there will be other problems and a failed resource load is the least of your problems.
|
# ? Feb 23, 2014 19:22 |
|
Hard disk corruption and IO errors happen a lot more in practice than you might think.
|
# ? Feb 23, 2014 19:51 |
|
Suspicious Dish posted:Hard disk corruption and IO errors happen a lot more in practice than you might think. Sure. I guess if you are that worried about it then hash your game content and provide a dialog telling the user that the game is broken and they need to repair it. If it is hard disk corruption, chances are more than a single asset was affected by it. I prefer in your face errors to silently ignoring problems - which is what placeholder art is doing (in a shipped title). Placeholder art is very useful in production however. xgalaxy fucked around with this message at 20:07 on Feb 23, 2014 |
# ? Feb 23, 2014 20:02 |
|
That's a correct answer from an engineering perspective, but on the other hand, it sucks for a player to not be able to play a game because there was an I/O error streaming a texture. And that stuff does happen in practice. But I feel like I've made that point a bunch of times already and this conversation isn't going anywhere; if you don't want to, don't, but lots of developers do.
|
# ? Feb 23, 2014 20:19 |
|
Sure. I'd say log debugging info in an important place you can use for support, maybe pop up a dialog or put a message somewhere saying that an error happened while trying to play, and that you should contact support or use the automated reporting tool, but that you might be able to continue.
|
# ? Feb 23, 2014 20:36 |
|
Paniolo posted:That's a correct answer from an engineering perspective
|
# ? Feb 23, 2014 21:14 |
|
roomforthetuna posted:Which isn't to say it's the correct answer from an engineering standpoint. Some engineering prefers fault-tolerance to "correctness", it's not just for hacky game programmers. I don't get what is 'hacky' about showing a helpful error message to the user that their game files are broken and need to be repaired vs silently pretending there is no problem and having a game appear glitchy and buggy.
|
# ? Feb 23, 2014 21:52 |
|
Repaired from what? Ah yes my XBOX game disk is scratched and a texture is missing, let me just repair that from the files on the dis-
|
# ? Feb 23, 2014 23:11 |
|
Quiet failures only make sense when the client doesn't have to deal with the error or is happy with degraded performance. In the case of games, a missing texture is gonna mandate a reinstall.
|
# ? Feb 23, 2014 23:18 |
|
Jewel posted:Repaired from what? Ah yes my XBOX game disk is scratched and a texture is missing, let me just repair that from the files on the dis- haha look at the nerd still using optical media in tyool 2014. wait, hold on a minute, i gotta update webkit, brb
|
# ? Feb 23, 2014 23:38 |
|
roomforthetuna posted:Which isn't to say it's the correct answer from an engineering standpoint. Some engineering prefers fault-tolerance to "correctness", it's not just for hacky game programmers. Just give it time. SSH IT ZOMBIE posted:It CAN use the 2d or 3d physics subsystem of unity. If you tell it to use the 2d subsystem, the problems arise. Fortunately it is really easy to switch between the two for your map. I really wish Unity would kinda like... stop writing their own solutions for stuff like this, and just - ship with 2D Toolkit pre-installed, maybe? Just normalize its interface to fit nicely into the Unity API, and call it done? This isn't the first time that their "official" solution has been orders of magnitude worse than what you can find on the marketplace, and I have a sneaking suspicion that their official UI overhaul vs NGUI is heading in a very similar direction. Shalinor fucked around with this message at 00:23 on Feb 24, 2014 |
# ? Feb 24, 2014 00:20 |
|
Shalinor posted:I really wish Unity would kinda like... stop writing their own solutions for stuff like this, and just - ship with 2D Toolkit pre-installed, maybe? Just normalize its interface to fit nicely into the Unity API, and call it done? This isn't the first time that their "official" solution has been orders of magnitude worse than what you can find on the marketplace, and I have a sneaking suspicion that their official UI overhaul vs NGUI is heading in a very similar direction. I imagine it's just the sheer size of the distribution and QA'ing it for a release that prevents them from being quick on all but the most critical issues. They started breaking stuff out into Asset Store downloads and I really hope they continue doing that. Stop building this crap into the editor/distribution itself and start distributing it separately. If they did this, they could theoretically update stuff a lot faster, independent of the engine itself. Plenty of successful replacement plugins have shown that it's possible.
|
# ? Feb 24, 2014 00:56 |
|
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. Perhaps saying "hacky game programmers" mixed my message. I didn't mean that as a derogatory thing at all, I was saying it as kind of what the "just crash and tell people to repair their install" people seem to think. Fact is, there are giant network-based systems designed to do the giant network system equivalent of broken_texture.png, because imperfect service is [arguably] better than no service. roomforthetuna fucked around with this message at 01:21 on Feb 24, 2014 |
# ? Feb 24, 2014 01:19 |
|
Obsurveyor posted:I imagine it's just the sheer size of the distribution and QA'ing it for a release that prevents them from being quick on all but the most critical issues. Man imagine if they made it a really killer "game engine platform" instead of a big monolithic game engine; just with a set of "default" plugins.
|
# ? Feb 24, 2014 03:06 |
|
Unormal posted:Man imagine if they made it a really killer "game engine platform" instead of a big monolithic game engine; just with a set of "default" plugins. They are a very small team being stretched thin, and that's their own fault really. Between working on deployments to every platform on earth they keep adding in huge features. Unity's 2D tools are great but still act very strangely under certain circumstances. The new GUI system is similarly hobbled, from what I've seen I'll stick with NGUI. Unity is still hands down one of, if not the best engine for small teams.
|
# ? Feb 24, 2014 03:41 |
|
Jon93 posted:They are a very small team being stretched thin, and that's their own fault really. They really need to divide that out into a platform team and a product team, and the product team can release and incrementally improve various pluggable engine features as (potentially paid) app-store plugins on top of the base editor, and decouple the platform from feature release cycle as much as they can.
|
# ? Feb 24, 2014 03:48 |
|
|
# ? May 17, 2024 09:43 |
|
Unormal posted:They really need to divide that out into a platform team and a product team, and the product team can release and incrementally improve various pluggable engine features as (potentially paid) app-store plugins on top of the base editor, and decouple the platform from feature release cycle as much as they can. 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.
|
# ? Feb 24, 2014 04:33 |