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
Less Fat Luke
May 23, 2003

Exciting Lemon
There is no recipe for pain larger than release Linux builds without being able to test them :(

edit: sniiiiiiipe

Adbot
ADBOT LOVES YOU

Ranzear
Jul 25, 2013

https://issuetracker.unity3d.com/issues/linux-inputsystems-mouse-delta-values-do-not-change-when-the-cursor-lockstate-is-set-to-locked

I forget what version you're on, but if it's 20 LTS a fix might not be backported even as recently as last July.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Ranzear posted:

https://issuetracker.unity3d.com/issues/linux-inputsystems-mouse-delta-values-do-not-change-when-the-cursor-lockstate-is-set-to-locked

I forget what version you're on, but if it's 20 LTS a fix might not be backported even as recently as last July.

I'm on 2019.3.4f1 :v: I'm scared of losing a bunch of work and/or introducing subtle bugs due to an engine upgrade. But yeah, I don't even have the InputSystem in my version, so that's probably not the cause.

(edit: to clarify, all my poo poo's multiply-backed-up, so I wouldn't really lose work, but still, engine upgrades have the potential to be a massive pain in the butt, and I haven't really seen compelling reasons to upgrade)

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
On a different topic entirely -- I have a custom skybox set up that just crossfades between two regular skyboxes. I use this to change time of day more or less smoothly during gameplay. Sure, it looks a little weird when the sun fades out from one location and fades in at another, but it works well enough.

However, it does have one issue that I'd like to fix if possible: the environment reflections are wrong. I'm talking here about the settings in the Lighting panel in Unity. I currently have the "Source" set to custom, and then provide the starting skybox texture as the custom cubemap, and that looks good:



Let's say, however, that I want to fade through sunset to nighttime. I can do that smoothly with the actual skybox, because of my custom skybox shader. But I can't do that with the reflection mapping texture, because that's just a texture as far as I can tell. I end up with a nighttime sky that's still using the daytime reflections:



This looks okay, but it's not right, and some of the other transitions look worse. It's supposed to look like this:



I could, of course, replace the reflection cubemap at any time using a script. But suddenly going from daytime reflections to sunset reflections, say, would create a jarring and abrupt transition: one frame things look one way, the next frame they look dramatically different. Ideally I'd have a smooth transition for the reflections, just like I do for the skybox itself.

Note that if I set the environment reflections source to "Skybox" instead of "Custom", then none of this works properly. I strongly suspect that when you set the source to "Skybox", all Unity does is try to pull the skybox texture from the provided material, and use that as its cubemap. It certainly doesn't appear to be sampling my custom skybox.

Does anyone know if there's a reasonable way to replace Unity's texture sampling for reflections with one that routes through a shader? If that were possible, I could do the same crossfading trick. Any other suggestions would also be welcome. I say this with the caveat that I have very little understanding of how all this stuff works; I just know that there's a cubemap texture that gets used for reflections, which changes how materials look somehow, and that it looks wrong right now.

uncle blog
Nov 18, 2012

Are there any good online courses to take to learn basics / intermediate game dev? I already know coding (web/iOS) but would like to get some real knowledge of game dev. A mix of both 2d and 3d, using cheap/accessible tools. Preferably something with live sessions/lectures. All prices interesting.

Nolgthorn
Jan 30, 2001

The pendulum of the mind alternates between sense and nonsense

uncle blog posted:

Are there any good online courses to take to learn basics / intermediate game dev? I already know coding (web/iOS) but would like to get some real knowledge of game dev. A mix of both 2d and 3d, using cheap/accessible tools. Preferably something with live sessions/lectures. All prices interesting.

It feels like such a broad topic to me. While I was learning I found myself looking up beginners tutorials on a wide range of different and separate topics. For example, if I needed c++, blender, graphic design, audio

HaB
Jan 5, 2001

What are the odds?

uncle blog posted:

Are there any good online courses to take to learn basics / intermediate game dev? I already know coding (web/iOS) but would like to get some real knowledge of game dev. A mix of both 2d and 3d, using cheap/accessible tools. Preferably something with live sessions/lectures. All prices interesting.

Kind of depends on your end-goal. Both Unity and Unreal are free* to use, and both are used by AAA titles now. Can YouTube up a Basics video that will explain the interface, and where to find things, then your best bet is find a video series of someone making a game you're interested in and go from there.

Since you are in a similar situation to me, I will answer a BIG question in advance for you, which you will have when you start watching videos for either of those engines: "yes yes - but where do I write the CODE?" and the answer sadly is: modern game dev (at least on either of those engines) doesn't really involve that much typing in of code. In Unreal, in fact, you can get away with basically never doing it at all with their Blueprint system. That being said - after I got used to blueprints, it became mentally similar to writing code anyway.

So again - it depends on your end-goal. There are a lot of "Build X game in javascript from scratch!" which you could follow along with - which would give you a better idea of the differences between app/web dev and game dev. There are other game engines that are more just a set of libs, and you write your game code built upon them.

So yeah - as Nolgthorn pointed out - that's a seriously broad question. With refinement we can assist better.



* I forget the exact terms, but they are basically free until your game makes X amount of money, with X being WAY more than you will ever come close to making as a dabbler.

Mr Shiny Pants
Nov 12, 2012

TooMuchAbstraction posted:

On a different topic entirely -- I have a custom skybox set up that just crossfades between two regular skyboxes. I use this to change time of day more or less smoothly during gameplay. Sure, it looks a little weird when the sun fades out from one location and fades in at another, but it works well enough.

However, it does have one issue that I'd like to fix if possible: the environment reflections are wrong. I'm talking here about the settings in the Lighting panel in Unity. I currently have the "Source" set to custom, and then provide the starting skybox texture as the custom cubemap, and that looks good:



Let's say, however, that I want to fade through sunset to nighttime. I can do that smoothly with the actual skybox, because of my custom skybox shader. But I can't do that with the reflection mapping texture, because that's just a texture as far as I can tell. I end up with a nighttime sky that's still using the daytime reflections:



This looks okay, but it's not right, and some of the other transitions look worse. It's supposed to look like this:



I could, of course, replace the reflection cubemap at any time using a script. But suddenly going from daytime reflections to sunset reflections, say, would create a jarring and abrupt transition: one frame things look one way, the next frame they look dramatically different. Ideally I'd have a smooth transition for the reflections, just like I do for the skybox itself.

Note that if I set the environment reflections source to "Skybox" instead of "Custom", then none of this works properly. I strongly suspect that when you set the source to "Skybox", all Unity does is try to pull the skybox texture from the provided material, and use that as its cubemap. It certainly doesn't appear to be sampling my custom skybox.

Does anyone know if there's a reasonable way to replace Unity's texture sampling for reflections with one that routes through a shader? If that were possible, I could do the same crossfading trick. Any other suggestions would also be welcome. I say this with the caveat that I have very little understanding of how all this stuff works; I just know that there's a cubemap texture that gets used for reflections, which changes how materials look somehow, and that it looks wrong right now.

Maybe I am dumb, but which reflections? On the water or the ships? Do you use reflection probes?

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Mr Shiny Pants posted:

Maybe I am dumb, but which reflections? On the water or the ships? Do you use reflection probes?

Well, now don't I feel foolish. Of course, reflection probes are how you recalculate this stuff at runtime!

And yeah, the reflections are on the water. Most of my materials don't support reflections, but the water's a surface shader, which means Unity automatically provides reflection support. I have a few other Unity standard shader materials scattered around.

Anyway, I rigged up a low-rez reflection probe that re-renders as the weather changes. Hopefully it doesn't hurt performance much. I set it up on per-face time slicing; it looks like it's taking 8 frames to generate a complete cubemap, which is plenty fast enough for my purposes. And the resolution's only 128, so I can't imagine it's that expensive.

Thanks for the poke in the right direction!

Mr Shiny Pants
Nov 12, 2012

TooMuchAbstraction posted:

Well, now don't I feel foolish. Of course, reflection probes are how you recalculate this stuff at runtime!

And yeah, the reflections are on the water. Most of my materials don't support reflections, but the water's a surface shader, which means Unity automatically provides reflection support. I have a few other Unity standard shader materials scattered around.

Anyway, I rigged up a low-rez reflection probe that re-renders as the weather changes. Hopefully it doesn't hurt performance much. I set it up on per-face time slicing; it looks like it's taking 8 frames to generate a complete cubemap, which is plenty fast enough for my purposes. And the resolution's only 128, so I can't imagine it's that expensive.

Thanks for the poke in the right direction!

Np, glad you got it sorted.

KillHour
Oct 28, 2007


Here's a fun game - spot the error.



:bang:

Bongo Bill
Jan 17, 2012

The error message wrapped the [] in the type signature onto the next line. Might be easier to notice if the error message popup weren't obscuring the method signature. But the issue is you returned a single dictionary from a method promising to return an array of dictionaries.

KillHour
Oct 28, 2007


Bongo Bill posted:

The error message wrapped the [] in the type signature onto the next line. Might be easier to notice if the error message popup weren't obscuring the method signature. But the issue is you returned a single dictionary from a method promising to return an array of dictionaries.

That took me an embarrassingly long time to notice.

Phigs
Jan 23, 2019

That's a funny/weird example because for me, and I imagine anyone else who took the time to try and figure it out, it was incredibly easy to notice and I got it right away because I had to read the whole thing to know what was going on. It was only hard for you because your dumb human mind was like "yeah yeah I know this poo poo" and didn't bother to pay attention to the []. Like when you're editing your own writing and your mind just decides to helpfully add in the "the" you've left out of the sentence. :banjo:

more falafel please
Feb 26, 2005

forums poster

Phigs posted:

That's a funny/weird example because for me, and I imagine anyone else who took the time to try and figure it out, it was incredibly easy to notice and I got it right away because I had to read the whole thing to know what was going on. It was only hard for you because your dumb human mind was like "yeah yeah I know this poo poo" and didn't bother to pay attention to the []. Like when you're editing your own writing and your mind just decides to helpfully add in the "the" you've left out of the sentence. :banjo:

I'd make fun, but the number of times I've done that with "const" instead of "[]" numbers in the hundreds

KillHour
Oct 28, 2007


I had to run to a superbowl party but crossposting here now that I'm back:

KillHour posted:

Holy loving poo poo finishing something is HARD. Every time I thought I was close, something new and horrible came up. As someone who lives by the phrase "make your best estimate and triple it" at work, I have no idea why I thought that wouldn't apply to personal projects.


Anyways... here it is! It's definitely game jam quality, but you can play it! It might even be fun!

Brief description:

It's a symmetrical RTS / Tower defense hybrid. You have to both attack and defend with and against waves of expendable units. Buying a unit buys one copy for each wave, and upgrading a unit upgrades each new unit of that type, meaning your army will endlessly grow in power and gloriously crush your opponent! Assuming they don't crush you first.

To stop the obvious strategy of "build no units so the enemy can't accumulate any money" you are limited to buying one unit of each type per wave, and that unit won't finish "construction" until the next wave. It still might be a good strategy to limit your opponent's income, but wait too long and you won't be able to catch up!

Towers are very strong at the start but slowly become weaker as waves get bigger and more frequent, so hopefully this gives the game a nice curve from defensive play to offensive play. Units can attack each other, but don't have any way to upgrade their fire power, so armor and speed upgrades will ultimately win over, hopefully preventing stalemates.

I have no idea what I'm doing in regards to balancing! Please let me know if it's too easy or too hard. The AI cheats by getting extra money and by being able to buy units whenever it wants (because it's programmed to not cheese you out of income), but it's also really fuckin' stupid so hey.

Things that I want to improve short term:
- Performance can get slow in long games with lots of units all trying to murder each other. Please let me know if this happens to you and how intolerable it is!
- Better display scaling - when you play in 4K, the buttons in the side menu get tiny. Which is funny, because I develop on a 4K display and I still haven't figured out a good fix. Hopefully I will soon.
- There's not much variety in towers, units and upgrades. I have many cool ideas but I feel like the initial game has to be balanced first (and also I'm loving tired from all nighters)
- Unit graphics are not nearly as good as the awesome CC0 background graphics I found. I found some cool isometric guys but I only have them from the side so until I get better at pixel art, top down will have to do.
- Some way to set up the order and attack patterns of the wave would be cool but I'm still playing around with how that could work.
- Music needs more variety. Don't worry, I'll add a mute button soon.
- I need to think of a good name. Open to suggestions!
- Needs a tutorial or instructions for sure. For instance, it's not very obvious that you can click on all the blue buildings and that opens up a menu on the left.

I also want to eventually add multiplayer, but that will obviously take a good chunk of work.

With all that said, I hope you all enjoy it and I hope it doesn't break horribly :ohdear:

https://killhour.itch.io/rts-td?secret=V82MwmqKf8muAjuXBLmMbn2VJ8



Also since I happened to actually start development after the first (since I changed what I was going to do so many times) and because I used a bunch of stuff from open game art, I'm planning on polishing it up and submitting it to this game jam: https://itch.io/jam/opengameart-winter-game-jam-2022

Burnout? What's that.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I'm giving some thought to how I'd set up my game for translation into other languages, specifically Japanese. Right now, dialog pulls from "flow files" that look like this:

quote:

[ANIME/default remote side="right" newConvo] Weaver's not going to be happy with me... But I have to admit, this has been entertaining. I'll see you all again soon!
[PC/default] Not too soon, I hope.
[XO/default num="2" fadeSide="right"] He's not a sore loser, I'll give him that.
[MARINE/default remote side="right"] That guy seems fun.
[XO/default] You've got an odd definition of "fun."
[MARINE/default] Anyway, the canal's rigged to explode, Captain. We're ready to roll.
[PC/default] Thanks, Sidra. We're swinging around to grab you.

Now, the obvious thing to do would be to replace the actual dialog with string IDs, e.g. replace "Not too soon, I hope." with "mission_180_dialog_pc14" or something. Then the translators would be able to translate individual lines, but they wouldn't be able to rewrite the conversation as a whole.

Hypothetically, I could replace the entire conversation with a single string ID, but then I'd be relying on the translators to be able to write my dialog control scripts properly. Stuff like specifying, in the third line, that after it's completed, the first portrait on the right side disappears. Or even just picking the right portrait, and handling specific effects like the scanline effect for remote speakers. That all sounds very shaky to me, but it'd give the translators a lot more freedom to make conversations that flow correctly in their native language.

Is that at all worth contemplating?

Jabor
Jul 16, 2010

#1 Loser at SpaceChem
Not game dialog specifically, but our UI is translated into a variety of languages and if you just tell the translators what specific placeholders mean then they'll do a pretty good job of keeping them in the right place. I wouldn't expect them to learn, understand, and rewrite your dialog control scripts to make them do new things for a particular language though, especially if this is a one-off translation job rather than an ongoing contract - you'll probably get similar results regardless of which mechanism you go for.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Yeah, that makes sense. Might as well keep it simple then; thanks!

Any recommended utilities for scraping hardcoded strings out of C# code? Because I have a lot of 'em :shepface:

free Trapt CD
Aug 22, 2013

*~:coffeepal:~*
I've got plenty of java
and Chesterfield Kings

*~:h:~*

TooMuchAbstraction posted:

I'm giving some thought to how I'd set up my game for translation into other languages, specifically Japanese. Right now, dialog pulls from "flow files" that look like this:

Now, the obvious thing to do would be to replace the actual dialog with string IDs, e.g. replace "Not too soon, I hope." with "mission_180_dialog_pc14" or something. Then the translators would be able to translate individual lines, but they wouldn't be able to rewrite the conversation as a whole.

Hypothetically, I could replace the entire conversation with a single string ID, but then I'd be relying on the translators to be able to write my dialog control scripts properly. Stuff like specifying, in the third line, that after it's completed, the first portrait on the right side disappears. Or even just picking the right portrait, and handling specific effects like the scanline effect for remote speakers. That all sounds very shaky to me, but it'd give the translators a lot more freedom to make conversations that flow correctly in their native language.

Is that at all worth contemplating?

In my (limited and low-budget) experience, line-by-line editing is how it's been done, but with lines being presented in context. I think there's almost certainly a better way, but on projects I worked on it's all been spreadsheets; 'direction' instructions like fade, 'speaking from offscreen' etc. were included in the column adjacent to the actual line - helpful for context, and perhaps worth including a brief 'glossary' separate from the document with screenshots or videos as visual examples.

If you really want to go the extra mile, having a column with character IDs or names per-line lets lines be filtered to specific characters which can be helpful, especially if you do something crazy like I did and make a mega spreadsheet that automatically collates the scripts from every chapter together into one mega-script spreadsheet you can read top-to-bottom. (It was worth it, but also, from me: save yourself some effort here if you can.)

Given that your lines seem to be formatted in human-readable order as is, as long as that's preserved however you export them, I think that's more than enough for maintaining the flow especially if you add the 'stage directions'. You've already saved yourself some headaches there, particularly if you hope/plan to use the same documents for VO purposes later.

More than 'flow' per se, you may want to give some thought to character limits and text formatting, particularly if you plan to support languages that write right-to-left for example. If achieving 'natural' translation is the goal, knowing the character limits will be super helpful for your translators I think. (Also pertains to typewriter effects etc. that you may be using already.)

You're on the right track if you're asking in the first place! You're using Unity IIRC? I hesitate to suggest an Asset Store purchase, but have had good experiences with I2 Localization in the past, and it works well if you're already using Google Suite tools in some capacity. May simplify the process of importing/exporting text a little.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Thanks! For some added context: the only language I'm at all concerned about right now is Japanese, since my game has already established a reasonably strong following there. Other languages are in the "that'd be a nice problem to have" bucket. And frankly, Japanese is also in that bucket, but it's doing well enough that I at least want to know what my options are and how much work I'd be taking on to address it. Character limits and text formatting aren't an issue for dialog; my dialog boxes support at least 4 lines of text and I rarely use even 2 full lines, so there should be plenty of space for extra text if needed. It might be a bigger concern for stuff like UI or button prompts, though.

And yeah, my plan for the mission dialog is pretty much to write a script that will scrape the dialog, generate a key, and then insert all the dialog into a big spreadsheet along with the key and some auto-generated direction like "speaker: Quinn; mood: concerned; radio". I'll probably add extra direction as needed, as well as some basic character dossiers so the translators have an easier time keeping track of who's saying what and what attitudes to use.

I2 localization looks good, thanks for the tip! $45 for an asset is worth it if it saves me half a day of work, I figure, and that looks like it should easily be able to accomplish that much.

It sounds like the work would basically be:

- Write the aforementioned script to scrape my mission dialog
- Use I2 to handle text embedded in scenes
- Write some hellish regex to find hardcoded strings in C# code
- Figure out the necessary C# code to find and swap strings at runtime; use that for both previously-hardcoded strings and mission dialog
- Write some basic UI to handle swapping languages at runtime

Then the actual translation direction work. But the five bullet points above actually sound reasonably plausible, if incredibly tedious. :thunk:

KillHour
Oct 28, 2007


In the English version of the game, you should have a character who speaks in incredibly broken, poorly translated Japanese and then have them speak incredibly broken, poorly translated English in the Japanese version :v:

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

KillHour posted:

In the English version of the game, you should have a character who speaks in incredibly broken, poorly translated Japanese and then have them speak incredibly broken, poorly translated English in the Japanese version :v:

This sounds very racist to me, but what do I know.

leper khan
Dec 28, 2010
Honest to god thinks Half Life 2 is a bad game. But at least he likes Monster Hunter.

TooMuchAbstraction posted:

This sounds very racist to me, but what do I know.

I dunno, just throw a weeb in your game I guess?

eeenmachine
Feb 2, 2004

BUY MORE CRABS
We used I2 Localization in LEGO Tower and it worked pretty well.

Beefeater1980
Sep 12, 2008

My God, it's full of Horatios!






Does anyone else use Godot? I went with it over Unity when I had enough of a handle on fundamental CS to get started making games because GDscript is fairly friendly and it seemed well-maintained, and while it has its quirks, it’s been mostly ok so far. Alternatively, is there any compelling reason to dump it and just get familiar with Unity, before I get too far in? The projects I make tend to be 2D and not very computationally intensive.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Beefeater1980 posted:

Does anyone else use Godot? I went with it over Unity when I had enough of a handle on fundamental CS to get started making games because GDscript is fairly friendly and it seemed well-maintained, and while it has its quirks, it’s been mostly ok so far. Alternatively, is there any compelling reason to dump it and just get familiar with Unity, before I get too far in? The projects I make tend to be 2D and not very computationally intensive.

The Making Games Megathread is talking about Godot right now.

Beefeater1980
Sep 12, 2008

My God, it's full of Horatios!






Perfect, thanks!

Mr Shiny Pants
Nov 12, 2012

Beefeater1980 posted:

Does anyone else use Godot? I went with it over Unity when I had enough of a handle on fundamental CS to get started making games because GDscript is fairly friendly and it seemed well-maintained, and while it has its quirks, it’s been mostly ok so far. Alternatively, is there any compelling reason to dump it and just get familiar with Unity, before I get too far in? The projects I make tend to be 2D and not very computationally intensive.

If you are familiar with it, I would say you are in a good position. If Unity does not offer anything you need stick with it. Godot seems like an active project and I would always choose something open source over closed source if it fits my needs.

It is the reason I started using Blender instead of Autodesk software. Not having to deal with licensing or weird limitations in products because of "strategic product segmentation" is just awesome.

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!

Beefeater1980 posted:

Does anyone else use Godot? I went with it over Unity when I had enough of a handle on fundamental CS to get started making games because GDscript is fairly friendly and it seemed well-maintained, and while it has its quirks, it’s been mostly ok so far. Alternatively, is there any compelling reason to dump it and just get familiar with Unity, before I get too far in? The projects I make tend to be 2D and not very computationally intensive.
I used both Godot and Unity for a bit, and IMO Godot was *way* better for 2D stuff (though Unity might have improved, it's been a couple of years).

Though my personal preference now is for just using raw HTML5 and target "progressive web app" which allows you to also go "low power" when the screen isn't actively updating (Godot and Unity both have a fixed target framerate that eats battery on mobile devices even when the game is idle, and makes laptop fans spin up.)

Ranzear
Jul 25, 2013

roomforthetuna posted:

(Godot and Unity both have a fixed target framerate that eats battery on mobile devices even when the game is idle, and makes laptop fans spin up.)

Looking at you, Super Auto Pets.

Spek
Jun 15, 2012

Bagel!
Anyone know if it is possible to re-triangulate/index a mesh in a compute shader?

I'm building a marching cubes mesh in a compute shader but naturally it spawns new vertices for each triangle, and tens of thousands of degenerate triangles. I'd thought to do a second compute shader pass to retriangulate and index all the triangles but as soon as I started to plan it out I stalled. It seems just straight up logically impossible due to the nature of shaders running in arbitrary orders and not sharing information easily between them. But I'm also very ignorant of all but the most basic shader programming principles so maybe I'm just missing something.

I'm using Unity, if that makes any difference. It's easy enough to do what I want after taking the data back into main memory but A: I don't always want to do that and B: pulling the data to main memory is real slow and if I could find a way to truncate unnecessary triangles from the data first it'd speed it up fairly significantly.

For that matter if anyone knows of any good resources/courses/whatever to go from "can write shaders" to "actually knows what your doing writing shaders" that'd be great. There's a bajillion beginners tutorials and the like but I've found very little for going past the beginner stages. Practice presumably helps but I could well be, and probably am, reinforcing bad techniques all over the place.

LatwPIAT
Jun 6, 2011

I was pointed in the direction of this thread (and also the Making Games Megathread, because apparently there's two?): Where can I find good, free, non-video tutorials for making (FPS) games in Unreal Engine 4?

I have star-sprangled eyes and a tendency to bite off more than I can chew, but I've wanted to get into game development since primary school and I've been trying to get into UE4 for several years. About a week back I finally managed to get enough energy to actually do so, following this tutorial. I've since extended the tutorial by having three weapons (a rifle that only fires when a button is clicked, a machine gun that fires as long as a button is held, and a shotgun that's like the rifle but shoots N bullets linearly distributed within a cone) and adding an ammo and reloading system (so far it's just reloading an infinite supply of magazines of arbitrary size).

I want to do more. I want enemies and a jump. I want to get more familiar with UE4 so I can try out more ideas.

And I'd very much like something that uses text and pictures, because videos tutorials are literally the devil when it comes to being able to search and reference specific pieces of it. They also tend to be a lot slower than I can read, which plays to hell with my probably-ADHD.

(It's actually been kind of enlightening to see how quick and easy this is: I have movement and shooting, and once I have NPCs that can retaliate and a level that's actually a functional game. Not pretty, not good, not interesting in any way, but functionally a game. That'd be a nice milestone to work towards.)

Ruzihm
Aug 11, 2010

Group up and push mid, proletariat!


I also dislike how video tutorials have become the norm. For me the problem is that it is even more horrible to search for the exact info you need than just ctrl+F in a text tutorial.

Anyway, here's a text tutorial that seems to include jumping and enemy controller/ai https://gamedevacademy.org/unreal-engine-fps-tutorial/. I haven't gone through this so I can't vouch for its quality but a quick skim suggests it covers the major areas you're particularly interested in.

You might want to start fresh since it assumes a fresh project but I would actually recommend NOT doing so for two reasons:

1. Starting over feels kinda bad. All hail lord Sunk Cost. :worship: :smuggo:
2. Learning how to connect what you already have with new components without having something tell you exactly how to do it is valuable experience.

Good luck!

LatwPIAT
Jun 6, 2011

Thanks! I'll see what I can do with this. I might run into some problems with the map, since I have an enclosed shooting gallery and the AI probably wants a big open space to run across, but it seems like exactly what I need!

Ruzihm posted:

I also dislike how video tutorials have become the norm. For me the problem is that it is even more horrible to search for the exact info you need than just ctrl+F in a text tutorial.

Even just repeating something. With a block of text I can instantly reread the text and try to understand what's being said or get the bit I missed. With a 40-minute YouTube video going back 10 seconds... wait I mean 15 seconds, no, wait, actually this bit is longer than I remember 20... 30 seconds. Whoops, accidentally clicked 2 minutes back... right, there we go.

First time I tried to get into UE4 programming I followed a video tutorial that seemed fine (except for the parts where the narration described something different from the code on screen, and one of the two wouldn't have worked), but then I got to the end where we were supposed to implement a second weapon and the guy implemented the second weapon as: (pseudocode)
code:
if(IsHoldingPrimaryWeapon){
    gun.shoot();
}
else {
    copy_of_gun.shoot();
I was so mad. So, so mad.

Beefeater1980
Sep 12, 2008

My God, it's full of Horatios!






Same re video tutorials. Give me screenshot tutorials with a red line around the bits of the screen I need to know about please.

But something something agents respond to incentives I guess.

LatwPIAT
Jun 6, 2011

Beefeater1980 posted:

But something something agents respond to incentives I guess.

Between screencapture being basically free, VIOP having taken off so everyone has microphones, and YouTube providing free hosting and discovery, video tutorials are very easy to make. (And it's often telling how simply many of the tutorials are, requiring you to follow exactly where someone's cursor is moving instead of using overlays and enlarging to highlight the important bits of the screen.) If you want to turn game development videos into a job, YouTube is comparatively easy for monetization. If you want to create a text tutorial, once you've done all the work in making the tutorial (probably involving text markup and formating and creating and formating images), where are you doing to host it so people will see and discover it? Medium? Wordpress? www somethingawful dot com? A lot of people also learn better from audiovisual demonstration than they do reading text.

It's just not the best for everyone.

Also, yay, I managed to add a jump.

zachol
Feb 13, 2009

Once per turn, you can Tribute 1 WATER monster you control (except this card) to Special Summon 1 WATER monster from your hand. The monster Special Summoned by this effect is destroyed if "Raging Eria" is removed from your side of the field.
Yeah producing a nice tutorial with text and images seems more difficult than making a video tutorial. I think if I was told to make a text-primary tutorial I'd still include (short) videos in place of images at this point, marking up and properly compressing and hosting large screenshots doesn't sound very fun.

KillHour
Oct 28, 2007


It pays better because the ads are also video and preroll. Also, you don't need to maintain a website if you upload a YouTube video instead.

Adbot
ADBOT LOVES YOU

LatwPIAT
Jun 6, 2011

zachol posted:

Yeah producing a nice tutorial with text and images seems more difficult than making a video tutorial. I think if I was told to make a text-primary tutorial I'd still include (short) videos in place of images at this point, marking up and properly compressing and hosting large screenshots doesn't sound very fun.

Images are very important for a variety of reasons. In UE4 tutorials I find them immensely helpful because they can point me to where the variable I need to change is or where a menu option is. Working with UE4 Blueprints, static images are useful for showing what a function actually looks like. And you can show off what a finished step should look like.

Small videos, like animated pictures, can be useful for demonstrating how something should look like when it moves (most games having some element of motion to them) and can be even more useful in showing the process of finding an option or menu.

Multimedia is good, actually.

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