|
Your Computer posted:as far as i know face normals are not really a "thing" in the gpu pipeline, nor are faces with more than 3 vertices. it's all triangles over in gpu land and the only normals you have access to are the vertex normals. The link didn't embed, but yes, I really like it. You're right, of course, about the GPU pipeline thing. Old games like that used software rendering and they did whatever they wanted (or more accurately, they did whatever they had to to make it work, given the limited resources). Even having per-vertex normals and realtime point lights to work with would have been an unimaginable luxury. As for how I think they actually did it - I think they just had a fixed directional "light" and calculated the angle of that light vs each triangle's normal, and then flood-filled a flat color multiplied by whatever that is. That said, your goal isn't to perfectly recreate an effect that an old game actually had, so do whatever you think evokes the feeling of those old games the best. Edit: If you really wanted to do something like calculate the face center and normal of a 2D primitive on a modern GPU, you could do it with a geometry shader. KillHour fucked around with this message at 00:25 on Mar 22, 2024 |
# ? Mar 22, 2024 00:07 |
|
|
# ? Apr 27, 2024 20:34 |
|
Jabor posted:If you use flat interpolation for your normals, then only the normals attached to one of your vertices actually applies to that specific face, so you don't need to do very much vertex splitting for option 1.
|
# ? Mar 22, 2024 07:04 |
|
Chev posted:If you use flat interpolation, then two faces that don't have the same normal cannot start from the same vertex, which is a trickier ordering problem than it first seems, and unsolvable without splitting depending on topology. The number of verts you need to split is typically very small, and while it might be tricky to work out the perfect ordering it's pretty easy to come up with a "good enough" one. Even in a literal worst-case scenario where every triangle gets its own provoking vertex, you're still reusing 2/3 of them, which is miles better than your proposal to split every single vertex.
|
# ? Mar 22, 2024 07:16 |
|
KillHour posted:Edit: If you really wanted to do something like calculate the face center and normal of a 2D primitive on a modern GPU, you could do it with a geometry shader. not in godot, unfortunately (no geometry shader support) e: to clarify a few things - yes in most of these games (like aitd) there was no lighting at all, or what you could call "pre-baked" lighting which is just to say they colored the model in as if it was lit from a specific angle obviously this is not a viable option in a fully 3d game built around the ability to grab and move things around the 3d scene which is why this shader specifically tries to make the lighting step of the shader pipeline approximate this kind of directional lighting but from omni/3d lights. this is the difficult step especially in godot which had no geometry shaders or similar capabilities. i do care about authenticity and the idea behind this was to make something like looks like the old pre-baked lighting while also working in a realtime 3d environment where the objects are moved around by the player and i am very happy with the result Your Computer fucked around with this message at 12:55 on Mar 22, 2024 |
# ? Mar 22, 2024 10:30 |
|
It's just ironic that getting the specific "low fidelity" look you're going for requires using more advanced shading tech specifically to make it less realistic looking. That's something the old games would have never done because they were trying to hide the polygons as much as possible, given the technical limitations. The only reason I'm mentioning it is because it's interesting (to me) that making a game with retro styling is completely different to making a game for retro hardware. Edit: To be clear, I'm not saying you should change it. I'm noting that having the triangle lighting calculated at the face if each triangle instead of in the center of the mesh is an anachronism. But if it gets you closer to how you imagine your game should look, you should do it. Nothing in games is truly "authentic," whatever that means. Everything only needs to follow the rule of cool. Double edit: I can't shake the feeling that this still comes off like I'm trying to argue. So instead I'm just going to say it looks really cool and the technique you came up with to get the effect you wanted is really clever, so you should lean into how unique it is. KillHour fucked around with this message at 15:22 on Mar 22, 2024 |
# ? Mar 22, 2024 14:57 |
|
Sonniss released their annual bundle of free game sound effects for GDC 2024 (with past years' bundles still available).
|
# ? Mar 22, 2024 22:26 |
|
Decided to take down the SENTRY demo before release because it was no longer representative of what people will be playing at early access ON MONDAY! However, I thought I'd capture a play through so it wasn't completely lost to time https://www.youtube.com/watch?v=Tsc3srAWNrs Trailer should be done in time for early access on Monday... quite a tight deadline on this one
|
# ? Mar 24, 2024 02:34 |
|
Aneurexorcyst posted:Decided to take down the SENTRY demo before release because it was no longer representative of what people will be playing at early access ON MONDAY! that gameplay looks crunchy and satisfying
|
# ? Mar 24, 2024 16:28 |
|
Aneurexorcyst posted:Decided to take down the SENTRY demo before release because it was no longer representative of what people will be playing at early access ON MONDAY! Sci-fi Orcs Must Die vibes. Really dig it, this is the style of game I'd wanna play. I played a lot of Sanctum as well, I wish there were more tower defense FPS games.
|
# ? Mar 24, 2024 17:29 |
|
Aneurexorcyst posted:Decided to take down the SENTRY demo before release because it was no longer representative of what people will be playing at early access ON MONDAY! I'm going to take a look through this and give you a fuckton of timestamped instances where I come across epilepsy related issues for you guys to work on later on. I'll PM it to you if that is okay, but just from the starting menu, I'd love to eventually see a separate button for disability related feedback. you can dump all that in the same pile as the bug reports and regular feedback, just make it look like the "I can't play this with no left hand because X key combo is out of reach of my special 1 handed rig" and "I can't focus on the item selection because the stripe travelling down in the background is loving with my head" gets separate attention from "why does my gun go clickclick when the counter reaches zero?". SerthVarnee fucked around with this message at 08:39 on Mar 25, 2024 |
# ? Mar 25, 2024 08:33 |
Aneurexorcyst posted:Decided to take down the SENTRY demo before release because it was no longer representative of what people will be playing at early access ON MONDAY! love the aesthetic of this and I hope you include an "extreme" difficulty. I skipped to "Advanced" and even then it's just 1 or 2 enemies at a time in a single corridor, and most of them were taken care of by the traps still.
|
|
# ? Mar 25, 2024 14:31 |
|
SerthVarnee posted:I'm going to take a look through this and give you a fuckton of timestamped instances where I come across epilepsy related issues for you guys to work on later on. I'll PM it to you if that is okay, but just from the starting menu, I'd love to eventually see a separate button for disability related feedback. you can dump all that in the same pile as the bug reports and regular feedback, just make it look like the "I can't play this with no left hand because X key combo is out of reach of my special 1 handed rig" and "I can't focus on the item selection because the stripe travelling down in the background is loving with my head" gets separate attention from "why does my gun go clickclick when the counter reaches zero?". across all 40 minutes? wow thats some dedication. aneur should pay you out a stipend and gym mat IMO
|
# ? Mar 25, 2024 14:45 |
|
Aneurexorcyst posted:Decided to take down the SENTRY demo before release
|
# ? Mar 25, 2024 21:17 |
|
PM sent. I got 22:13 in before my eyes were watering up with eye strain. Looks great and super fun in general though.
|
# ? Mar 25, 2024 21:41 |
|
So I finished the launch trailer: https://www.youtube.com/watch?v=Ia85mY3D4SA As it is a launch trailer, that naturally that means the game is also out - so please enjoy! https://store.steampowered.com/app/1252680/SENTRY/ SerthVarnee posted:I'm going to take a look through this and give you a fuckton of timestamped instances where I come across epilepsy related issues for you guys to work on later on. I'll PM it to you Thanks for the feedback, I'll add it to the list! DaveKap posted:Excited to stream this tonight! Yaaaaaas.
|
# ? Mar 26, 2024 04:40 |
|
Aneurexorcyst posted:So I finished the launch trailer: https://www.youtube.com/watch?v=Ia85mY3D4SA This looks really good. Who did the music? I'm getting a strong dance with the dead vibe and I love it.
|
# ? Mar 26, 2024 04:54 |
|
Aneurexorcyst posted:So I finished the launch trailer: https://www.youtube.com/watch?v=Ia85mY3D4SA Okay the new trailer is making me even more hyped about playing the game. But err....it also made me instinctively reach out for my morning epilepsy meds... I'll be back later today with some feedback.
|
# ? Mar 26, 2024 08:21 |
|
Yeah, that's a cool trailer! Makes me hyped.
|
# ? Mar 26, 2024 09:09 |
|
Aneurexorcyst posted:So I finished the launch trailer: https://www.youtube.com/watch?v=Ia85mY3D4SA For some reason, the stylized design here reminded me that Thunder Helix recently went into Early Access, need to check that out too...
|
# ? Mar 26, 2024 09:28 |
|
Aneurexorcyst posted:Yaaaaaas.
|
# ? Mar 26, 2024 09:49 |
|
I'm not much of a video-watcher but those were some good-rear end sound effects. Nice and chunky. Thicc if I wanted to extend my accidental analogy. Also the stereo pan on the sound effect after it got quiet was a good touch too. Best of luck!
|
# ? Mar 26, 2024 15:24 |
|
Aneurexorcyst posted:So I finished the launch trailer: https://www.youtube.com/watch?v=Ia85mY3D4SA New launch trailer feedback sent through PM.
|
# ? Mar 26, 2024 16:16 |
|
I don’t think I’ve seen anyone mention it ITT, Picotron (the sort of “sequel” to PICO-8) is out in alpha and available at a discount until the end of the month: https://www.lexaloffle.com/picotron.php It’s basically the Amiga to PICO-8’s Apple II, and even though it’s a little rough around the edges so far I can see a ton of potential here.
|
# ? Mar 26, 2024 19:16 |
|
With this and the pips on the bottom part showing your item capacity done, the inventory rework is complete! Next task is animating some player knockback stuff. A TON of QoL and detail work went into this last couple weeks too. This milestone marks the beginning of the race to add content. New enemies, items, weapon infusions, tilesets, everything. As much STUFF as I can until the end of the year, then I wrap it up into a DEMO!! Crazy I've gotten this far. What a ride, and it's only starting. https://x.com/Grabbus_Game/status/1775168477164126519?s=20
|
# ? Apr 2, 2024 21:22 |
|
I'm looking into adding moddable missions to Waves of Steel. Problem: the mission editor I made so that I could author missions is just a Unity custom editor window. It uses my Editor code, which in turn depends on my game code. I thought I could just grab the DLL of my game from an install, and pop that into an empty Unity project, but I get a bunch of compiler errors that appear to be due to DLLs failing to find their dependencies, I think. For example:code:
|
# ? Apr 5, 2024 01:33 |
|
TooMuchAbstraction posted:I'm looking into adding moddable missions to Waves of Steel. Problem: the mission editor I made so that I could author missions is just a Unity custom editor window. It uses my Editor code, which in turn depends on my game code. I thought I could just grab the DLL of my game from an install, and pop that into an empty Unity project, but I get a bunch of compiler errors that appear to be due to DLLs failing to find their dependencies, I think. For example: write it new. json for data. provided plugin api for code if wanted/warranted. load assets from relative path from user mod directory.
|
# ? Apr 5, 2024 01:38 |
|
and/or ship some interfaces and some code to build an asset bundle. allow loading of side loaded bundles, including user code that fits your plugin interface
|
# ? Apr 5, 2024 01:40 |
|
I am looking for solutions that do not involve completely reinventing everything, thank you. Also, to be clear: the mission data is already stored in JSON. The custom editor window I made handles saving/loading, spawning gameobjects, and setting up various mission data like objectives, weather, and music. "Saving" is "inspecting the scene and serializing relevant stuff to JSON", "loading" is "reading JSON and spawning gameobjects". The user can fiddle with gameobjects e.g. by changing positions/rotations/scales, and they can manually set up some stuff that the custom editor window doesn't know how to do, like creating trigger volumes or laying minefields (the editor knows how to save/load these things, just not how to spawn them). The problem is that the editor window depends on my main game code in many, many areas. And the main game code depends on a bunch of other stuff. EDIT: for a sense of complexity, this is what the editor looks like when I'm working on a mission: Lower-right corner is the editor window. Everything in the scene hierarchy that's under "MissionEditor Root" is part of the mission. I can edit components like the "ShipStandin" to change mission data (e.g. the selected ship is flagged as the player through that component). TooMuchAbstraction fucked around with this message at 02:10 on Apr 5, 2024 |
# ? Apr 5, 2024 02:07 |
|
Could you create a "stub" of your game code that has all the function signatures and types but no actual implementations (and thus no dependencies)? Or does the editor need to actually call into your game code and see the results sometimes?
|
# ? Apr 5, 2024 02:15 |
|
Jabor posted:Could you create a "stub" of your game code that has all the function signatures and types but no actual implementations (and thus no dependencies)? Or does the editor need to actually call into your game code and see the results sometimes? Ugh...maybe? But it'd be barely better than "rearchitect the entire thing", now we're talking "refactor the entire thing and make a bunch of stubs". The core game loop isn't actually running, of course, but there's a lot of game components which are compatible with the editor, by having widgets for visualization, editable parameters, and the ability to be discovered during the load/save process. Every one of those would need to be converted into an editor-only stub, which would need to be made strictly compatible with the actual game. I really, really feel like the easiest solution here would be to extract the DLLs from the actual game, and have the editor be able to depend on those. I just haven't figured out how to get that to work, and was hoping y'all might have some advice. (though it occurs to me that stuff like widgets wouldn't be in the shipped DLLs anyway...poo poo)
|
# ? Apr 5, 2024 11:43 |
|
TooMuchAbstraction posted:I really, really feel like the easiest solution here would be to extract the DLLs from the actual game, and have the editor be able to depend on those. I just haven't figured out how to get that to work, and was hoping y'all might have some advice. I've been through something very like this a dozen times so far. It's 100% not anywhere near the easiest solution, it's just not obvious that there's a metric ton of work (or that the approach plain won't work, depending on what you're trying to do). You'd basically end up open-sourcing part of your game...while stubbing out all the other parts that they shouldn't have and also either including assets or fake assets. That process of trying to figure out which parts are necessary and which not, and make usable stubs, and maintain two separate branches for the code at that point, and also make sure you don't accidentally put something important in the wrong spot, is an order of magnitude more work than: You know the resulting format and what it means. You already have a pattern to follow in terms of the existing window/logic. Make a new project (could still be Unity-based if you wanted) that does not have any reference to your actual game project. Copy the resulting format classes in. Remake the UI of the window as it already exists (copy it or mimic it). Now just go through each function and make it do the right thing without invoking your code. That bolded part particularly will feel like a huge amount of work before you start, but I guarantee it's at least an order of magnitude less work than trying to do weird Unity Editor things. And it's entirely likely that the actual amount of work is tiny overall because you're not reimplementing your whole game (or trying to stub your whole game). e: That all said, there are times when the Unity Editor approach is still the best solution because of specific things. In those cases: don't try and use your built DLL, but build a new DLL specifically for this (and stub out the bits that shouldn't be distributed); it can be the same DLL but built with a different set of defines if needed. Alternatively, you could use something that isn't Unity to build that DLL and therefore it'll allow you to maintain things that use UnityEditor.dll inside the built DLL. But then you run into Unity TOS/licensing nightmares, so don't distribute it to players. Red Mike fucked around with this message at 14:36 on Apr 5, 2024 |
# ? Apr 5, 2024 14:32 |
|
I'm seconding that because it's what I decided to do when I restarted my project from scratch (again), so I could completely decouple the UI from the core logic. The UI sends JSON to the renderer and that's it as far as coupling goes. It's a lot of work, but the resulting code is about 100000x less load-bearing and lovely.
|
# ? Apr 5, 2024 14:39 |
|
Also if nothing else, it's way more fulfilling to develop. It feels like it would be grunt work, but you're basically taking two well polished bits of interface (a battle-hardened editor window, and your tried-by-fire map format) and replacing the duct-tape-and-gum nonsense in the middle to make a clean polished set of pipes between them. It's probably the most satisfying bit of work I can think of short of early prototyping when you're experimenting with very basic game mechanic changes.
|
# ? Apr 5, 2024 14:42 |
|
I wouldn't go that far. People like different things. I'm most fulfilled when I'm creating a Rube Goldberg monstrosity that shouldn't work but does. I hate turning proof of concept code into something polished and shippable because I have ADD and want to move onto the next thing. But it has to be done.
|
# ? Apr 5, 2024 14:45 |
|
Maybe, but I personally really hope no-one finds get-Unity-Editor-to-work-as-player-tool build process/code hacking to be fulfilling. I guess some people probably do based on the number of times I've joined a project only to find half-broken things that are pretty much that.
|
# ? Apr 5, 2024 14:51 |
|
It's fulfilling in the sense that you now have a tool that you can use to do the thing you want, and you're not that bothered that it breaks randomly or needs to be clicked on in a certain specific order because fixing those things is less fun than using it.
|
# ? Apr 5, 2024 14:54 |
|
I'm tired/distracted posting so I may have lost the plot, but you could use something like https://github.com/lucasg/Dependencies to find all of the DLLs you're missing; I can't remember if it helps suss out which ones are pulled in by which function calls or not. One interesting thing about Windows (at least as of a year ago; this has security implications that have gone surprisingly, to my knowledge, unexploited) is in the way it loads DLLs. I forget exactly what the load order is but most programs load most DLLs by name, not absolute path, and the way Windows provides those DLLs is by checking first in the current working directory (or maybe the EXE's directory), second in some user defined folder, third in some system folder like C:\Windows\System32, etc. The point is it checks in the folder where the DLL is first. It's (relatively) straightforward to write a DLL that proxies only specific functions by existing earlier on the search path and having the same DLL name / function signature such that that version runs first. It would be a little more complicated to rewrite one which dynamically intercepted all functions for a DLL of that name and did whatever with 'em.
|
# ? Apr 5, 2024 15:40 |
|
i'm still working on it!!! https://i.imgur.com/AXU4IaY.mp4 (has sound)
|
# ? Apr 5, 2024 21:14 |
|
Stealing gemstones out of a statue's eyes coming eventually, Y/N?
|
# ? Apr 6, 2024 06:15 |
|
|
# ? Apr 27, 2024 20:34 |
|
A new hand touches the beacon!
|
# ? Apr 6, 2024 07:07 |