|
Flownerous posted:There's probably a direct way to launch them, but if that fails you should just be able to call EditorApplication.ExecuteMenuItem Thanks! This will do. I'd like to get rid of the menu entry but the important bit is that the button works.
|
# ? Apr 22, 2014 20:38 |
|
|
# ? Jun 15, 2024 22:42 |
|
Steam's just been down for maintenence, which seems an apt time to ask about something I've always wondered - when big game servers go down for 'routine maintenance' - services like Steam or World of Warcraft going down at a scheduled time each week, what actually happens during that time? Is everything just 'reset'? What constitutes 'maintenance' of this sort?, why is it required so regularly, etc?
|
# ? Apr 23, 2014 00:30 |
|
The Grumbles posted:Steam's just been down for maintenence, which seems an apt time to ask about something I've always wondered - when big game servers go down for 'routine maintenance' - services like Steam or World of Warcraft going down at a scheduled time each week, what actually happens during that time? Is everything just 'reset'? What constitutes 'maintenance' of this sort?, why is it required so regularly, etc? Well in every other software solution I've seen you often want a little bit of time to do database maintenance/batch operations. Most systems do batch jobs every night that wouldn't run under load when you're customer base isn't using them. No one talks about it because it doesn't get noticed. Once you become 24/7 you learn you have to schedule outages just for basic things. It's a good idea to schedule these at least once a week so that you can deploy and respond without taking down the system when people are using them. If you make your outages spaced out further than a week you end up taking it down just to make a simple change that could wait a couple days but couldn't wait a month. In short they are doing it so that they can be up the other times.
|
# ? Apr 23, 2014 01:17 |
|
That's a result if their technology stack though and avoidable. Guild Wars, for example, has had less than 2 days downtime over the span of 10 years. And that game has also had several expansions. That's impressive, but it shouldn't be. It should be the norm.
|
# ? Apr 23, 2014 01:47 |
|
xgalaxy posted:That's a result if their technology stack though and avoidable. I wish Arena published more about their hot-update stuff. I mean, you see it in a lot of non-game contexts (not much scheduled outage for FB or Pinterest or GitHub or imgur, though they do a ton of maintenance and code deployment), but as you point out it's definitely not the norm in gaming. GW's instance-heavy design helps a bunch, I think, similarly to how the browser model helps some other services. I don't think it's a prerequisite, though, and most back-end services are themselves somewhat instanced. That said, if I were building a game, "eliminate production downtime" probably wouldn't be enough to get me to do the extra work for dealing with version handoffs (in both directions). The extra agility probably would, but that depends on having things you actually want to deploy all the time.
|
# ? Apr 23, 2014 02:16 |
|
Subjunctive posted:I wish Arena published more about their hot-update stuff. I mean, you see it in a lot of non-game contexts (not much scheduled outage for FB or Pinterest or GitHub or imgur, though they do a ton of maintenance and code deployment), but as you point out it's definitely not the norm in gaming. It's conceptually not that difficult, but it requires being able to handle two versions doing things simultaneously. Given that it still happily boots players out and aborts in-progress world events and dungeon runs in the process, I'm not sure that it's terrifically better than the typical MMO downtimes, which have become very short and infrequent on top of being done really late. I wouldn't put it in the same league as websites that can insta-upgrade because they don't have to worry about maintaining highly-volatile internal state or keeping connections open for long periods of time.
|
# ? Apr 23, 2014 05:41 |
|
OneEightHundred posted:They did a presentation on it at some point and it's actually pretty simple, but the big important thing to realize is that "no downtime" does not mean free of maintenance interruption. Any instances running the old version start a shutdown timer and everyone's booted off at the end of that. It just means that when they start the countdown to boot people off of the server, there's already a server running the next version. But I'm not sure that's even really necessary for a seamless upgrade - if you've already got the Guild Wars way going, couldn't you start up some new servers, then shuffle people over to them whenever they go through any kind of zone-transition? You might still have to kick people off if they're still active and haven't changed zones for 12 hours or something, but for almost everyone you could make the server-side upgrade happen wherever there's already a seam, and as such the upgrade would appear seamless.
|
# ? Apr 23, 2014 05:57 |
|
roomforthetuna posted:but for almost everyone you could make the server-side upgrade happen wherever there's already a seam, and as such the upgrade would appear seamless. Web sites largely get away with this because databases and caching mechanisms are all designed to make it easy to compartmentalize state and easily migrate it, but real-time game states have a much higher rate of change and are much harder to suspend and resume.
|
# ? Apr 23, 2014 07:23 |
|
OneEightHundred posted:There are several challenges with that, the big one is that seams in huge MMOs are generally not desirable in the first place. There are some interesting possibilities like coalescing in WoW, where people can be transferred to another instance while still playing, but that doesn't work terrifically well if the design calls for big instance-wide events, for example, that make it obvious that the transfer has occurred. It also creates issues where players need help with a challenge in an unupgraded instance, but other players can't join them. But even for other designs, if you're letting players teleport into other instances to help out then it doesn't seem like it would be *that* hard to transfer the entire instance state from an outdated server to a new one while the player is distracted by a menu or something. Except for if the update actually makes some old state information totally incompatible.
|
# ? Apr 23, 2014 14:15 |
It seems like an investment vs reward thing. Weekly maintenance is the norm and honestly, it's an online video game, three hours of downtime every Tuesday morning isn't a deal breaker for anyone's customers in that industry.
|
|
# ? Apr 23, 2014 22:21 |
|
Unreal 4.1 update seems to have dropped today. They also implemented a buildbot that syncs their live code changes from their internal perforce repo out to GitHub master. So nice seeing live changes with commit messages. If I was working on a UE4 project I'd still stick to the point releases but having the ability to cherry pick out fixes will be really nice.
|
# ? Apr 24, 2014 01:47 |
|
roomforthetuna posted:But even for other designs, if you're letting players teleport into other instances to help out then it doesn't seem like it would be *that* hard to transfer the entire instance state from an outdated server to a new one while the player is distracted by a menu or something. Except for if the update actually makes some old state information totally incompatible. Technically, you could do things like migrate the instance, but doing something like that is risky because the entire point of a patch is that you want the old outdated way that the game behaved to go away, so then you have to decide what you're going to migrate. My point isn't that it isn't doable, just that it carries significant design and technical cost, and that "zero downtime" should not be confused with "zero disruption." Saying it works in "a Guild Wars shaped thing" is missing the point, which is that making "a Guild Wars shaped thing" is a design constraint. It's actually a major one because both GW1 and GW2 deliberately made a lot of design tradeoffs to accomplish their technical goals, i.e. think about what GW1 did to avoid having in-game GM petitioning.
|
# ? Apr 24, 2014 03:27 |
|
OneEightHundred posted:My point isn't that it isn't doable, just that it carries significant design and technical cost, and that "zero downtime" should not be confused with "zero disruption." Zero disruption is pretty much easy to achieve in a world with seams - you can simply let people stay in outdated clients and outdated instances until they reload and/or hit seams, and then transition them to a new one. Going disruptionless in a persistent seamless world is much harder, but I don't know of any game that's really pulled off that degree of seamless. Nobody even really wants to play that seamlessly, games get teleport-equivalents introduced to get around the tedium of seamless travel.
|
# ? Apr 24, 2014 06:45 |
|
With instances and server-only patches that don't break compatibility, transparent upgrades are simple. Ensuring that you don't break compatibility, both for the client protocol and for server data storage, is the tricky part.
|
# ? Apr 24, 2014 07:11 |
|
They're only "simple" to the extent that everything is instanced. Most games don't have seams around chat, banking/storage, auction houses, the mail system, etc. Those things don't make it impossible, but they mean that you need new and old systems to collaborate pretty well for what could be a relatively lengthy time.
|
# ? Apr 24, 2014 07:21 |
|
Subjunctive posted:They're only "simple" to the extent that everything is instanced. Most games don't have seams around chat, banking/storage, auction houses, the mail system, etc. Those things don't make it impossible, but they mean that you need new and old systems to collaborate pretty well for what could be a relatively lengthy time.
|
# ? Apr 24, 2014 14:47 |
|
roomforthetuna posted:Any remotely large-scale game (anything with multiple servers) has those things separated out anyway, because that stuff is always communicating between instances and between servers. Yes, but load-spreading for federated things is harder to manage when you have different versions in play. Dungeon instances don't have to talk to each other, so if they're each playing by slightly different rules then things are probably still fine. If your guild bank has multiple personalities because there's more than one version sharing the load, it gets harder to maintain your invariants (and really hard to do effective testing of these cross-fading scenarios before deploying). I'm not saying it's impossible by any means, and I've always enjoyed working on distributed systems, but I don't think the earlier characterization of "easy, just use the existing seams" is reasonable.
|
# ? Apr 24, 2014 15:21 |
|
For you Unity users out there, this may be old news, but I just ran across this tool that allows you to seamlessly use VS Express with Unity. I wish I had found it a couple of weeks ago when I started learning how to use Unity. MonoDevelop is actually a pretty nice IDE, but it has a few quirks that really throw me off, such as an autocomplete that sometimes won't let me escape from it, requiring me to accept the autocomplete, delete back and retype what I wanted. I hadn't tried it without this tool, but apparently if you hook up VS Pro as the external editor in Unity, every script you open will open a new VS instance, and you can't open scripts from within Unity at all if you use Express. So far the tool works perfectly for me, allowing me to not only open scripts from within Unity (in the same instance of VS Express no less), but if you click an error in the console, it'll jump to the correct line in the script. As per the Readme.md on the Github page, you need to compile the tool using the given Solution, and then link the executable in Unity as the external editor, with the proper arguments in the arguments line. The arguments I used are "$(File)" $(Line) 2013, with the 2013 being my express version. Apparently it defaults to 2010 if you omit that. The King of Swag fucked around with this message at 15:36 on Apr 24, 2014 |
# ? Apr 24, 2014 15:34 |
|
Epic just announced that any registered Xbox One or PS4 indie developers can use UE4 at no extra cost, under the same terms as the desktop and mobile platforms and will receive full source to the console platforms. Before this announcement you had to negotiate a separate deal to get on the consoles. https://www.unrealengine.com/blog/playstation-4-and-xbox-one-now-supported
|
# ? Apr 24, 2014 16:11 |
|
The King of Swag posted:For you Unity users out there, this may be old news, but I just ran across this tool that allows you to seamlessly use VS Express with Unity. I wish I had found it a couple of weeks ago when I started learning how to use Unity. MonoDevelop is actually a pretty nice IDE, but it has a few quirks that really throw me off, such as an autocomplete that sometimes won't let me escape from it, requiring me to accept the autocomplete, delete back and retype what I wanted. There also is http://unityvs.com/ they have a short trial (2 weeks) but it's $100 a year that lets you hook up to any Visual Studio and even lets you debug in visual studio.
|
# ? Apr 24, 2014 18:02 |
|
roomforthetuna posted:Oh, right, I totally agree. I'm kind of arguing that zero disruption is both achievable and more important than zero downtime. Nobody likes those "you have half an hour to finish what you're doing then you have to restart, gently caress you" messages, and being able to restart immediately is close to no improvement on that, so yeah, "zero downtime" is worthless garbage. The problem with zero disruption is the cognitive overhead on the engineer. For every code change they make they need to stop and think, "Is it possible for a message to arrive to this object from an object with an older version of the code? What will the effect be if that happens? How will QA validate that what I thought of in the first two questions is actually true?" And this has to happen for every change because you know the first time it doesn't you just broke something horribly. Where I'm at we really push the updates. We'll rev the server 2-3 times a day most days. But any time that there's a code change it's a hard stop. Most customers don't realize that it even happens because the network layer just sees the disconnect due to update, and reconnects without ever notifying the game layer that it happened. (Unless it's also a downloadable content change, then the game is notified of what files changed/were added/removed.) But early on we realized that was the only sane approach to go to or the speed of engineering and the cost of QA would spin out of control.
|
# ? Apr 24, 2014 18:05 |
|
Hughlander posted:The problem with zero disruption is the cognitive overhead on the engineer. Also all of this is ignoring the nice things you can only do if everything is down like reorganize a database, update database statistics, change a column type. Or even swap out massive parts of the game client. Zero disruptions is nearly impossible for the massive amount of changes and service a game like WOW provides. Minimal scheduled downtime is by far the best solution.
|
# ? Apr 24, 2014 18:10 |
|
Stick100 posted:Also all of this is ignoring the nice things you can only do if everything is down like reorganize a database, update database statistics, change a column type. From what I remember of GW1 tech talks their database is nothing but data blobs. They are probably doing something similar for GW2. I don't think they have a complex table setup.
|
# ? Apr 24, 2014 18:15 |
|
The King of Swag posted:For you Unity users out there, this may be old news, but I just ran across this tool that allows you to seamlessly use VS Express with Unity. I wish I had found it a couple of weeks ago when I started learning how to use Unity. MonoDevelop is actually a pretty nice IDE, but it has a few quirks that really throw me off, such as an autocomplete that sometimes won't let me escape from it, requiring me to accept the autocomplete, delete back and retype what I wanted. Does this support debugging in VS? That would be the major sticking point for me. There's a paid VS plugin to do this which supports debugging but I don't wanna pay for it!
|
# ? Apr 24, 2014 19:37 |
|
The pixel art thread has been getting pretty lively recently and it's had me thinking that it would be nice to fold a bit more freelance graphic work into my routine. If any of you coders need some quality art, feel free to get in touch. I charge less for indie projects than corporate work. Here's my TIGForums portfolio. And a few samples of my recent stuff: PM me for details.
|
# ? Apr 24, 2014 20:39 |
|
Apparently Game Programming Patterns is finished - I checked out the section on states and it's pretty interesting. A lot of fun CS theory constructs providing useful abstractions to code in. http://gameprogrammingpatterns.com/index.html
|
# ? Apr 24, 2014 22:33 |
|
Stick100 posted:There also is http://unityvs.com/ they have a short trial (2 weeks) but it's $100 a year that lets you hook up to any Visual Studio and even lets you debug in visual studio. Except Express, it's worth noting.
|
# ? Apr 25, 2014 07:43 |
|
Subjunctive posted:Yes, but load-spreading for federated things is harder to manage when you have different versions in play. Dungeon instances don't have to talk to each other, so if they're each playing by slightly different rules then things are probably still fine. If your guild bank has multiple personalities because there's more than one version sharing the load, it gets harder to maintain your invariants (and really hard to do effective testing of these cross-fading scenarios before deploying). I'm not saying it's impossible by any means, and I've always enjoyed working on distributed systems, but I don't think the earlier characterization of "easy, just use the existing seams" is reasonable. Gameplay is a very different beast. It's hard to just stop and resume it, interruptions in it are dramatically more annoying, there is an extremely high amount of persistent state change, it isn't practical to write all of that state to storage constantly, and it's difficult to migrate even if it is written out because compatibility breaks are so common, so there is basically no way to do it aside from gradually booting people out, and that still has problems even with seams. It's the same reason that hot-swapping code is massively more challenging than hot-swapping assets. OneEightHundred fucked around with this message at 08:10 on Apr 25, 2014 |
# ? Apr 25, 2014 08:06 |
|
Anyone doing Ludum Dare? No? Ok
|
# ? Apr 26, 2014 09:28 |
|
I am doing Ludum Dare! My idea is not very interesting and I have no art skills, but hopefully I can put something simple together.
|
# ? Apr 26, 2014 09:59 |
|
it is posted:Anyone doing Ludum Dare? I tried, but with no real experience in doing things in stuff like js or 2D gamedev toolkits, I just grew frustrated and gave up. It is demotivating when you're doing this and you're making virtually no progress - especially since you know that using (sane) alternatives will take a lot more time than the hackish things made in js or similar. Besides, I also have some other things to do this weekend which is going to get in the way. Angryhead posted:I am doing Ludum Dare! If you (or anyone) else needs music or perhaps some code-effort in the jam, just send me a PM or quote me. TZer0 fucked around with this message at 19:19 on Apr 26, 2014 |
# ? Apr 26, 2014 19:15 |
|
it is posted:Anyone doing Ludum Dare? I am. My game's called Bathyscaphe11 (at least for now) and here's what I've got after the first day: I almost got to my goal of having a "shippable" quality game during day 1. I'll just need to do a few things tomorrow morning to hit that milestone and then I can concentrate on content and polishing.
|
# ? Apr 26, 2014 20:21 |
|
j.peeba posted:I am. My game's called Bathyscaphe11 (at least for now) and here's what I've got after the first day: Are you working alone? If so, would you be interested in working on your game in the jam as well? (I could contribute some stuff) Also, nice gif! TZer0 fucked around with this message at 20:27 on Apr 26, 2014 |
# ? Apr 26, 2014 20:24 |
|
TZer0 posted:Are you working alone?
|
# ? Apr 26, 2014 20:45 |
|
I can never see that kind of game as casting shadows where you can't see. I always just see big black 3d pillars hovering above the map (that's probably what it actually is, anyways). Anyways, it looks great.
|
# ? Apr 26, 2014 20:49 |
|
That's some nice stuff j.peeba---very Teleglitch-looking which is definitely a good thing.
|
# ? Apr 27, 2014 00:16 |
|
I'm doing the ludum dare compo as well, with my entry being Deep: Beneath the Surface. It's pretty basic at the moment and could use some more polish but I may not have much time before submission as Australian time zones make things a bit awkward and I've got a sick kid to help take care of. Would definitely appreciate any feedback though!
|
# ? Apr 27, 2014 08:28 |
|
Dr. Stab posted:I can never see that kind of game as casting shadows where you can't see. I always just see big black 3d pillars hovering above the map (that's probably what it actually is, anyways). Anyways, it looks great. ... drat it. Now that is all I can see too.
|
# ? Apr 27, 2014 14:24 |
|
Dr. Stab posted:I can never see that kind of game as casting shadows where you can't see. I always just see big black 3d pillars hovering above the map (that's probably what it actually is, anyways). Anyways, it looks great. This makes me wonder how weird it would be to do a binocular render of a 2D game, such that your left eye can see slightly more around the left side of obstacles and your right eye can see slightly more around the right side of obstacles. It absolutely wouldn't make sense, but how would it feel?
|
# ? Apr 27, 2014 15:04 |
|
|
# ? Jun 15, 2024 22:42 |
|
Alright, finished the game! Of course there's still plenty of things I could've done and wanted to do but I'm getting too tired to continue. Check it out: http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=5503
|
# ? Apr 27, 2014 22:47 |