Yeah that'll probably be my goal moving forward lol. Thanks!
Kyle_Katarn
Recent community posts
Oh of course, what I meant was I don't have the know-how with the program to achieve such results, and I know it can be done, it would just need some custom materials and stuff like that. I frankly also dont have the time to figure out such considering how far into the jam we are lol. I could go and completely hand paint each texture myself and make it look exactly how I want it to, but with time being a factor, and Quixel being able to knock out a result like that in about ten minutes of fiddling, I'm happy with how it is currently. A more cartoony look is just a luxury at this point lol.
The progress on assets is going alright, just finished the first one, it took this long mostly cos I was figuring my way through Zbrush and Quixel and whatnot. Came out looking quite good imo!
I'd like to have made it more cartoony, but I dunno enough about Quixel to make that happen. If I have time I'll try to rejigger it, but if not, I can live with this.
Thanks to being stuck on that reflection problem there's less progress being made that I'd like, but I did recently foray into some basic UMG stuff, the buttons there actually work and you need to be selecting the light shaft to even fire the ray and it stops when another button is selected (basic radio button behavior as well. I just need to get the projectile for the fireball working, and then set up objects for those spells to hit and I can safely call the base prototype done and can move on to asset creation lol.
Thanks to some help I got on the UE forums, I scrapped the code entirely, instead writing a recursive function using physics materials and custom surfaces that allowed for multiple hits to each mirror.
Here's the topic on the forums in case it's useful to anyone else.
As to your question yeah I had a feeling the isHit variable had something major to do with it, since it would be checking the mirror being hit twice, and replacing the line trace going to the mirror shooting back at it with the new line trace reflecting the mirror shooting back at it. If I stopped shooting, it would still be firing off a line trace from the effected mirrors, until I shot again.
This new way scraps all those concerns and even allows me to control how many total bounces there can be in the game.
Thanks for the suggestions mate!
So my game idea is somewhat simple, 3D puzzle game focused around redirecting spells shot from a wizard to hit a switch on the other side of the room. I've got the reflection of a ray trace working, and I suspect it would work perfectly for fireballs and the like, but I will need ray tracing for a lightning spell, and I'm running into an issue with reflecting mirrors back on themselves. I probably wont design any puzzles to require reflecting mirrors at each other, but it causes issues that the final user of the game may run into (such as rotating mirrors to a new position and crossing paths with the mirror reflecting the current ray to it... it's kind of hard to explain. I'll try and get a video of it happening.
Here's a video of the reflections working.
And here's what happens if you reflect a mirror back on the mirror that's firing at it.
As you can see it sort of loses all the tracing going towards it, and only can regain it if I wiggle the other mirrors around a bit and fire the ray trace at it again.
Here's the initial code I use to get the wizard to fire the trace. (I set the firing boolean to true in the character controller when the space bar is pressed.)
Here's the code I use to get the mirrors to reflect.
(Right click and open in new tab to see it at full resolution.)
I'd sincerely appreciate anyone's help. I have a feeling that the raytrace hit event on the mirrors is only able to handle one trace at a time, but all edits I've made to it to try and incorporate an array of hits has failed. I really want to be able to stop bumping my head against the wall on this and move on to something else.
Completely agree with developing the prototype, hell I believe in most big budget AAA games they consist of prototyping and programmer art until the last few months of development. The utmost core importance is to get it working before you get it looking good. Obviously this doesn't apply to people in teams with set roles, but in that situation, planning is of key importance before any asset is created or feature implemented.
Writing it all down is important too because it gives a clear list of what needs doing and when, including a list of art assets you think you'll need. This can be expanded upon or reduced in development.
To give a tip that isn't just reiterating what coquigames said, is to pick a scale and stick to it. This applies to art, but if you develop art assets, they'll be for a specific size, so when you import them into the engine, you may need to scale them up, but be cautious of having scales vary too wildly. For instance, if you model your character to be a specific height, then you'd obviously want your wall with a door frame in it to be a specific height and width for your character to fit through. So when you import them into the engine, and scale the wall to be 2x larger and your character 3x larger, then the character may not fit through the door anymore, or the door will be inconceivably large when your character walks through it. Same can be said for tables that are too wide or chairs that are too high. It sounds like a simple thing but I see it all the time in indie games, especially the horror titles.
Another tip is to use pseudocode. What that is is breaking a function down into steps in plain English (or your native speaking language), outlining what exactly needs to be done. For example, if you had a gun that shoots and when a barrel gets shot it explodes, what you would do is write something like:
1) Figure out if the barrel has been shot (hit with projectile)
2) Play a particle animation of an explosion
3) Play an explosion sound
4) Delete the barrel from the game (or swap it out for your exploded barrel model depending on how complex you want it to be).
Then you have a clear understanding of what needs to be done, and gives you focus points on what to search for in your programming documentation.
Everyone's doing really well! I could only work on it a little today, hopefully I'll get some more done before work, but I mostly got the reflection thing working.
Running into a slight issue where if the angle's wrong on one of the mirrors it gets caught in an infinite loop and has to be exited out, I assume it's something to do with my logic where if the angle's perfectly aimed back at the source it's generating infinitely, but I'll have to look into it later. Also the last loop is short but I think that'll be an easy fix.
I guess I'll kick it off!
It's super bare right now, but I've got things like selectable elements going, along with highlights, also the fixed camera that'll only move up and down between two points (dont want the player zooming their camera off into space). Still, doesn't have to look pretty yet, it just has to work!
Also it's kind of hard to see, but the mirror on the right is selected (it's got a red light that turns on when it's selected), and the top left mirror has the mouse cursor over it (pinkish light that turns on and off as long as the mouse cursor is hovering over it). Bottom left is what mirrors look like when it's not selected at all.
All in all I'm surprised at the amount of progress I've made so far, considering how long it's been since I've actually touched a game engine, but it's coming back to me slowly lol.
Can't wait to see what others have done!
Also, I recommend a program called Gyazo for taking quick pictures of your progress. It binds itself to your printscreen key, lets you drag out a rectangle and it'll quickly upload the image to its servers. Then you can right click the image it uploads and select that image url to use here, it gets rid of a whole other step of saving and uploading a print screened image lol.
What the title says! A lot of us are participating in our first jam's, myself included, so let me just say it's not about it being a competition, and more about each of us having fun and learning lots! I can't wait to see what we all come up with, and to those who can't get something out in time, it's still okay! The experience itself will be helpful for the future!